私はGTMを初めて使い、dataLayerで2つの拡張eコマースイベントを提出しようとしています。 Google Analyticsをチェックすると、最後のイベントだけが送信されているようです。Googleタグマネージャ複数の拡張eコマースイベント
私はhttp://www.simoahava.com/analytics/ecommerce-tips-google-tag-manager/に出くわしました。要約の直前に、最後のものを提出することについてだけ言いました。
dataLayer.push({
'event': 'addToCart',
'ecommerce': {
'currencyCode': 'GBP',
'add': {
'products': dataLayerProducts
}
}
});
dataLayer.push({
'event': 'checkout',
'ecommerce': {
'checkout': {
'actionField': {'step': 1},
'products': dataLayerProducts
}
}
});
Analyticsにはチェックアウトのみが登録されます。私は、次のようなもの試してみた:
dataLayer = [{
'event': 'checkout',
'event': 'addToCart',
'ecommerce': {
'add': {
'products': dataLayerProducts
},
'checkout': {
'actionField': {'step': 1},
'products': dataLayerProducts
}
}
}];
と
dataLayer = [{
'event': 'addToCart',
'ecommerce': {
'add': {
'products': dataLayerProducts
},
}
}, {
'event': 'checkout',
'ecommerce': {
'checkout': {
'actionField': {'step': 1},
'products': dataLayerProducts
}
}
}];
をしかし、私はどちらか、そのようにそれをやって運がなかったしました。それができない場合は、有益な回避策があれば大いに感謝します。
最新のコードで更新: 最後のイベント(チェックアウト)のみを送信します。コードは<body>
タグの開始直後に表示されます。
<script>
dataLayer = [];
dataLayerProducts = [];
dataLayerProducts.push({
'name': 'Product Name',
'id': 'SKU',
'price': '29.95',
'brand': 'Brand',
'category': 'Some/Category',
'quantity': 1
});
dataLayer.push({
'event': 'addToCart',
'ecommerce': {
'add': {
'products': dataLayerProducts
},
}
});
dataLayer.push({
'event': 'checkout',
'ecommerce': {
'checkout': {
'actionField': {'step': 1},
'products': dataLayerProducts
}
}
});
</script>
<!-- Google Tag Manager -->
// Code
<!-- End Google Tag Manager -->
あなたは私を理解するためのコード例を修正でした:例として、OPのコードを変更?私はそれをどのように読んでいるのかというと、それぞれのデータセットを独自のイベントでプッシュする必要があると言うとき、私は自分の質問の最初のコードブロックでこれをやっていたと思いました。 – Nathan
最初のコードブロックでは、2番目のイベントを宣言して最初のイベントを上書きします。通常のJS規則が適用されることを忘れないでください。変数に値を代入してから別の代入を割り当てると、最後の代入が適用されます。 – nyuen
私はあなたのサンプルコードを取りました。私は使用している完全なコードで質問を編集しました。しかし、依然として、チェックアウトイベントだけがプッシュされているようです。カートに追加されたセッションは表示されませんが、チェックアウトのセッションは正しく表示されます。 – Nathan