GA4でクライアントID取得したい(analytics.jsからgtag.jsへの移行の場合)

先日、前々から言われていたユニバーサル アナリティクスの終了の日がついにアナウンスされました。

「うちもいよいよGA4移行か・・・」となったわけです。

ユニバーサル アナリティクスのしかもanalytics.js版でクライアントIDの取得を行っているのですが、GA4でも取得できるのかなと思って探していたら様々な取得パターンをまとめた記事がありました(神記事!)。

【全8パターン】GoogleアナリティクスでクライアントIDを取得する方法の全て

最初、GA4の計測ができなかったのもあり、念の為、gtag.jsとanalytics.jsの両方に対応した書き方にして、GAタグを戻しても使えるようにしました。

その際のコードは以下のようになります。

非同期処理を行なっているので、Promiseを返すようにしています。

gtagが存在する時はgtag.js版のクライアウトID取得の処理、gtagが存在せずgaが存在する時はanalytics.js版のクライアントID取得の処理、それ以外は何もしないとしておけば、とりあえずはエラーにならずに取得できました。

getClientId = function () {
  return new Promise(function (resolve) {
    var data = null;
    if (typeof gtag !== 'undefined') {
      console.log('gtag detect');
      gtag('get', '{gtag版のトラッキングID}', 'client_id', function (clientId) {
        data = {
          success: true,
          id: clientId,
        };
        resolve(data);
      });
    }
    else if (typeof ga !== 'undefined') {
      console.log('ga detect');
      ga(function (tracker) {
        data = {
          success: true,
          id: tracker.get('clientId'),
        };
        resolve(data);
      });
    } else {
      resolve({ success: false, id: '' });
    }
  });
};

クライアントIDがそもそも取得できないユーザーもいるので、クライアントIDが取得できなくても、成功とみなすようになっています。

これでgtag.jsでもクライアントIDが取得できるようになりました。

めでたし、めでたし。

funnydreamer
栃木生まれのミドルエイジ。フロントエンドとデザインの領域におりましたが、最近はマーケティングやライティングにPythonによる自動化など何でも屋になってきました。趣味は、ゲーム、アニメ、自転車(ポタリング)、カフェ巡り、お絵描きと自称多趣味。ケーキはショートケーキが好物。

ADD COMMENT

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください