インターネット広告の「トラッキング」の仕組みとアフィリエイト広告のITPの影響

# この記事で述べていること
広告系の会社に入社したり、広告系の会社とやり取りをすると避けては通れないのが**「トラッキング」**です。
今や多くのWeb広告でも利用されているトラッキングという技術ですが、トラッキングという言葉が様々なものを指すこと(ユーザーのマウスポインタの挙動を追跡するアイトラッキング等)があり、イマイチWeb広告におけるトラッキングというものが解説されているサイトが少ないなと思いました。

かくいう私も広告会社に入社するまでは、トラッキングってなんとなくイメージはついていたのですが、技術的にどういう仕組みを使って、どういうことが行われているのかは理解していませんでした。

そこで今日はアフィリエイト広告の運営会社でトラッキングについて研修をした時に実際に使った資料を一部修正して、**インターネット広告におけるトラッキング技術**について解説したいと思います。

# アフィリエイトとは？
「アフィリエイト」と聞くと、もしかしたら世間一般にはネガティブなイメージがありません。
というのもよく「簡単作業でノーリスクで簡単に月100万円稼ぐ方法」という商材や、マルチ商法の勧誘等でアフィリエイトという言葉が用いられていることが多いからです。

しかし、アフィリエイトはパフォーマンスマーケティングに分類される、歴としたマーケティング手法の一つです。
上場企業でもASP(Affiliate Service Provider)と呼ばれる、アフィリエイト広告の提供を期間事業としている会社も多いです。
アフィリエイト広告は、PVやクリック数ではなく、実際に商品が購入されたりサービスへの申込みがあったら初めてお金が発生する広告で、別名**成果報酬型広告**とも呼ばれています。
![トラッキング研修_拡散用.006.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/b804f2f4-2038-26aa-d944-0110ba4f0bac.jpeg)

そしてこのアフィリエイト広告にとっては、本記事のテーマでもある**「トラッキング」**が無くてはならない存在なのです。
![トラッキング研修_拡散用.007.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/af7edd5e-94f6-6ed3-e473-4c82056d6eec.jpeg)
![トラッキング研修_拡散用.008.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/e1d9d9d7-428a-3fc3-d715-5b5ab2f878e4.jpeg)

アフィリエイト広告以外のインターネット広告でもトラッキングは利用されていますが、どちらかというと**広告を効率良く配信するための道具**として利用されることが多いです。
例えば、ランダムに商品の広告を配信するよりも、以前閲覧した商品に関連性がある商品の広告を配信した方が、その商品を購入してくれる可能性が上がりますし、広告を見るユーザにとっても自分に興味があるものの広告のほうが有用なものであるからです。
なので最悪トラッキングをしなくても広告配信自体は可能です。
![トラッキング研修_拡散用.009.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/78b32688-d7fc-614a-0e71-87f557928c49.jpeg)
しかしアフィリエイト広告は、上述している通りその仕組み上**トラッキング技術が欠かせないもの**となります。
この記事ではアフィリエイト広告を中心にトラッキング技術について解説していきます。

# Webサイトの基礎知識とCookieの基礎知識
ここではWebサイトを表示する仕組みと、トラッキング技術の基礎であるCookieについて解説します。
## Webサイトはどうやって表示してる？
![トラッキング研修_拡散用.010.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/f2c04271-855b-9c0c-8e64-eee944d4b743.jpeg)
Webサイトは上記のような仕組みで表示されています。
Webサイトの情報が格納されているサーバに対して、Webサイトを表示しているPCやスマホのことを「クライアント」と呼びます。
（「顧客」を意味してクライアントという言葉を使うこともありますが、ここではクライアント＝Webサイトを表示する端末を指します。）

①クライアントがサーバに対して、Webサイトを表示したいとリクエストをすると、
②サーバはそのリクエストに対する返答(レスポンス)として、HTMLファイルやJavaScriptファイルをクライアントに渡し
③クライアントのWebブラウザ上でHTMLファイルを解釈して可視化します。

