LoginSignup
8

More than 3 years have passed since last update.

posted at

updated at

Google広告:クロスドメインコンバージョン計測の実装パターンと検証

概要

ランディングページとサンクスページのドメインが異なるサイトにおいて、Google広告がコンバージョンを計測するために必要な設定は結局何なのか?どう動くのか?を検証したノートです。

※以降、ランディングページ~サンクスページの間で異なるドメインへ遷移することを「クロスドメイン」と呼びます。

結論

必要最低限の実装は以下 1, 2のどちらか(3は通常不要)。さらに、アカウント・キャンペーンごとにコンバージョン計測をしたい場合は広告アカウントとアナリティクスプロパティのリンクをする必要がある。

1. グローバルサイトタグ(gtag.js)

→ ランディングページのアクセス時、「グローバルスニペット」がURLパラメータgclid(広告クリックID)を取得し、Cookie_gcl_awの値としてセットする。このスニペットに「クロスドメイン用のコード」を加えることでクロスドメイン時にもファーストパーティCookieを引き渡すことが可能になる。コンバージョン時には「イベントスニペット」によりCookieで保持していた広告クリックIDを取り出してGoogle広告に送信することでコンバージョン計測を行う。

2. ユニバーサルアナリティクスタグ(analytics.js)

→ ランディングページのアクセス時、「analytics.js」がURLパラメータgclid(広告クリックID)を取得し、Cookie_gac_UA-***の値としてセットする。後述の「自動リンクドメイン」または「オートリンクプラグイン」と呼ばれる設定によりクロスドメイン時にもファーストパーティCookieを引き渡すことが可能。コンバージョン時には「広告コンバージョンタグ」によりCookieで保持していた広告クリックIDを取り出してGoogle広告に送信することでコンバージョン計測を行う。

3. コンバージョンリンカー

  • 自動タグ設定
  • コンバージョンリンカー」タグの設置
  • 広告コンバージョンタグの設置

→ analytics.jsかgtag.jsを使っていれば不要。

前提:計測の仕組み

コンバージョン計測の大きな流れとしては、まずクリックIDのURLパラメータ発行を行い、それを元にCookieを生成することでコンバージョンポイントまでクリックIDのデータを引き継ぎ、コンバージョンタグでGoogle広告へ送信するといった形になります。

1. クリックIDをURLパラメータに発行
ユーザーに広告が表示されるタイミングです。この広告のリンク先(ランディングページ)URLのパラメーターに("gclid")が付与されます。このパラメーターは広告表示時にGoogle広告サーバーが発行した広告クリックを識別するためのIDです。
基本的に「自動タグ設定」が有効になっていればこちらの処理が行われますが、今回検証したいのは次以降の動きです。

2. クリックIDをCookieに保存
ユーザーが広告をクリックしてランディングページへアクセスするタイミングです。広告クリックを識別するためのURLパラメーター("gclid")を元にブラウザのCookieが作られます。

3. Cookie=クリックIDのクロスドメイン
ユーザーがランディングページからドメインを跨いで完了画面へアクセスするタイミングです。何もしなければこのタイミングでCookie=クリックIDが抜け落ちてしまいます。したがって、クロスドメインと呼ばれる、別ドメインへのCookieの引き渡しが必要です(新しいファーストパーティCookie(その新しいドメイン用のCookie)が作成されます)。

4. CookieをもとにクリックIDをGoogle広告へ送信
ユーザーが完了画面を読み込むタイミングです。Google広告のコンバージョンタグが発火したときに、[3]のCookieからgclidのデータがGoogle広告へ送信されます。

「方法 1: 新しいGoogle広告コンバージョントラッキングタグを使用してコンバージョンをトラッキングする」に従った場合

前提

ツール 設定項目 設定有無
Google広告 自動タグ設定 あり
Googleアナリティクス analytics.js なし
Google広告 グローバルサイトタグ「グローバルスニペット」「イベントスニペット」 あり
Google広告 Googleアナリティクスとのアカウントのリンク なし
Googleタグマネージャー Google広告のコンバージョントラッキング なし
Googleタグマネージャー コンバージョンリンカータグ なし

関連ドキュメント:

検証内容

  • クリックIDをCookieに保存
    OK! URLパラメータgclidを元にCookie_gcl_awが作られている
    Global-Site-Tag-Global-Snippet-Cross-Domain-Conversion-Landing-Page-gclid-_gcl_aw.png
    ランディングページURL:https://masatoemata.github.io/test/first.html?gclid=test

  • Cookie=クリックIDのクロスドメイン

