AdWords が「Google 広告」になりました。これまで AdWords としてご利用いただいていたサービスの名前が「Google 広告」に変わりました。検索ネットワーク、ディスプレイ ネットワーク、YouTube などを対象にあらゆる広告サービスを提供いたします。詳細

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

クライアントID取得時のプログラムの意味について

中級者 ✭ ✭

こんにちは。小栗と申します。

 

下記のコード埋め込み、アナリティクスのクライアントIDを取得しています。

 

function getCid() {

    var cid = "";

    if('ga' in window){

    var tracker = ga.getAll()[0];

    cid = tracker.get('clientId');

    }

    return cid

}

 

このプログラムについて、2点不明なことがあります。

①if文内の'ga'とは何なのか?

②in windowとは、どんな意味なのか

 

もしご存知の方がいらっしゃいましたら、ご教示いただけないでしょうか。

 

よろしくお願いします。

1 件の受理された解決策

受理された解決策
ベストアンサーのマーク済み.
解決策
トピック作成者さんが付与
2 週間前

Re: クライアントID取得時のプログラムの意味について

レジェンド
小栗さんが貼り付けていただいたGTMスニペットは、gtmオブジェクトをwindowに追加するもので、gtmオブジェクトはページ内で発生するイベントなどをトラッキングしてトリガを発火し、トリガーに設定されたタグを実行します。

なので、ご質問にストレートにお答えすると、このコードだけではgaオブジェクトはwindowに追加されません。

なお、おそらくユニバーサルアナリティクスタグのトリガーをページビュー(gtm.js)で設定されていると思いますので、gtmの準備が整ったらすぐにgaオブジェクトは追加されると思います。詳しい動きは、Dev toolか、Chrome拡張機能のタグアシスタント、GTMプレビューでのデバッグウィンドウをご参照ください。

ちなみに小栗さんのお客さんはなぜご質問の件を知りたいのでしょうか?

また、本コミュニティはユーザー同士が助け合って課題を解決していくコミュニティです。私もGoogleとは全く関係ないボランティアのイチユーザーですが、もし回答がお役に立ちましたら、いいね!のひとつも頂けますと回答のモチベーションが湧きます。というかこのコミュニティで回答しても得られるのは感謝といいね!くらいなので。。


Taishi Akiyama / フルスタックエンジニアのWEBマーケターです。とりえあえず検証してみるが信条。★や解決マークをくれるとモチベーションあがって回答の質があがるかもしれません

元の投稿で解決策を見る

Re: クライアントID取得時のプログラムの意味について

レジェンド

①if文内の'ga'とは何なのか?

ユニバーサルアナリティクス(analytics.js)で生成される、gaオブジェクトで、測定に必要なメソッドやプロパティ(変数)などが中に含まれています。これが生成された後で無いとPVやイベントヒットを送ることができません。

②in windowとは、どんな意味なのか

windowオブジェクトに、gaというプロパティ(オブジェクト)が有るか無いかをチェックする演算子です。

https://developer.mozilla.org/ja/docs/JavaScript/Reference/Operators/in

 

gaというオブジェクトが生成される前に、gaの中にあるトラッカー一覧を取得するgetAllというメソッドを呼び出すと、javascriptでエラーとなってしまうので、その存在をまずは確認しています。

 

以上で、ご説明になっていますか?

Taishi Akiyama / フルスタックエンジニアのWEBマーケターです。とりえあえず検証してみるが信条。★や解決マークをくれるとモチベーションあがって回答の質があがるかもしれません

Re: クライアントID取得時のプログラムの意味について

[ 編集済み ]
レジェンド

 

function getCid() { // getCidというファンクション(関数)を定義

    var cid = ""; //cid に とりあえず空文字を入れて変数定義

    if('ga' in window){ //windowオブジェクトにgaオブジェクトが生成されていたら

    var tracker = ga.getAll()[0]; //トラッカー一覧を取得して、その1番目のトラッカーをtrackerに代入

    cid = tracker.get('clientId'); //トラッカーのgetメソッドを使って、メンバー変数のclientIdの中のクライアントIDを取得

    }

    return cid //取得できたcidをgetCid()の戻り値として返す。もしwindow.gaが生成されていなかったら空文字""を返す。

}

 

