Instantly share code, notes, and snippets.

Embed
What would you like to do?
Wordpress Plugin-Code zur Ausgabe von Infos zu Autor, Kategorie etc. als Variablen im dataLayer für den Google Tag Manager
<?php
/*
Plugin Name: PageInfos2GTM
Plugin URI: https://www.gandke.de/
Description: Nach Aktivierung werden Angaben zu Loginstatus Autor, Monat, Jahr, Kategorie und Tags als wp_utype, wp_aut, wp_month, wp_year, wp_cat und wp_tags - zusammen mit einem Event "wpPageInfo" - als Script im Footer von Seiten oder Beitr&auml;gen in den dataLayer geschrieben, um diese z. B. via Google Tag Manager in benutzerdefinierten Dimensionen zu nutzen. Achtung: Das verwendete Template muss wp_footer() aufrufen (was aber die meisten tun sollten ;))
Author: Markus Baersch, gandke marketing &amp; software
Author URI: https://www.gandke.de
Version: 1.2
*/
function gms_send_post_info_gtm_event() {
//Login Status
if (is_user_logged_in())
$gtmvars = "'wp_utype':'user'";
else
$gtmvars = "'wp_utype':'visitor'";
if (is_single()||is_page()){
//Kategorien zusammenfassen
$allcat = get_the_category();
$cts = "";
foreach ($allcat as $ct) { $cts .= $ct->cat_name.","; }
if ($cts) $cts = substr($cts,0,-1);
//Tags zusammenfassen
$alltags = get_the_tags();
$tgs = "";
if ($alltags) foreach ($alltags as $tg) { $tgs .= $tg->name.","; }
if ($tgs) $tgs = substr($tgs,0,-1);
$gtmvars .= ",'wp_aut':'".get_the_author().
"','wp_cat':'".$cts.
"','wp_tags':'".$tgs.
"','wp_month':'".get_the_date('m').
"','wp_year':'".get_the_date('Y')."'";
}
echo "<script>window.dataLayer=window.dataLayer||[];dataLayer.push({".
$gtmvars.",event:'wpPageInfo'});</script>";
}
//Ausgabe der Infos im Footer
add_action('wp_footer', 'gms_send_post_info_gtm_event');
?>
@mbaersch

This comment has been minimized.

Owner

mbaersch commented Feb 3, 2018

Wordpress-Plugin:

Plugin zur Ausgabe von Infos zu Loginstatus, Autor, Kategorie etc. als Variablen im dataLayer für den Google Tag Manager

Zweck
Das Plugin dient dazu, Angaben zu Besuchertyp/Loginstatus ('user' für angemeldete, 'visitor' für nicht angemeldete Besucher), Autor, Monat, Jahr, Kategorie und Tags als wp_utype, wp_aut, wp_month, wp_year, wp_cat und wp_tags - zusammen mit einem Event `"wpPageInfo"´ - als Script im Footer von Seiten oder Beiträgen in den dataLayer geschrieben, um diese z. B. via Google Tag Manager in benutzerdefinierten Dimensionen zu nutzen.

Hinweise zur Verwendung
Die o. a. Variablen werden in den dataLayer geschrieben und müssen dort in einem Google Tag Manager Container eingelesen und zusammen mit dem Seitenaufruf oder einem Event explizit an Google Analytics übergeben werden - das passiert nicht automatisch, sondern erfordert eine aktive Nutzung der Informationen mittels GTM. Eine Anleitung findet sich im Blog

Das Plugin ist als "Rumpfplugin" gedacht und kann an die eigenen Bedürfnisse angepasst werden, um zu den Rahmenbedingungen der eigenen Site zu passen und z. B. weitere Angaben wie die Anzahl der Kommentare o. Ä. zu übergeben.

Installation
Im Backend der Site kann die heruntergeladene PHP-Datei über "Plugins - Installieren" hochgeladen werden, wenn sie als ZIP heruntergeladen oder vorher in einem ZIP-Archiv abgelegt wird. Nach Aktivierung des Plugins "PageInfos2GTM" werden die Daten am Ende des Seitenquelltext in einen Scriptblock geschrieben. Achtung: Der Aufruf von wp_footer(); im Template ist dazu erforderlich. Wer feststellt, dass ein angepasster Pageview die Information nicht erhält, weil die Ablage im dataLayer zu spät erfolgt, kann die Zeile add_action('wp_footer', 'gms_send_gtm_event'); im Code wahlweise zu add_action('wp_head', 'gms_send_gtm_event'); anpassen, um die Daten früher in den dataLayer zu bekommen.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment