0

高度な 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'}

アドバイスをいただければ幸いです。

ありがとう

4

1 に答える 1