## Cookieとは？
![トラッキング研修_拡散用.011.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/56bb5ef8-be2d-7f12-5638-454647cd7981.jpeg)
![トラッキング研修_拡散用.012.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/56a1345e-8135-c0ec-66ab-96164efed0be.jpeg)
![トラッキング研修_拡散用.013.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/be50db6f-b7a3-a972-3a43-b35b78339208.jpeg)
Cookieとは簡単にいうと、ブラウザが用意したちょっとした情報の保存領域です。

トラッキングにおいてCookieは「1st Party Cookie」と「3rd Party Cookie」の2種類に分類されます。
![トラッキング研修_拡散用.024.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/952643af-05d5-6094-8c35-324feda9ec65.jpeg)
![トラッキング研修_拡散用.025.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/60546d1a-f3d6-3e50-7570-56684618e233.jpeg)
![トラッキング研修_拡散用.026.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/d196f0cd-f9ff-76cc-897f-2bb25655f80e.jpeg)
更にCookieの保存方法により「サーバサイドCookie」と「クライアントサイドCookie」に分類されます。
サーバサイドCookieは上述してあるWebサイトが表示される仕組みの「②レスポンス」の時に、HTMLファイル等と一緒に与えられるCookieです。
クライアントサイドCookieは、「③解釈」の時にJavaScript等をブラウザ上で解釈している時に保存するCookieです。
![トラッキング研修_拡散用.028.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/4d745dee-b49f-b202-aef3-42a592c2c62b.jpeg)
また「Local Storage」というものも存在します。
LocalStorageは役割としてはCookieと同じく、ブラウザが持つちょっとした保存容量なのですが、特徴が若干異なります。
基本的にはブラウザはCookieもLocalStorageも別々に両方保存することができます。

### CookieとLocalStorageの特徴

|  | Cookie | LocalStorage |
|:-:|:-:|:-:|
| 容量 | 4KB | 10MB |
| 有効期限 | 保存された時に既に設定されている | 消さない/消されない限り永久的 |
| 保存単位 | メインドメイン単位 | サブドメイン単位 |
| リクエスト時のデータ通信 | 保存したドメインの通信時には常にCookie内データも通信 | 通信するような処理を別に書かなければ特にされない |

# Cookieを用いたトラッキング
インターネット広告の世界では、後述するITPという問題が発生する以前はCookieを用いてトラッキングを行っていました。
![トラッキング研修_拡散用.014.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/8ac3b19d-b9f6-654b-d06f-ded9a93ade00.jpeg)
広告リンクをクリックした際に、「広告をクリックした」という情報をCookieに保存します。
そして実際に商品の購入・サービスの申し込みが発生した際に、広告をクリックしたというCookieがあればアフィリエイト広告の成果である、といった形でCookieを用いてトラッキングをしていました。
![トラッキング研修_拡散用.015.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/847d764c-1028-f31c-921f-4b1c174f6a8e.jpeg)
Cookieを用いたトラッキングは「ピクセルタグを用いたトラッキング」と呼ばれることもありますが、これはimgタグを使ってコンバージョン(購入や申込)したことを広告会社のサーバへ通知するためです。
### ピクセルタグについて
通常imgタグはWebサイト上に画像を表示するために利用するタグです。
![トラッキング研修_拡散用.016.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/aba0230a-2983-64b7-c582-fcaddb287a2d.jpeg)
この技術を用いて、1ピクセルx1ピクセルという大きさを指定すると、画像は目には見えないけれど、srcで指定したURLに通信する、ということが実現できます。
![トラッキング研修_拡散用.017.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/aa14bc7f-e54b-245d-46a1-3dd999698f96.jpeg)

# ITP
Cookieやインターネット広告のトラッキングを語る上で避けては通れないのが、**ITP**です。
正直ITPさえなければ、トラッキングの説明は以上です。
しかし、ITPがあるためトラッキングは更に複雑化することとなりました。
## ITPとは
ITP(Intelligent Tracking Prevention)とはざっくり言うと、**Apple製品のSafariブラウザ**で一部トラッキングのため**Cookie等の機能を無効化**するといったものとなります。
そして今後はSafariに限らず、FirefoxやChromeといった主要ブラウザも同様な機能をブラウザに搭載すると発表しています。