クロスドメイン用のコードを追記するとCookie
OK! _gcl_awが別ドメインのファーストパーティクッキーとして引き渡されている
※クロスドメイン用のコードを追記しなければクロスドメインができるようにはならない
Global-Site-Tag-Global-Snippet-Cross-Domain-Conversion-Next-Page-gclid-_gcl_aw.png

クロスドメイン先URL:https://myfirsraccount.firebaseapp.com/?_gl=***_gcl_aw***

  • CookieをもとにクリックIDをGoogle広告へ送信

OK! gclaw: test というURLパラメータでHTTPリクエストが行われている。
Global-Site-Tag-Global-Snippet-Cross-Domain-Conversion-Conversion-Page-gclid-_gcl_aw.png
コンバージョンポイントのURL:https://myfirsraccount.firebaseapp.com/form_clientId.html

//www.googleadservices.com/pagead/conversion/1010802458/
Parameters:
  label: ******
  data: event=conversion
  gclaw: test
  ...

実装方法

以下タグの設置(「自動タグ設定」は既に有効とする)

  • (1)グローバルスニペットをGoogle広告またはGoogleアナリティクスから取得
  • (2)クロスドメイン用のコードを(1)に追記して全ページに設置
allpages.html
<!--global snippet-->
<!--Global site tag (gtag.js)-->
<script async src="https://www.googletagmanager.com/gtag/js?id=***"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  //クロスドメイン用のコード
  //なお、「クロスドメイン用のコード」を最下部に記載したところ動かなかった。
  gtag('set', 'linker', {
   'domains': ['(ドメイン1)', '(ドメイン2)’]
  });

  gtag('js', new Date());
  gtag('config', '***');
</script>
  • (3)イベントスニペットをGoogle広告から取得してコンバージョンポイントに設置
thanks.html
<!--event snippet-->
<!-- Event snippet for ReachForm conversion page -->
<script>
//「タグの順序付け 」で(1)の後に発火させるようにする
  gtag('event', 'conversion', {
      'send_to': '***',
      'transaction_id': ''
  });
</script>

「方法 2: Google タグ マネージャーを使用して、新しいコンバージョン リンカータグを追加する」に従った場合

前提

ツール 設定項目 設定有無
Google広告 自動タグ設定 あり
Googleアナリティクス analytics.js なし
Google広告 グローバルサイトタグ「グローバルスニペット」「イベントスニペット」 なし
Google広告 Googleアナリティクスとのアカウントのリンク なし
Googleタグマネージャー Google広告のコンバージョントラッキング あり
Googleタグマネージャー コンバージョンリンカータグ あり

検証内容

  • クリックIDをCookieに保存

OK! URLパラメータgclidを元にCookie_gcl_awが作られている。
Conversion-Linker-Cross-Domain-Conversion-Landing-Page-gclid-_gcl_aw.png

ランディングページURL:https://masatoemata.github.io/test/first.html?gclid=test

  • Cookie=クリックIDのクロスドメイン

OK! Cookie_gcl_awが別ドメインに引き渡されている。
Conversion-Linker-Cross-Domain-Conversion-Next-Page-gclid-_gcl_aw.png
クロスドメイン先URL:https://myfirsraccount.firebaseapp.com/?_gl=***_gcl_aw***

  • CookieをもとにクリックIDをGoogle広告へ送信

OK! (画像省略:後述の方法と同様「方法 3: Google アナリティクスを使用する」)
コンバージョンポイントのURL:https://myfirsraccount.firebaseapp.com/form_clientId.html

//www.googleadservices.com/pagead/conversion/1010802458/
Parameters:
  label: ******
 gclaw: test
  ...

実装方法

以下タグの設置(「自動タグ設定」は既に有効とする)
Conversion-Linker-Cross-Domain-TagManager-Setting.png
ほか、「前提」を満たすようにする

「方法 3: Google アナリティクスを使用する」に従った場合

前提

ツール 設定項目 設定有無
Google広告 自動タグ設定 あり
Googleアナリティクス analytics.js あり
Google広告 グローバルサイトタグ「グローバルスニペット」「イベントスニペット」 なし
Google広告 Googleアナリティクスとのアカウントのリンク あり
Googleタグマネージャー Google広告のコンバージョントラッキング あり
Googleタグマネージャー コンバージョンリンカータグ なし

検証内容

  • クリックIDをCookieに保存

OK! URLパラメータgclidを元にCookie_gac_UA-***が作られている。
Analytics-Js-Cross-Domain-Conversion-Landing-Page-gclid-_gac_UA.png
ランディングページURL:https://masatoemata.github.io/test/first.html?gclid=test

  • Cookie=クリックIDのクロスドメイン

OK! Cookie_gac_UA-***が別ドメインに引き渡されている。
Analytics-Js-Cross-Domain-Conversion-Next-Page-gclid-_gac_UA.png
クロスドメイン先URL:https://myfirsraccount.firebaseapp.com/?***_gac=***.test

  • CookieをもとにクリックIDをGoogle広告へ送信

OK!
Analytics-Js-Cross-Domain-Conversion-Conversion-Page-gclid-_gac_UA.png
コンバージョンポイントのURL:https://myfirsraccount.firebaseapp.com/form_clientId.html

//www.googleadservices.com/pagead/conversion/1010802458/
Parameters:
  label: ******
  gac: UA-******:test
  ...

実装方法

以下タグの設置(「自動タグ設定」は既に有効とする)
- (1)Googleタグマネージャーの「Googleアナリティクス設定」変数で「自動リンクドメイン」を設定(コードに直接書く場合は「オートリンクプラグイン」のコードを記載する)
cross-domain-tracking-auto-link-domains.png

※{{allDomain}} = masatoemata.github.io,myfirsraccount.firebaseapp.com (定数)

  • (2)Googleタグマネージャーの「Google アナリティクス: ユニバーサル アナリティクス」タグを設定(これに(1)を組み込む)
  • (3)Googleタグマネージャーの「Google 広告のコンバージョン トラッキング」タグを設定

ほか、「前提」を満たすようにする

まとめ

Google広告のクリックIDをCookie化してクロスドメイン処理を行うために、以下いずれかの方法で実装する

1. グローバルサイトタグ(gtag.js)の「グローバルスニペット(+クロスドメイン用のコード)」+「イベントスニペット」の設置
→ URLパラメータgclidからCookieに_gcl_aw がセットされてクロスドメインが行われる

2. 「ユニバーサルアナリティクスタグ(analytics.js)」&「自動リンクドメイン」(または「オートリンクプラグイン」)+広告コンバージョンタグの設置
→ URLパラメータgclidからCookieに_gac_UA-*** がセットされてクロスドメインが行われる

※「自動タグ設定」を有効にすることが前提
なお、アカウント・キャンペーン単位でコンバージョンリンカータグ計測を行うために広告アカウントをアナリティクスのプロパティとリンクする場合も、「自動タグ設定」が前提となる。
※「コンバージョンリンカータグ」は不要
基本的にanalytics.jsかgtag.jsの設置、およびそれにクロスドメイン用のコード・設定がされていれば、クロスドメインの広告コンバージョンは行われるようになる。したがって、Googleタグマネージャーの「コンバージョンリンカータグ」はそれらのタグが埋め込まれていないサイト=古いタグ(ga.js)が設置されたサイトなどで使うことが前提になる。

疑問点

Google広告とアナリティクスをリンクする意味

  • 疑問の背景

ここまでの検証で、analytics.jsまたはgtag.jsを設置すればクリックIDがコンバージョンポイントまで引き継がれることは分かった。これで十分なように見えるが、公式ドキュメントの「方法 3: Google アナリティクスを使用する」ではGoogle広告アカウントとアナリティクスのプロパティをリンクするように説明されている。リンクすることで何が変わるのか?

  • → Google広告主コミュニティで質問中

【CV計測】 Googleアナリティクスと広告アカウントをリンクしたときの仕様を教えてください。

  • → 分かったこと(追記)

Google広告コンバージョンタグで計測するのではなく、Googleアナリティクスで作った目標を広告側にインポートするためにリンクする(ちなみにプロパティをリンクしておくことでオーディエンスのインポートも可能になる

※公式ドキュメント
アナリティクスの目標とトランザクションをGoogle広告のコンバージョントラッキングにインポートする
アナリティクスのリマーケティング用ユーザーリストについて

クリックIDに対応するCookieが_gcl_awでも_gac_UA-***でもコンバージョンタグでハンドリングされるのか?

→ソースコードを見て以下の記事にまとめました。
Google広告コンバージョンタグのソースコードでどうクリックIDを処理しているのか見てみる


何かあればお手数ですが、本記事か以下アカウントでお知らせください!

\ Follow Me! /
Qiitaアカウント
Twitterアカウント

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
8