1

助けてください。私は、GTM dataLayerを使用して、販売確認ページでの購入を追跡しようとしています。 dataLayerを追加しました.GTMコンテナスニペットの上にありますが、データレイヤーはGoogleタグマネージャーによって完全に認識されません。それはページに存在しないのと同じです。どうして?ソースコードでは、すべてが適切にフォーマットされていることがわかります。view-source:http://www.maverickhelicopter.com/survey.aspx GTMのプレビューツールでは、データレイヤーの存在も認識されません。 screenshot of GTM preview toolGoogleタグマネージャdataLayerがタグマネージャで認識されません

+0

あなたのページコードでは、この時点では初期化されていないdataLayerにプッシュします(これは、 "survey.aspx:35 Uncaught TypeError:プロパティの '未定義のプッシュ'をブラウザコンソールで読み取れません)。次に、dataLayerを初期化しようとします。試して、2つを交換し、それが動作しているかどうかを確認してください。 –

答えて

0

問題は、dataLayerを定義するGTMコードスニペットの前にdataLayer.push()関数を呼び出していることです。あなたのページに見られるように:

enter image description here

あなたはdataLayerを定義した後、またはGTMコードの後のいずれかdataLayer.pushを移動する必要がありますが、体内に持っているスニペット。本当にいつあなたの "reservationPushed"イベントを発射したいのですか?あなたが例えば頭の中であなたのプッシュ機能が含まれている場合:

dataLayer = [{ 
    'page': { 
     'type': 'confirmation', 
     'environment': 'production' 
    } 
}]; 

dataLayer.push({ 
    'ecommerce': { 
     'purchase': { 
      'actionField': { 
       'id': '0', 
       'affiliation': '0', 
       'revenue': '0' 
      }, 
      'products': [{ 
       'name': '0', 
       'id': '{{tourID}}', 
       'price': '0', 
       'category': 'None', 
       'variant': 'None', 
       'quantity': parseInt(document.getElementById("ctl00_ContentPlaceHolder1_hfGTMSEATS").value) 
      }] 
     } 
    }, 
    'event': 'reservationPushed' 
}); 

「reservationPushed」イベント

はページビューの前 を解雇されます。

また、ページビューの後にイベントを発生させるために、プッシュ機能全体をGTMコードスニペットの下に移動することもできます。ただ、またあなたのdataLayer変数を移動するの間違いをしていない、これはデベロッパーガイドに従って正しい場所にある:だからhttps://developers.google.com/tag-manager/devguide

besicallyあなたの選択肢の一つは、次のようなコードを構築することです。

<html> 
... 
<script> 
dataLayer = [{ 
'page': { 
    ... 
} 
}]; 
</script> 
... 

<!-- Google Tag Manager --> 
... 
<!-- End Google Tag Manger --> 
<script> 
dataLayer.push({ 
'ecomerce': { 
... 
} 
</script> 
... 
</html> 
関連する問題