Veröffentlichungsdatum: 10. März 2016
Änderungsdatum: 09. Oktober 2023
Beim Einsatz von Google Analytics in Verbindung mit dem Google Tag Manager, lassen sich beliebige Daten über das PHP Framework setzen und so z.B. in benutzerdefinierten Dimensionen innerhalb von Google Analytics nutzen.
Neben einer Fülle an vordefinierten Dimensionen, die sich über Segmente anzeigen lassen, können eigene Dimensionen erstellt werden, die auf projektspezifischen Datenschichtvariablen basieren.
Datenschichtvariablen werden in einer Seite vor dem Google Tag Manager Tag per JavaScript gesetzt und so nach entsprechender Konfiguration Google Analytics zur Verfügung gestellt.
Diese Variablen können z.B. in der pre.php oder auch nach dem Absenden eines Formulars über die Framework-Funktion wWebstat::setDataLayer setzen. Beim nächsten Seitenaufruf werden sie dann an den Tag Manager übergeben.
wWebstat::setDataLayer(array('type' => 'default', 'level' => 'height'));
wWebstat::setDataLayer(array('hasSentForm' => 'yes'));
<!-- Code für Google Tag Manager --> <xsl:template name="googleTagManager"> <xsl:if test="$wUsertype != 'admin' and $wUsertype != 'standard'"> <xsl:variable name="gtmId"><xsl:value-of select="php:functionString('wVariables::getValue', 'googleTagManager_id', $wGlobalProjectPath)"/></xsl:variable> <wsl:php execution="post"> if(method_exists('wWebstat', 'getDataLayerAsJson')){ $dataLayerAsJson = wWebstat::getDataLayerAsJson(); if($dataLayerAsJson != 'null'){ <![CDATA[ print '<script>dataLayer = '.$dataLayerAsJson.';</script>'; ]]> } } </wsl:php> <noscript><iframe src="//www.googletagmanager.com/ns.html?id={$gtmId}" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script type="text/javascript"> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'}); var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl; f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','<xsl:value-of select="$gtmId"/>'); </script> </xsl:if> </xsl:template>