詳細マッチングデータの共有では、メールアドレスや電話番号などのハッシュ化されたユーザー識別子をAppsFlyerから指定のアドネットワークへ転送します。パートナーはデバイスIDがなくても、イベントを広告接触と紐付けて計測できます。
詳細マッチングデータの共有について
利用できるデバイス識別子が減る中、アドネットワークが広告接触の照合にファーストパーティデータを活用する機会が増えています。詳細マッチングデータの共有は、ハッシュ化された識別子を、プライバシー要件に準拠した形式で対応パートナーに転送することで、この課題に対処します。
この機能は任意で利用でき、パートナーごとに設定します。対応するアドネットワークで有効にすると、AppsFlyerはインストール、リエンゲージメント、アプリ内イベントのデータとともに、ハッシュ化された識別子を転送します。
すべての識別子は、AppsFlyerに到達する前に、デバイス上のSDKまたはS2S APIを使用するサーバー側の処理で、SHA-256によるハッシュ化を行う必要があります。平文のデータを受信、保存、転送することはなく、検証に失敗した値は受信時に破棄されます。
対応パートナー
詳細マッチングデータの共有は、以下のアドネットワークで利用できます。
| パートナー | パートナーID(PID) | 対応する詳細マッチングフィールド |
| googleads_int | ハッシュ化したメールアドレス、電話番号 | |
| Meta | facebook_int | ハッシュ化したメールアドレス、電話番号、名、姓 |
| Meta | metweb_int | ハッシュ化したメールアドレス、電話番号、名、姓、およびFBログインID |
| Moloco | moloco_int | ハッシュ化したメールアドレス、電話番号、名、姓 |
| ChatGpt Ads | openai_int | ハッシュ化したメールアドレス、電話番号、名、姓 |
| pinterest_int | ハッシュ化したメールアドレス、電話番号、名、姓 | |
| Snapchat | snapchat_int | ハッシュ化したメールアドレス、電話番号 |
| Snapchat | snapweb_int | ハッシュ化したメールアドレス、電話番号、名、姓 |
| TikTok | tiktokglobal_int | ハッシュ化したメールアドレス、電話番号、名、姓 |
| TikTok | tiktokweb_int | ハッシュ化したメールアドレス、電話番号、名、姓 |
| reddit_int | ハッシュ化したメールアドレス、電話番号 | |
| Rokt | roktv2_int | ハッシュ化したメールアドレス、電話番号、名、姓 |
| Roku | rokuads_int | ハッシュ化したメールアドレス、電話番号 |
| Smadex | smadex_int | ハッシュ化したメールアドレス、電話番号、名、姓 |
取得から共有までの流れ
識別子を取得してからパートナーに届くまでの流れは、以下のとおりです。
- アプリまたはバックエンドが、メールアドレス、電話番号などの対応する識別子を取得します。
- AppsFlyer SDKが識別子を自動で正規化し、SHA-256でハッシュ化します。S2S APIで送信する場合は、送信前にサーバー側で同じ処理を行います。
- SDKまたはサーバーが、ハッシュ化した識別子を、イベント(インストール、再インストール、リエンゲージメント、アプリ内イベント)とともにAppsFlyerへ送信します。
- 対象パートナーで詳細マッチングデータの共有が有効な場合、AppsFlyerはイベントのペイロードとともにハッシュ値を転送します。
- パートナーはハッシュ値を使用してイベントを既知のユーザーと照合し、アトリビューションの精度と照合の品質を高めます。
ハッシュ化した識別子は、詳細マッチングデータの共有が有効なパートナーにのみ転送されます。パートナーの設定を無効にすると、イベントに識別子が含まれていても、そのパートナーにはハッシュ化されたデータを共有しません。
ハッシュ化したユーザー識別子をAppsFlyerに送信する方法
ハッシュ化した識別子をAppsFlyerに送信する方法は、SDKとサーバー間(S2S)APIの2つです。どちらの場合も、正しくハッシュ化された値のみ受け付けます。各方法は、以下のタブで説明します。
SDK
SDK V7.0.1では、ハッシュ化前の識別子をAppsFlyerのAndroidおよびiOS SDKに渡すメソッドが導入されています。 SDKは入力値を正規化し、ハッシュ化してからAppsFlyerに送信します。
SDKは、以下の手順を順番に実行します。
- 各パートナーの要件に従って入力値を正規化します。
- 正規化した値をSHA-256でハッシュ化します。
- ハッシュ化した値のみをAppsFlyerに送信します。ハッシュ化前の入力値がデバイスの外に送信されることはありません。
無効な値はSDKがエラーとして拒否し、AppsFlyerには送信しません。
AndroidとiOSでは、SDK V7.0.1以降で利用できます。
実装の詳細は、Android SDK実装ガイドおよびiOS SDK実装ガイドを参照してください。
S2S API
S2Sアプリ内イベントAPIでイベントを送信する場合は、送信前にサーバー側で識別子の正規化とハッシュ化を行う必要があります。 APIは、以下のフィールドを受け付けます。
| フィールド | 説明 |
|---|---|
email_hashed |
ハッシュ化したメールアドレス |
phone_number_hashed |
ハッシュ化した電話番号(数字のみの形式) |
phone_number_e164_hashed |
ハッシュ化した電話番号(E.164形式) |
first_name_hashed |
ハッシュ化した名 |
last_name_hashed |
ハッシュ化した姓 |
fb_login_id |
FacebookログインID(ハッシュ化せず、そのまま送信) |
この表のすべてのフィールド(fb_login_idを除く)で、SHA-256形式かどうかを検証します。形式が一致しない値は、通知せずに破棄され、どのパートナーにも転送されません。イベントの他のフィールドは通常どおり処理されます。
電話番号のフィールドが2種類あるのはなぜですか?
アドネットワークは、AppsFlyerから転送されたハッシュ値と、自社が保有するユーザーの電話番号のハッシュ値を比較して、イベントを照合します。同じ電話番号でも正規化の形式が異なるとハッシュ値が変わるため、照合する双方で同じ形式の値をハッシュ化する必要があります。アドネットワークごとに正規化の形式が異なり、AppsFlyerはハッシュ化済みの値を受け取るため、すべての対応パートナーで利用するには、両方の形式を送信する必要があります。
-
phone_number_hashed:MetaとSnapchat向け。ハッシュ化前の正規化形式:16501234567 -
phone_number_e164_hashed:GoogleとTikTok向け。ハッシュ化前の正規化形式:+16501234567
識別子の正規化とハッシュ化
以下の手順に従って元の値を正規化し、SHA-256でハッシュ化して、小文字の16進数文字列でハッシュ値を送信します。
メールアドレス(email_hashed)
メールアドレスを以下の手順で正規化し、ハッシュ化します。
- すべての空白文字を削除します。
- 小文字に変換します。
- SHA-256でハッシュ化します。
例:
User@Example.COM→user@example.com→SHA-256のハッシュ値
電話番号・数字のみ(phone_number_hashed)
Meta、Reddit、Pinterest、Snapchatで使用します。電話番号を以下の手順で正規化し、ハッシュ化します。
- 先頭に国番号を追加します。
- 記号、英字、先頭の0をすべて削除します。
- SHA-256でハッシュ化します。
例:
+1 (650) 123-4567→16501234567→SHA-256のハッシュ値
電話番号・E.164形式(phone_number_e164_hashed)
Google、TikTok、Rokuで使用します。電話番号を以下の手順で正規化し、ハッシュ化します。
- 先頭に国番号を追加します。
- 記号、英字、先頭の0をすべて削除します。
- 先頭に
+を追加します。 - SHA-256でハッシュ化します。
例:
+1 (650) 123-4567→+16501234567→SHA-256のハッシュ値
名(first_name_hashed)と姓(last_name_hashed)
氏名を以下の手順で正規化し、ハッシュ化します。
- すべての空白文字を削除します。
- 小文字に変換します。
- SHA-256でハッシュ化します。
FacebookログインID(fb_login_id)
Facebook Login SDKから取得したFacebookログインIDをそのまま送信します。このフィールドはハッシュ化しません。
詳細マッチングデータの共有の有効化
詳細マッチングデータの共有は、パートナーおよびアプリ単位で管理され、アドネットワークごとに明示的に有効にする必要があります。
詳細マッチングデータの共有を有効にするには、以下の手順を実施します。
- AppsFlyerのサイドメニューで、連携>有効な連携を選択します。
- パートナーを検索して選択します。
- 詳細マッチングデータの共有を有効にします。
- [連携を保存]をクリックします。
詳細マッチングデータの共有を有効にすると、対応する識別子フィールドを1つ以上含むイベントで、該当フィールドがパートナーに転送されます。
詳細マッチングデータの共有を無効にすると、そのパートナーへのハッシュ化されたデータの共有は直ちに停止します。ポストバックやイベントデータなど、他の連携設定には影響しません。
プライバシーとデータの取り扱い
パートナーで詳細マッチングデータの共有を有効にすると、AppsFlyerはイベントデータとともに、ハッシュ化されたユーザー識別子をそのアドネットワークへ転送し始めます。有効にする前に、以下を確認してください。
- 一般データ保護規則(GDPR)やカリフォルニア州消費者プライバシー法(CCPA)など、適用されるプライバシー法に基づき、パートナーとこのデータを共有する法的根拠があること。
- プライバシーポリシーを更新し、必要な場合はユーザーの同意を取得していること。
- データ共有の方法が、パートナーの規約に準拠していること。
AppsFlyerは、平文の個人識別情報(PII)を処理または保存しません。すべての識別子フィールドを受信時に検証します。SHA-256形式に準拠していない値は破棄し、どのパートナーにも転送しません。
よくある質問
詳細マッチングデータの共有は、Audiencesのメールアドレスや電話番号のハッシュ値を利用する機能と同じですか?
いいえ。これらは別々の仕組みです。 Audiencesは、広告ターゲティング用のユーザーリストを作成します。詳細マッチングデータの共有は、個々のイベントとともにハッシュ化された識別子を転送し、パートナー側の照合率を高めます。 AppsFlyerでは、両方の仕組みを統合し、新しいデータ取得方法を詳細マッチングデータの共有とAudiencesの両方で使用する予定です。
無効なハッシュ値を送信するとどうなりますか?
そのフィールドは受信時に破棄され、どのパートナーにも転送されません。イベントの他のフィールドは通常どおり処理されます。
対応するフィールドをすべて送信する必要がありますか?
いいえ。取得可能で、設定したパートナーに関連する識別子のみを含めれば問題ありません。含まれていないフィールドは転送されません。
詳細マッチングデータの共有で、インストールのアトリビューションは改善されますか?
ほとんどのパートナーは、インストール、リエンゲージメント、再インストールの照合に、ハッシュ化したメールアドレスや電話番号を使用していません。これらのフィールドの送信は、主にパートナー側でアプリ内イベントをより正確に照合するために役立ちます。 AppsFlyerのアトリビューションには影響しません。
AppsFlyerが平文のユーザー識別子を受信することはありますか?
いいえ。記事上部の「重要」に記載のとおり、識別子はデバイス上のSDKまたはS2S APIを使用するサーバー側の処理で、AppsFlyerに到達する前に必ずハッシュ化されます。 AppsFlyerは、ハッシュ化された値のみを受け付けます。