2016-04-13 14 views
0

誰かがウェブサイトにアクセスするたびに、そのユーザーのメールに関する情報を取得しようとしています。この情報は、PHPセッション変数に格納されます。だから私は、電子メールデータをdataLayerを定義しても、次のようにイベントgtm.loadを添付:トラックのメールユーザーがGoogleタグマネージャと連携していません

<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> 

しかし、Googleタグマネージャにアクセスすることが可能になっているように私は、イベント内のデータを追跡することはできません。私がconsole.logに持っている場合、dataLayerは正常に読み込まれます。

Object {email: "[email protected]", event: "gtm.load"} 

ありがとうございます。

答えて

0

独自の「gtm.load」イベントを指定する必要はありません。実際にGTMは、コードがページのさらに下に読み込まれると別のgtm.loadになります(gtm.loadは、ページが完全に読み込まれます)。

GTMタグの前にdataLayerを設定すると、カスタムイベントをまったく定義する必要はありません。デフォルトイベント(gtm.js、コードが最初にロードされたときはgtm.doms、ページとすべてのアセットがロードされると、DOMは準備ができてgtm.loadになります)。そのため、イベントをドロップして、ページビューで変数にアクセスしようとします(トリガータイプもページビューに設定されます)。

関連する問題