Taishi Akiyama / フルスタックエンジニアのWEBマーケターです。とりえあえず検証してみるが信条。★や解決マークをくれるとモチベーションあがって回答の質があがるかもしれません

Re: クライアントID取得時のプログラムの意味について

中級者 ✭ ✭
回答いただき、ありがとうございます。もう少し詳しく教えていただきたいところがあるのですが、'ga'オブジェクトというのはどのようなものなのでしょうか。

Re: クライアントID取得時のプログラムの意味について

レジェンド

プログラミング(Javascript)に馴染みが無い方に説明するのは結構大変ですが、Google Analytics(ユニバーサルアナリティクス)を使う時に必要な機能がつめこまれている十徳ナイフのようなものです。これが無いと測定ができません。

ga コマンドキュー リファレンス

ga() コマンドキューは、analytics.js ライブラリで行う必要があるほぼすべての処理に対応したインターフェースです。

https://developers.google.com/analytics/devguides/collection/analyticsjs/command-queue-reference?hl=...

 

なお、意味を知りたいということですが、目的が何かによってご回答も変わってくるかなと思います。

 

・小さんの興味

・小さんが、gaオブジェクトを使っていろいろやりたい

・小さんが、タグの挿入等を依頼するエンジニアがいろいろ聞いてくる

・小さんの上司に説明する必要がある

・その他

 

もし、よろしければその辺もお聞かせください。

Taishi Akiyama / フルスタックエンジニアのWEBマーケターです。とりえあえず検証してみるが信条。★や解決マークをくれるとモチベーションあがって回答の質があがるかもしれません

Re: クライアントID取得時のプログラムの意味について

中級者 ✭ ✭
ご回答ありがとうございます。

お客さんに説明するのが目的になりますね。

それと、もう一つお聞きしたいことがあるのですが、
当方、GTMのコンテナスニペットを使用しています。

この場合、gaタグがwindowオブジェクトに定義されるのは
下記コードのどの部分なのでしょうか。

<!-- Google Tag Manager -->
&lt;script&gt;(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='
+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','xxx-xzxxxxx');&lt;/script&gt;
<!-- End Google Tag Manager -->

知識不足で申し訳ありませんが、解説いただけると有難いです。
よろしくお願いいたします。
ベストアンサーのマーク済み.
解決策
トピック作成者さんが付与
2 週間前

Re: クライアントID取得時のプログラムの意味について

レジェンド
小栗さんが貼り付けていただいたGTMスニペットは、gtmオブジェクトをwindowに追加するもので、gtmオブジェクトはページ内で発生するイベントなどをトラッキングしてトリガを発火し、トリガーに設定されたタグを実行します。

なので、ご質問にストレートにお答えすると、このコードだけではgaオブジェクトはwindowに追加されません。

なお、おそらくユニバーサルアナリティクスタグのトリガーをページビュー(gtm.js)で設定されていると思いますので、gtmの準備が整ったらすぐにgaオブジェクトは追加されると思います。詳しい動きは、Dev toolか、Chrome拡張機能のタグアシスタント、GTMプレビューでのデバッグウィンドウをご参照ください。

ちなみに小栗さんのお客さんはなぜご質問の件を知りたいのでしょうか?

また、本コミュニティはユーザー同士が助け合って課題を解決していくコミュニティです。私もGoogleとは全く関係ないボランティアのイチユーザーですが、もし回答がお役に立ちましたら、いいね!のひとつも頂けますと回答のモチベーションが湧きます。というかこのコミュニティで回答しても得られるのは感謝といいね!くらいなので。。


Taishi Akiyama / フルスタックエンジニアのWEBマーケターです。とりえあえず検証してみるが信条。★や解決マークをくれるとモチベーションあがって回答の質があがるかもしれません

Re: クライアントID取得時のプログラムの意味について

中級者 ✭ ✭
ご回答いただき、ありがとうございます。

お客さんに説明する際に、機能の把握をしておきたかったので、、、。

解決マークをつけさせていただきます。