もちろんこれは、アフィリエイト業界への嫌がらせ等という訳では有りません。
Cookieは正しく使えば、マーケティングを効率的に行うことができたり、成果報酬型といったWin-Winな広告手法を実現するための道具として活用できます。
しかし中には、不正にユーザの情報を使ったり、不用意にトラッキング技術を多用してユーザの情報が抜かれているのではないかという不安を煽るようなものも出現してしまったため、規制される流れとなったと考えられます。

## ITPの影響
ITPの影響表

| 3rd Party Cookie | 即時無効 |
|:-:|:-:|
| **1st Party CookieかつクライアントサイドCookie**  |  **24時間以内に無効** |
| **1st Party CookieかつサーバサイドCookie**  |  **30日は有効** |
| **LocalStorage** | **インタラクションがあった場合7日以内に無効**  |
| **LocalStorage**  | **インタラクションがない場合即時無効**  |
※インタラクション：アクセスしたページ内で何かクリックしたり、フォームを送信したりする等のページ操作

従ってITPの影響により今までCookieに保存していた情報のほとんどに制限がかかることとなりました。
特に、インターネット広告は広告を貼るサイトのドメインと、広告会社のドメインは異なる場合がほとんどのため、3rd Party Cookieを利用していたため、迅速な対応が必要となりました。
![トラッキング研修_拡散用.021.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/198c0082-896a-15e3-88ce-3f2c8f562120.jpeg)
![トラッキング研修_拡散用.022.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/90a00a1f-4815-a990-6537-e0e03a590cbd.jpeg)

![トラッキング研修_拡散用.030.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/b58b1718-4feb-3c34-98f1-6979ee5f6297.jpeg)

