それはかなりのタグ管理システムを持つことのすべての利点を否定するが、これは、作業の実装のように見えます。
リマーケティングの属性は、訪問したページによってユーザーに異なる重みを付けます。ホームページでちょっと見たユーザーは、商品カテゴリや商品の詳細を見たユーザーよりも価値が低くなります製品はより正確にあなたのクライアントの好みに広告を合わせることができますか、またはそのように理論が行く)を見た。このため、訪問したサイトやjavascriptオブジェクトを介して表示された商品(「google_tag_params」)に関するデータを渡す必要があります。
通常、このデータは、ウェブサイトのソースコード(理想的にはデータレイヤー形式)で提供されますが、グローバルなjavascript変数も同様に機能します。
あなたが見ているサイトは明らかにそれをしません。そこで、これを実装した人はカスタムHTMLタグを使用して、必要なデータを含むグローバルなJS変数を作成しました。これにより、データがグローバル名前空間に格納されます。次に、タグから作成されたjs変数を読み込み、Adwordsタグにフィードするjavascript変数を作成しました。
google_tag_paramsの定義を持つ複数のカスタムHTMLタグがあります。トリガを見ると、特定のページ(ホームページのルートページのみの「ホームページ」、商品の詳細ページなどの「商品変数」など)で発生することがわかります。そのようにしてgoogle_tag_paramsオブジェクトにはそれぞれのページタイプに必要なデータ。ウェブサイトは製品データを提供しないので、DOMからデータを抽出するために、「製品変数」タグにカスタムJavaScriptがあります。
これは機能しますか?そうですね。エレガントですか?確かにGTMの主な利点の2つはカプセル化です(必要なグローバル変数はデータレイヤーの配列だけなので、命名の衝突のリスクを軽減します)とかなり強力なセレクタエンジンです。あなたのコードはそれのどれも使用しません。
変更する価値はありますか?たぶん少し。 google_tag_paramsがカスタムjavascript変数(値を返す匿名関数の形式をとります)で作成される場合は、もう少し洗練されたものになります。また、DOM抽出コードは、カスタムのjavascript変数またはDOMタイプ変数(適切なセレクタを思いつくことができれば、カスタムコードなしでHTML要素からデータを読み込む)に移動できます。しかし、これはあなたがより良い、わずかに信頼できる実装を持っていることを意味しますが、これは基本的に同じ結果のための努力を意味します。
しかし、適切な実装は、ページによって提供される(つまり、サーバー側のコードを使用して作成される)データレイヤーに依存します。 DOM抽出は気まぐれなビジネスです。マークアップを変更すると、AdWordsのトラッキングが破られます。
サーバー側のコードで実装されたdataLayerを使用できない場合、現実的な解決策は、おそらくそのまま放置することです。 (マークアップを変更したり、 "price"や "qty"というグローバルなJS変数を導入して実装がうまくいけない場合は、いくつかの問題が残っていますが、これはこれまでのところ仕事をしています。マイル。
ありがとうございました。 – user3465554