#はじめに:
##やりたいこと
・Safariブラウザでもコンバージョン計測がしたい。
日本のiPhone普及率を考えると、ここは無視できないところ。
##そのために
・ファーストパーティークッキー(後述しますが、_gcl_aw/_gac)を生成する。
・広告をクリックした直後のランディングページと、コンバージョン計測したいページのドメインが異なる場合(クロスドメイン)、特別な方法でクッキーを渡してあげる必要がある。
##しかし
・Googleの資料を見ても、クロスドメイントラッキングの話がなかなかない。
(これ解決しないと、ITP対応できないでしょうに!)
・Google 広告のコンバージョンをトラッキングする方法
こんなん読んでも、ファーストパーティー、どころか、クッキーの「ク」の字もない。
##そこで、
参考資料:
・コンバージョン トラッキングの実装を検証する
・Google アナリティクスによるウェブサイトでの Cookie の使用
・Google 広告の自動タグ設定が正常に機能するか確認する
・ドメインをまたぐカスタマー ジャーニーを測定する
ここらの資料をすべてまとめてみました。
#ドメインをまたいでクッキーの引継ぎをするために
・GTMコンバージョンリンカー
・gtagでset linker
いずれかの方法で、クロスドメインの設定が必要になります。
#① Googleタグマネージャーで設定する場合
・ドメイン間のリンクの有効可にチェック
・カンマつなぎで、複数ドメインを登録する
・ドメインまたぎの瞬間がフォームの送信(カートに入れた瞬間にドメインが変わる場合など)の時には、「装飾フォーム: true」にする必要あり
(これが結構罠。デフォルトtrueではダメなんか...)
・トリガーはページビュー: All pages
#② gtagでset linkerの設定する場合
・以下のコードでドメイン間のリンクを有効にしてあげます。
・が、かならず gtag('js', new Date());よりも早く呼ぶ必要があります。
(テストしましたが、クッキー引き継げなかったです。これも罠。)
...
gtag('set', 'linker', {
'domains': ['exampleA.com', 'exampleB.com'],
'decorate_forms': true // trueにしておきましょう。
});
gtag('js', new Date());
...
よって、最終的な形はこうなります。
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('set', 'linker', {
'domains': ['exampleA.com', 'exampleB.com'],
'decorate_forms': true
});
gtag('js', new Date());
gtag('config', 'AW-XXXXXXXX');
</script>
#③ 本当にクロスドメインでクッキーを引き継げているのか?の検証
Google広告にて、コンバージョン計測に活用できるファーストパーティークッキーは2つです。
・_gcl_aw (Google広告のクッキー)
・_gac (※アナリティクスのクッキーです。アカウントのリンクが必要)
よって、「自動タグ設定にて付与された_gcl_aw / _gacを、ドメインAからドメインBに引き継げているかどうか」の検証が必要ですね。
#④ 検証方法
##手順1. gclid付与(広告クリックの状態を疑似的に再現)
「?gclid=xxxxx」とドメインAにてURLに付与
##手順2. クッキー確認
デベロッパーツールにて、「_gcl_aw」というクッキーが生成されたか確認
※_gcl_aw=xxxxx(gclidで付与した値) という形式のクッキーです
##手順3. ドメインを移動して、URLのクエリパラメータを確認(? or &_gl=...)
ユーザーと同じ導線でドメインBへ。URLに「?_gl=1xxxxxx_gcl_aw*xxxxx」というクエリが付くのを確認してください!(この中にクッキーの情報が入っているイメージ)
もし、リダイレクトしていてこのクエリパラメータが失われているいるようであれば、リダイレクトの設定を変更します。
Google公式: Google 広告の自動タグ設定が正常に機能するか確認する
リダイレクトがサーバーサイドの設定によって発生している場合は、リダイレクトが発生しないようサーバーの設定を変更します。方法はウェブサーバーによって異なります。たとえば Apache サーバーの場合は、.htaccess ファイルでリダイレクトの設定を行います。リダイレクトを回避できない場合は、リダイレクトの際に gclid などのクエリ パラメータが最初の URL から最終ページ URL に渡されるよう、サーバーを設定します。たとえば、自動タグ設定を使用している最終ページ URL が www.example.com/redirecting-page?gclid=TeSter-123 であれば、ユーザーのリダイレクト先が www.example.com/new-url?gclid=TeSter-123 になるようにします(ページの URL は変化しているものの、gclid パラメータはそのままである点に注目しましょう)。
※ 上記の「?gclid=」を「?_ gl=」に読み替えてください。
gclidは広告クリック直後の1回のみ、_glはクロスドメインの際に付与されるクエリパラメータです。
##手順4. ドメインBでクッキーを確認
ドメインBにて、手順2でチェックしたクッキーと同じものが引き継がれていれば、ドメインBへのファーストパーティークッキーの引き継ぎ完了です。
##プラグイン SUGOI!Cookies: gclid tester for Google Ads
SUGOI!Cookies: gclid tester for Google Ads
・手動での検証方法が面倒なので、プラグインを作ってみました。 気になる方は試してみてください。
・あくまで個人の趣味で開発してますが、バグがあれば直すので一報いただけると嬉しいです。随時改善中です。
#⑤ 補足: コンバージョンデータ送信時のHTTP通信を見てみる
- もし本当の本当に「コンバージョン計測時にファーストパーティークッキーのデータを送信できているのかどうか」気になるのであれば、コンバージョン計測時のHTTPリクエストを確認してみましょう。
##手順1 コンバージョンのHTTPリクエストを探す
デベロッパーツール=> Network
=> www.googleadservices.com/pagead/conversion/ で検索
##手順2 ファーストパーティークッキーが送られているか確認
この通信にて、「_gcl_aw / _gac」が送信されていれば安心です。
※Googleアナリティクスのクロスドメイン設定ができている、かつ、アカウントのリンクができている場合、_gacというクッキーも活用できます。
#まとめ
・Google広告のコンバージョン計測で使えるファーストパーティーは「_gcl_aw」「_gac」の2つ。今回は「_gcl_aw」をクロスドメインで引き継ぐための話でした。
・クッキーを渡す側(ドメインA)、もらう側(ドメインB)のいずれもで、
「GTM」 OR 「gtag」でのクロスドメイン設定の実装が必要になります。
以上です!