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

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

クライアントIDを他システムに送信したい

中級者 ✭ ✭

初めまして。oguriと申します。

 

現在、googleタグマネージャを使用し、googleアナリティクスでwebサービスのアクセス解析を行っています。

 

googleアナリティクスのクライアントIDをwebサービスのログに出力させたく、まずはクライアントIDの情報を取得したいところなのですが、

コードを下記の位置に箇所に埋め込んでも、コンソールに出力されません。

 

この原因についてどなたかご教示いただけないでしょうか。

 

 

< head>


<!-- Google Tag Manager -->
<script>(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','GTM-KDVWK7H');</script>
<!-- End Google Tag Manager -->

 

<↓↓ クライアントID取得コード ↓↓ >

var tracker = ga.getAll()[0];
var cid = tracker.get('clientId');
console.log(cid);

<↑↑ クライアントID取得コード ↑↑>

・ 

</head>

 

 

<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KDVWK7H"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->

</body>

1 人のエキスパートが返信verified_user

Re: クライアントIDを他システムに送信したい

トップコントリビューター

タイミングの問題かと思います。今書いている書き方だと該当の「クライアントID取得コード」が実行された時点ではまだGoogleアナリティクスが読み込まれていない状態のため、 ga.getAll()などのコードがエラーになっているものと思われます。


Webサービスのログに出力させるコードの要件にもよりますが、可能であればGoogleタグマネージャから実行するようにすると、比較的シンプルに実行順をコントロールできるようになります。
今回の要件とは少し外れますが、下記が参考になると思います。
https://sem-technology.info/ja/google-analytics/get-google-analytics-clientid-using-gtm

 

もし、Googleタグマネージャから実行することが難しい場合は、少し強引ですが

setTimeout(function() {
  var tracker = ga.getAll()[0];
  var cid = tracker.get('clientId');
  console.log(cid);
}, 3000);

などのようにして、実行タイミングを遅らせる(上のコードだと3000ミリ秒遅らせる)ことで捕捉率100%とはいかないですが、捕捉率を高めることはできるかと思います。

Re: クライアントIDを他システムに送信したい

中級者 ✭ ✭
山田良太様

ご教示いただいたコードを設定し、コンソールを確認したところ、クライアントIDが出力されました!

ご回答いただき、ありがとうございました。