すると、GTMはそれを気づくとGoogleのプラットフォームに直接プッシュしていますか? GTMコンテナがロードされているGoogleタグマネージャはdataLayer.pushに「登録」していますか?はいの場合、どうですか?私は(配列です)datalayerには、何もプッシュする
それとも一度だけ起こっていますか、?
ない場合は、GTMは何とか(datalayer.pushに加入しませんか)?それともポーリングですか?
すると、GTMはそれを気づくとGoogleのプラットフォームに直接プッシュしていますか? GTMコンテナがロードされているGoogleタグマネージャはdataLayer.pushに「登録」していますか?はいの場合、どうですか?私は(配列です)datalayerには、何もプッシュする
それとも一度だけ起こっていますか、?
ない場合は、GTMは何とか(datalayer.pushに加入しませんか)?それともポーリングですか?
GTMを初期化すると、dataLayerオブジェクトの参照が渡されます。このオブジェクトは、その時点からGTMコードで管理される特別なオブジェクトの「インスタンス」に置き換えられます。あなたがGTMを初期化する前と後のクロムコンソールがプッシュ方式について説明しますどのような比較:
前:
後:
あなたが何かを押すとGTMで初期化されたdataLayerは、実際にカスタムプッシュメソッドを呼び出して、クライアントで実行中のGTMコードにそのプッシュメソッドを通知します。プッシュでタグの呼び出しがトリガーされると、タグコードがそれ以外の要求はしませんし、GTMサーバーなどには送信されません。
プッシュとは別に、クリック、フォームの送信、DOMの準備、コンテナの読み込みなど、GTMが監視するその他のイベントが多数存在することに注意してください。
イベントをプッシュすることに限定されず、通常のデータ(メッセージ)をプッシュすることができます(通常はGoogleタグマネージャで使用できるようになります)。実際に、私は知りませんが、それはような単純なもので行うことができ、彼らはそれをやって行く方法(クリックなど)の内部状態
を更新:
var dataLayer = [{name: 'Rui'}];
var DLWatch = (function(){
var init = function(){
window.dataLayer.push = push;
};
var push = function(data) {
window.dataLayer = window.dataLayer.concat([data]);
console.log('Data pushed!');
};
return {init: init};
})();
DLWatch.init();
dataLayer.push({foo: 'bar'});
あなたが得るものに:
Data pushed!
そしてdataLayer
はここでDLが私の感想です。何かを押すと、GTMはそれを検出しますが、必ずしも新しいデータをGAにトラッキングするとは限りません。 DLに登録されているデータですが、ページビュー、イベント、またはその他のタグでそのデータを明示的に使用しないと、そのデータはDLに残ります。しかし、あなたが押し込んだデータを明示的に使用するには、新しいDLデータに「アクセスする」ために使用できるevent
も必ず押してください。
だから、GTMは絶えずにプッシュされる新しいものを「聞く」んが、タグは、新しいデータを使用するように設定する必要があります。
このリスニングは、技術的に起こるどのように任意の手掛かりになりますか?配列をポーリングするだけですか?または、Javascriptで配列へのプッシュをサブスクライブすることは可能ですか? – Alex
偉大な答えですが、どうやってそれを得ているのかわかりません、私はあなたが「出来事を押すことに制限されている」ことを暗示しました。 GTMを使用する場合は、イベントに関連付けられた特定のデータポイントにアクセスする必要がある場合は、イベントをプッシュすることをお勧めします。 – nyuen
Nyuen、私はあなたを誤解したかもしれない。明示的にプッシュしたデータを明示的に使用するには、イベントをプッシュする必要があります。「私は、メッセージプッシュにアクセスできないと言っていると思っていました。これは真実ではなく、メッセージではないプッシュを明示的に使用できます。私はあなたの名前をそれから削除するために私の答えを編集しています、それは批判として意図されたことは決してありません:) – rgcalsaverini
心配しないで!再び、素晴らしい答え。 – nyuen