2017-01-08 6 views
1

の全データを取得する方法:私はGoogleTagManagerのdataLayerにデータをプッシュした後、例えばと、Googleタグマネージャデータ層

dataLayer.push({user: 'me', site: 'bacon.com'}) 

は、どのように私は、全体のオブジェクトからデータレイヤーにプッシュ得ることができます何が押されたのかを知らずにGTMパネル

多分、この情報を格納する変数はありますか?

ありがとうございます。

答えて

3

dataLayerはグローバルJavaScript変数です。オブジェクトの配列です。 GTMは、JavaScript変数型を使用してグローバル変数にアクセスすることができます。これは、配列全体を読み取ります。

値を返す無名関数であるカスタムJavaScript変数を使用して、その配列の最後の要素を抽出することができます。

だから、最初のjavascriptタイプのGTM変数を作成し、「dataLayer」に変数名を設定したい:

enter image description here

そして返された配列の最後の要素にアクセスすることを使用します。カスタムJS変数に

enter image description here

は、あなたの場合には、最新のエントリを取得するには、「{ユーザー: 『私』、サイト: 『bacon.com』}」の正確なキーを知らなくても、オブジェクト。その後、オブジェクトを繰り返して、個々の値で何をする必要があれば何でもできます。

変数はイベントが発生したときにのみ評価されるため、「ネイティブ」GTMイベント(クリック、送信など)が必要であるか、カスタムイベントをプッシュする必要があります。また、最後の要素が実際にイベントそのもの(たとえば、データをプッシュした後にクリックイベントが発生した場合はgtm.click)が発生する可能性があります。

+0

これは奇妙ですが、 'undefined'を返します。一方、コンソールで 'dataLayer [dataLayer.length-1]'を実行すると、私は必要なものを正確に提供します。なぜですか? –

+0

私はテストなしで書いたので、決して行うべきではありません。実例への答えを更新しました(問題は匿名関数内で可変スコープだったと思います)。 –

関連する問題