GTM

2017-04-09 9 views
0

にデータ層からの配列データを取り込み、私はDrupalのGTM

dataLayer = [{ 
      "entityType":"node", 
      "entityBundle":"article", 
      "entityTaxonomy": 
       {"funnel_path":{"2":"Find a Park"}, 
       "byline":{"4":"Name1","5":"Name2"}},"drupalLanguage":"en", 
       "userUid":"1"} 
     ]; 
    </script> 

から、このように私に情報を与えているデータ層を持っている私は簡単にentityBundleに引っ張ってGTMのデータレイヤー変数を使用することができます。 bylineの情報を引き出すためにどのように設定するのですか?私はentityTaxonomy.bylineを試しましたが、それは私に配列を与えます。私はentityTaxonomy.byline.4を行ってName1を取得するように設定できますが、エディタが定期的に物事を追加するので、それはばかげているでしょう。

最後に、Googleアナリティクスのカスタムディメンション2にバイラインを追加する予定です。

私は、カスタムディメンション2に行くデータをName1, Name2としたいと考えています。場合によってはこれは単なる値に過ぎません。場合によっては最大20の値にすることもできます。

この情報を登録するには、GTMで何をする必要がありますか?

答えて

0

entityTaxonomy.bylineは実際にあなたにオブジェクトを与えます。文字列に結合できる配列を取得するには、処理を少し行う必要があります。可能な方法の1つは、

temp = []; 
Object.keys(test.entityTaxonomy.byline).map(function(key, index) { 
    temp.push(test.entityTaxonomy.byline[key]); 
}); 
bylines = temp.join(",") 

です(はるかに簡潔に行うことができます)。 GTMでは、あなたは、あなたが何かではない(定義によって戻り値を持つ匿名関数である)変数

function() { 
    var byLineObject = {{bylines}} // created as datalayer var beforehand 
    temp = []; 
    Object.keys(byLineObject).map(function(key, index) { 
     temp.push(byLineObject[key]); 
    }); 
    return temp.join(",") 
} 
+0

JavaScriptのカスタムの処理を行うことができ、署名欄にオブジェクトを格納する変数を作成する必要がありますこれについて私のために働いています。ごめんなさい。ここに私がしたことがあります... # "Data Layer - Services"という名前の変数を作成しました。私はデータレイヤ変数名 "services"を入れました #{JS - Services}という名前のカスタムJavascriptを作成し、上記のコードを使用してコード愛が{{bylines}} の{{services}}に入れました。 #全体的なGA UAタグを更新して{{JS-Servicesをカスタム次元インデックス2として追加しました...}何が欠けていますか? – JAB