2016-04-13 12 views
0

Ich versuche, die Informationen über den Benutzer per E-Mail jedes Mal, wenn jemand Zugriff auf eine Website. Diese Information wird in der PHP-Sitzungsvariablen gespeichert. So definiere ich die data mit den E-Mail-Daten und fügen Sie auch das Ereignis gtm.load wie folgt:Verfolgen E-Mail-Benutzer funktioniert nicht mit Google Tag Manager

<html> 
<head> 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.js"></script> 
    <?php 
     session_start(); 
     $_SESSION['email'] = '[email protected]'; 
     echo 'test ' . $_SESSION['email']; 
    ?> 
    <script> 
     var dataLayer = [ 
      {'email':'<?php echo $_SESSION["email"]; ?>', 
      'event':"gtm.load"} 
     ]; 
    </script> 
</head> 
<body> 
    <a href="mailto:[email protected]">Track</a> 

    <!-- Google Tag Manager --> 
    <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-PFG3F5" 
    ... 
    })(window,document,'script','dataLayer','GTM-XXXXXX');</script> 
    <!-- End Google Tag Manager --> 
    </body> 
</html> 

Aber Zugriff auf Google Tag Manager kann ich die Daten nicht in Ereignisse verfolgen, wie es sein soll. dataLayer ist gut geladen, denn wenn ich console.log das habe ich:

Vielen Dank im Voraus.

Antwort

0

Sie müssen nicht Ihr eigenes "gtm.load" -Ereignis angeben, und tatsächlich wird GTM nur ein weiteres gtm.load, wenn der Code weiter unten auf der Seite geladen wird (gtm.load ist das Ereignis, das automatisch gesetzt wird, wenn die Seite ist vollständig geladen).

Wenn Sie eine DataLayer vor dem GTM-Tag festlegen, müssen Sie kein benutzerdefiniertes Ereignis definieren. Sie können einfach auf den DataLayer mit den Standardereignissen (gtm.js beim ersten Laden des Codes, gtm.dom when) zugreifen Das DOM ist bereit und gtm.load, wenn die Seite und alle Assets geladen sind. Löschen Sie das Ereignis und versuchen Sie, auf die Variable im Seitenaufruf zuzugreifen (der Auslösertyp ist auch auf Seitenaufruf eingestellt).

Verwandte Themen