134 人が現在オンライン
Google アナリティクスのアカウント設定、プロパティ、ビューやフィルタ設定などについて、ユーザー同士で意見交換ができます。解析を通して浮かんだ質問やアイディアを投げかけ合って、よりデータ分析の知識を高めていきましょう。
ガイドを表示
star_border
返信

GTMの変数に関して

初級者 ✭

Googleタグマネージャー(以下GTM)の挙動に関して伺いたく、
連絡致しました。

以下、どなたかご存知な方はいらっしゃいますでしょうか?

----------------------------------------------------------------------------
【事象】
GTMの「変数」→「カスタムJavascript」にてグローバル変数を定義した所、
以下のような事象が発生致しました。

 ・[プレビュー]時:GTMで定義したグローバル変数の存在を対象ページ上で確認できました。
 ・[公開]時:GTMで定義したグローバル変数の存在を対象ページ上で確認できませんでした。

【問い合わせ内容】
上記の事象ですが、要因や対処方法に関してご存知な方はいらっしゃいますでしょうか?
いらっしゃいましたら、ご教示いただけますと幸いです。
----------------------------------------------------------------------------

Re: GTMの変数に関して

レジェンド
こんにちは。

プレビューで確認できたものが、公開時に確認できなくなる、というのは不可解ですね。
別のワークスペースで、作業していた変更点が、公開時にマージされて、バッティングしたとかですかね。

ただ、さすがに、JavaScriptのソースコードのレベルで、どういうコンフリクトがあるのかもしれませんので、
ちょっと、この情報だけですと、他のかたも回答しづらいのではないでしょうかね。

GTMは、ほんと個別のJavaScriptを都度都度カスタムするイメージなので、ちょっと汎用的な挙動は
不備の特定がしづらいです。

JavaScriptなどのどこかのコミュニティのほうが、具体的にソースを見てもらえるのであれば、そちらのほうが
回答が集まるのかもしれません。

よろしくお願い致します。
------
文責:カグア!

Re: GTMの変数に関して

初級者 ✭
カグアさん

こんばんは。

早々のご返答誠にありがとうございます。

確かに、質問内容の情報が足りないですね、、、

ちなみに、カスタムJavascriptに登録している変数は下記です。

--------------------------------------------------
function() {
window.itemIdMap = {};
try{
window.itemIdMap = {
test1:'1'
};
}catch (e) {
}
return;
}
--------------------------------------------------

Javascriptのコミュニティにも聞いてみます!

ご回答誠にありがとうございました!

Re: GTMの変数に関して

レジェンド

・[プレビュー]時:GTMで定義したグローバル変数の存在を対象ページ上で確認できました。
・[公開]時:GTMで定義したグローバル変数の存在を対象ページ上で確認できませんでした。

と書いていますが、「グローバル変数の存在を対象ページ上で確認」していますか?

 

 

いただいた内容を見る限りでは、カスタムJavaScript変数の役割を誤解しているように感じます。

window.itemIdMapを使って、最終的にやりたいことを記載いただくことは可能ですか?

Re: GTMの変数に関して

レジェンド
うーむ、なんですかね。カスタムJavaScriptは、結局、JavaScriptをそのページで動かしている
だけなので、最終的にどうされたいのか、その結果グローバルが、、、という流れだと思いますので、

やはりGoogleタグマネージャというよりも、山田さんのおっしゃられているように、JavaScriptとして
の作り込みをしてみて、ですかね。

すみません、なんか全然お役に立ててませんね。よろしくお願い致します。
------
文責:カグア!

Re: GTMの変数に関して

[ 編集済み ]
中級者 ✭ ✭ ✭

回答がズレていたらすみません。
GTMの「変数」機能について機能を誤解されていらっしゃるかも知れません。

GTMの「変数」機能は、主にGTM内の「タグ」に使用されるデータを取得するために使われる機能であり、
簡単にご説明すると以下のような動作を行います。

条件を満たした「トリガー」が動作
→「トリガー」に紐付けられた「タグ」を読込
→「タグ」に設定された「変数」からデータを取得(カスタムJavaScriptの場合、中身はreturnで返ってきたもの)
→紐付けられた「タグ」が実行(このとき、「変数」から取得した値を使用する)

紐付けが行われていない(=GTM内で参照されない)「変数」は動作しません。

しかし、プレビューモード時のみ例外的に、タグに紐付けられていない「変数」も動作するようです。
(むしろ紐付けを行っていない「変数」が実行される仕様がバグ的と言えるかもしれません)

貼り付けて頂いたコードを「変数:カスタムJavaScript」で定義し、
console.logを行うカスタムHTMLタグを作成し、
定義した「変数」を「タグ」内部で呼び出すという設定を行ったところ、
プレビュー時も非プレビュー時も問題なく動作することを確認しました。

又、ご質問のようなグローバル変数の定義を行いたい場合は、
「変数」機能ではなく「タグ」機能によって、以下のように設定するとよろしいかと思います。

▼手順
左端の「タグ」をクリック>「新規」をクリック>「タグの設定」をクリック>「カスタムHTML」を選択
→コードをHTMLとして入力
「トリガー」をクリック>任意のトリガーを選択>「保存」をクリック

 

●設定画面のスクリーンショット
https://i.gyazo.com/a23587ec2e18a0d32a4fba20dac42c8c.png


Qiitaでも同じ質問をされていらっしゃるようなので、そちらでも回答しています。