## ITPの影響を受けないようにするための努力
これを受けて、各広告会社はITPの影響を出来る限り減らすために、3rd Party Cookieを用いない、その他のITP規制も出来る限り受けない形でのトラッキング方式に切り替える対応を行っています。
参考：[https://liskul.com/itp-affiliate-36039#ITP-2](https://liskul.com/itp-affiliate-36039#ITP-2)

どのような技術を用いてITPに対応しているかは、各広告会社によって異なるため一概には言えませんが、簡単に表すと以下のような形になります。
![ITPの影響減_修正版.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/459539/26bc9c53-c163-f93b-62a1-24881a67d9ca.jpeg)
広告主サイトに流入する際に、クリックごとにユニークなパラメータをつけるよう広告会社のサーバでリダイレクトします。
従来ならこのクリックごとにユニークなパラメータを広告会社のサーバで3rd Party Cookieで保存していたのですが、ITPの影響により3rd Party Cookieは即時無効化されるので使えません。そのため、
**①このパラメータを広告主自身のWebサイト上で最もITPの影響が少ない「サーバサイドCookie」として保存します。**
**②そしてこの保存したパラメータ値を、成果通知の時にサーバサイドCookieから取り出して成果通知先URLに付け加えます。**
今までは広告主側でこの２つの作業は必要なかったのですが、ITPの影響でこれが必要となります。

広告主がアフィリエイト広告を導入する際に必要な作業が、
**ITPが無い頃は、コンバージョンページにピクセルタグを貼るだけで良かった**のですが、
**ITPの影響によりサーバサイドCookieとして広告主ドメインのサーバサイドCookieとして保存する＋コンバージョンページの成果通知の時に保存したCookieの情報を取り出すという作業が必要**となりました。

また、システム上どうしても上記の対応ができない場合は、次に影響を受けづらいLocalStorage、クライアントサイド1st Party Cookieを付与することで対応するのが一般的です。この場合流入ページでクライアントサイドCookieとして保存するためののJSタグは広告会社が持っていることが多く、コンバージョンページに成果通知用のタグを貼る他に必要な広告主側の作業は、「流入ページにJSタグを貼る」ということとなります。

流入ページとコンバージョンページのURLがサブドメインまで同一であれば、LocalStorageに情報が保存できるため、インタラクションがあれば有効期限は7日間となります。
インタラクションが無かった場合や、サブドメインが異なる場合はクライアントサイドの1st Party Cookieとなるため、有効期限は24時間以内となります。

## どうして有効期限が長いほうが良い？
ITPの影響でCookieが即時無効化される場合は確かに影響があるのは分かったけど、24時間とか7日以内とかあれば十分じゃない？という疑問をもつ方が多いと思います。
確かに、ユーザが広告をクリックしてからコンバージョンに至る瞬間まで保存しておけば良いということには変わり有りません。

「広告をクリックして申し込みページにたどり着いてから、商品をかごに入れて配送先住所を入力して決済方法を指定して購入」
この動作だけ考えれば数十分程度で完了すると思います。

しかし、中には**たくさんの商品があるネットショッピングのサイト**があったり、その**サービスのことを初めて知ってからちょっと悩んで申し込みをする**サービスというものもあると思います。

*電車で移動中広告を見て良いなと思った商品。この服はあの服とのコーディネイト良さそう、家帰った後に持ってる服を確認してから買おう！
今手元にクレジットカード無いから、あとで買おう！
同業他社の色んなサービスを比較してから申し込みをしたいから、他のサービスとじっくり比較してから申し込みをしよう！*

そう思っているうちに、あれよあれよと時は過ぎ去ります。
でも**「その商品・サービスに出会ったのは広告のおかげ」**という事実は変わらないのでは無いでしょうか。
勿論広告が全てでは無いと思いますが、ちょっとした人生の決断に広告が寄与したというのは事実でしょう。

広告に触れてから時間が経ちすぎているものは流石にそうとは言えないけれども、ある程度であれば広告のおかげと言えるだろうというように判断していることが多いです。
基本的にその有効日数を何日するかを設定することはできますが、ITPの影響でその選択肢が狭まってきてしまいます。

有効日数を何日にするかの選択肢を増やすために、有効期限ができるだけ長いものを選択するのがベストな広告配信と言えます。


...という心情的な理由ももちろんあるのですが、**現実的・技術的な理由としては、今後のさらなるITPの規制に対応するため**です。
かつてITPが登場した当初は3rdPartyCookieも24時間の有効期限がありましたが、今や即時無効となっています。
現時点で最も影響を受けづらい方法を採用することで、将来規制が更に厳しくなった時でも影響を最小限に抑えることが出来ます。


# 資料のSpeakerDeck
こちらはCookieを用いたトラッキングをベース知識として、ITP等を説明するといった形で説明を行ったため、本記事とは一部順番が異なります。
是非ご活用いただけたらと思います。
[![thumbnail](http://files.speakerdeck.com/presentations/26d9b585ed364cb582ca8458028589d1/slide_0.jpg)](https://speakerdeck.com/shotaokb/intanetutoguang-gao-false-toratukingu-falseshi-zu-mito-ahuirieitoguang-gao-falseitpfalseying-xiang)
[インターネット広告の「トラッキング」の仕組みと アフィリエイト広告のITPの影響 - Speaker Deck](https://speakerdeck.com/shotaokb/intanetutoguang-gao-false-toratukingu-falseshi-zu-mito-ahuirieitoguang-gao-falseitpfalseying-xiang)


# 参考資料
[アフィリエイトとは｜広告主のかたへ｜アフィリエイトのアクセストレード](https://www.accesstrade.ne.jp/merchant/affiliate)
[アフィリエイト成果のトラッキングの仕組みについて｜株式会社ファンコミュニケーションズ 広報ブログ](https://www.fancs.com/pr/2014/09/29/2471)
[What Is a Website Cookie? How Cookies Affect Your Online Privacy](https://www.makeuseof.com/tag/whats-a-cookie-and-what-does-it-have-to-do-with-my-privacy-makeuseof-explains/)
[Full Third-Party Cookie Blocking and More | WebKit](https://webkit.org/blog/10218/full-third-party-cookie-blocking-and-more/)
[ITP とうとう「フルブロック」の登場（1〜2.x 総まとめ）随時更新！ - Qiita](https://qiita.com/emacs_hhkb/items/d42a45eecc2d4de2f516)