高度な e コマース分析を構成して、注文確認ページからトランザクション データを読み取ろうとしています。
これが私が利用できる唯一のオプションであるため、Dom 要素からデータをスクレイピングしています。
transactionId、transactionTotal、transactionShipping などのフィールドを読み取ることはできますが、transactionProducts を読み取ることができません。(1 つの製品しか読み取れませんが、注文に複数の製品がある場合はそれ以上読み取れません)。
私のデータレイヤーは、次のようにカスタム HTML タグとして追加されました -
<script>
window.dataLayer = window.dataLayer || []
dataLayer.push({
'transactionId': {{transactionId}},
'transactionAffiliation': 'Company name',
'transactionTotal': {{transactionTotal}},
'transactionTax': 0,
'transactionShipping': {{transactionShipping}},
'transactionProducts': [{
'sku': {{productCode}},
'name': {{transactionName}},
'category': 'Generic category',
'price': {{transactionPrice}},
'quantity': {{transactionQuantity}}
}]
});
</script>
フィールドはカスタム JavaScript 変数です。
例えば -
取引ID -
function() {
var transactionId = document.querySelector([id*='OrderNumberValue']").textContent;
return transactionId;
}
タグが確認ページで呼び出されると、データ レイヤーは次のようになります (ご覧のとおり、注文に 2 つの商品がある場合、1 つのトランザクション商品のみが返されます) -
Window Loaded:
{event: 'gtm.load'}
transactionId: '1000001',
transactionAffiliation: 'Company name',
transactionTotal: '10.00',
transactionTax: 0,
transactionShipping: '0.00',
transactionProducts: [
{
sku: 'SAMPLE1',
name: 'Sample product',
category: 'Generic category',
price: '5.00',
quantity: '1'
}]
}
{gtm.start: 1474472447660, event: 'gtm.js'}
アドバイスをいただければ幸いです。
ありがとう