0
Javascriptを使用してページをスクラップしてGoogleデータレイヤの配列にデータを挿入しようとしています。以下のコードは、コンソールの確認に従って、HTMLにリストされているすべての項目を正常に処理します。下のコード例のように、3つの項目すべてをプッシュする正しいdataLayer.push関数を書くのには苦労しています。JSを使用してページをスクラップし、変数をGTMデータレイヤにプッシュする方法
誰か助けてもらえますか?
注:「ID」と「収益」は無視できます。
$("#theList li").each(function() {
var $this=$(this);
scrapeProductName=$this.find('.name').text();
scrapeProductPrice=$this.find('.price').text();
scrapeProductQuantity=$this.find('.quantity').text();
console.log('product: ' + scrapeProductName + '; price: ' + scrapeProductPrice + '; quantity: ' + scrapeProductQuantity);
});
dataLayer = [];
dataLayer.push({
'ecommerce': {
'purchase': {
'actionField': {
'id': '11111111', 'revenue': '999.99'
},
'products': [
// start product list
{
'name': scrapeProductName,
'price': scrapeProductPrice,
'quantity': scrapeProductQuantity
}
// end product list
]
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="theList">
<li>
<div class="name">banana</div>
<div class="price">1.00</div>
<div class="quantity">3</div>
</li>
<li>
<div class="name">apple</div>
<div class="price">2.00</div>
<div class="quantity">5</div>
</li>
<li>
<div class="name">pear</div>
<div class="price">3.50</div>
<div class="quantity">1</div>
</li>
</ul>
それはそうあなた'each'関数内で' dataLayer.push'を呼び出します。また、各「li」内のアイテムには矛盾するIDがあり、問題を引き起こす場合もありませんが、ベストプラクティスではない場合もあります。 – James
こんにちは@ジェームズ、あなたはIDについて正しいです、それらはクラスでなければなりません。実際のページはここで使用するには適していないより複雑な構造を持つため、この例ではHTMLをすばやく書きました。今すぐエラーを修正します。 – Klikerko