Advanced-Matching Data Sharingを使用すると、メールアドレスや電話番号などのハッシュ化されたユーザー識別子をAppsFlyerから指定した広告ネットワークに転送できます。これにより、パートナーはデバイスIDを使用せずに、イベントを広告エンゲージメントに紐付けてアトリビューションできるようになります。
Advanced-Matching Data Sharingについて
デバイス識別子の利用が制限されるようになる中、広告ネットワークでは、広告エンゲージメントとのマッチングにファーストパーティデータを活用するケースが増えています。Advanced-Matching Data Sharingは、ハッシュ化された識別子を、プライバシーに配慮した形式で対応パートナーに転送することで、こうしたデータ利用環境の変化に対応します。
この機能の利用は任意で、パートナーごとに設定できます。対応する広告ネットワークでこの機能を有効にすると、AppsFlyerはインストール、リエンゲージメント、アプリ内イベントのイベントデータとともに、ハッシュ化された識別子を転送します。
すべての識別子は、AppsFlyerに送信される前にSHA-256でハッシュ化する必要があります。ハッシュ化は、SDKを使用してデバイス上で行うか、S2S APIを使用してサーバー側で行います。AppsFlyerがプレーンテキストのデータを受信、保存、転送することはありません。また、検証に合格しなかった値は、データ取り込み時に破棄されます。
対応パートナー:
Advanced-Matching Data Sharingは、以下の広告ネットワークで利用できます。
| Partner | パートナーID (PID) |
| googleads_int | |
| Meta | facebook_int、metaweb_int |
| Moloco | moloco_int |
| OpenAI | openai_int |
| pinterest_int | |
| Snapchat | snapchat_int、snapweb_int |
| TikTok | tiktokglobal_int、tiktokweb_int |
| reddit_int | |
| Rokt | roktv2_int |
| Roku | rokuads_int |
エンドツーエンドのフロー
識別子を取得してからパートナーに送信されるまでの流れは、以下のとおりです。
- アプリまたはバックエンドで識別子(メールアドレス、電話番号、その他の対応する識別子)を取得します。
- AppsFlyer SDKが識別子を自動的に正規化し、SHA-256を使用してハッシュ化します。または、S2S API経由で送信する前に、サーバー側で正規化とハッシュ化を行います。
- SDKまたはサーバーから、ハッシュ化された識別子をイベント(インストール、再インストール、リエンゲージメント、またはアプリ内イベント)とともにAppsFlyerへ送信します。
- 対象のパートナーに対してAdvanced-Matching Data Sharingが有効になっている場合、AppsFlyerはイベントペイロードとともにハッシュ値をパートナーへ転送します。
- パートナーはこのハッシュ値を使用してイベントと既知のユーザーをマッチングし、アトリビューションの精度とマッチング精度を向上させます。
ハッシュ化された識別子は、Advanced-Matching Data Sharingが有効になっているパートナーにのみ転送されます。パートナーに対してこの設定を無効にすると、イベントに識別子が含まれている場合でも、そのパートナーにハッシュ化されたデータが共有されることはありません。
ハッシュ化されたユーザー識別子がAppsFlyerに送信される仕組み
ハッシュ化された識別子をAppsFlyerに送信する方法は、SDKとServer-to-Server(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 APIs
S2S In-App Events API経由でイベントを送信する場合、識別子はAPIに送信する前にサーバー側で正規化およびハッシュ化する必要があります。このAPIでは、以下のフィールドを使用できます。
| 項目 | 説明 |
|---|---|
email_hashed |
ハッシュ化されたメールアドレス |
phone_number_hashed |
数字のみの形式で正規化した後、ハッシュ化された電話番号 |
phone_number_e164_hashed |
E.164形式で正規化した後、ハッシュ化された電話番号 |
first_name_hashed |
ハッシュ化された名(First name) |
last_name_hashed |
ハッシュ化された姓(Last name) |
fb_login_id |
FacebookログインID(ハッシュ化せず、そのまま送信) |
この表に記載されているすべてのフィールド(fb_login_idを除く)は、SHA-256形式に準拠しているか検証されます。形式が一致しない値は通知なく破棄され、いずれのパートナーにも転送されません。イベント内のその他のフィールドは通常どおり処理されます。
電話番号の入力欄が2つあるのはなぜですか?
広告ネットワークでは、AppsFlyerから転送されたハッシュ値と、ネットワーク側で保持しているユーザーの電話番号のハッシュ値を比較することで、イベントをマッチングします。同じ電話番号であっても、異なる形式で正規化すると異なるハッシュ値が生成されるため、正しくマッチングするには、AppsFlyer側と広告ネットワーク側で同じ形式に正規化した値をハッシュ化する必要があります。広告ネットワークによって電話番号の正規化方法が異なることに加え、AppsFlyerが受信する時点ではすでにハッシュ化されているため、対応するすべてのパートナーでマッチングできるよう、以下の2つの形式を送信する必要があります。
-
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では、この形式を使用します。電話番号は、以下の手順で正規化およびハッシュ化します。
- 国番号を先頭に付けます。
- すべての記号、文字、および先頭のゼロを削除します。
- SHA-256でハッシュ化します。
例:
+1 (650) 123-4567 → 16501234567 → SHA-256ハッシュ
電話番号:E.164形式(phone_number_e164_hashed)
Google、TikTok、Rokuでは、この形式を使用します。電話番号は、以下の手順で正規化およびハッシュ化します。
- 国番号を先頭に付けます。
- すべての記号、文字、および先頭のゼロを削除します。
- 先頭に
+記号を付けます。 - 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を、そのまま送信します。このフィールドはハッシュ化しません。
Advanced-Matching Data Sharingを有効にする
Advanced-Matching Data Sharingは、パートナーおよびアプリごとに設定します。利用するには、各広告ネットワークに対して明示的に有効化する必要があります。
Advanced-Matching Data Sharingを有効にするには、以下の手順を実行します。
- AppsFlyer管理画面左メニュー 連携 > Partner Integrationsを選択します。
- 対象のパートナーを検索して選択します。
- Advanced-Matching Data Sharingを有効にします。
- 連携を保存をクリックします。
Advanced-Matching Data Sharingを有効にすると、対応する識別子フィールドが1つ以上含まれているイベントについて、それらのフィールドがパートナーに転送されます。
Advanced-Matching Data Sharingを無効にすると、そのパートナーへのハッシュ化されたデータの共有は直ちに停止します。ポストバックやイベントデータなど、その他の連携設定には影響しません。
プライバシーとデータの取り扱い
パートナーに対してAdvanced-Matching Data Sharingを有効にすると、AppsFlyerはイベントデータとともに、ハッシュ化されたユーザー識別子を対象の広告ネットワークへ転送するようになります。有効にする前に、以下をご確認ください。
- GDPR(EU一般データ保護規則)やCCPA(カリフォルニア州消費者プライバシー法)など、適用されるプライバシー関連法令に基づき、対象のパートナーとデータを共有するための適法な根拠があること。
- プライバシーポリシーが適切に更新され、必要な場合にはユーザーから同意を取得していること。
- データ共有の方法が、対象パートナーの規約に準拠していること。
AppsFlyerがプレーンテキストの個人を特定できる情報(PII)を処理または保存することはありません。すべての識別子フィールドはデータ取り込み時に検証され、SHA-256形式に準拠していない値は破棄され、いずれのパートナーにも転送されません。
よくある質問
Advanced-Matching Data Sharingは、Audiencesのハッシュ化されたメールアドレス/電話番号機能と同じものですか?
いいえ。これらは別の仕組みです。Audiencesでは、広告ターゲティングに使用するユーザーリストを作成します。一方、Advanced-Matching Data Sharingでは、個々のイベントとともにハッシュ化された識別子を転送することで、パートナー側でのマッチ率を向上させます。AppsFlyerでは、今後これら2つの方法を統合し、新しいデータ取得方法をAdvanced-Matching Data SharingとAudiencesの両方で使用する予定です。
無効なハッシュ値を送信するとどうなりますか?
該当するフィールドはデータ取り込み時に破棄され、いずれのパートナーにも転送されません。イベント内のその他のフィールドは通常どおり処理されます。
対応しているすべてのフィールドを送信する必要がありますか?
いいえ。利用可能で、設定済みのパートナーに関連する識別子のみを含める必要があります。値が存在しないフィールドは転送されません。
Advanced-Matching Data Sharingによってインストールアトリビューションの精度は向上しますか?
ほとんどのパートナーでは、インストール、リエンゲージメント、または再インストールのマッチングに、ハッシュ化されたメールアドレスや電話番号を使用していません。これらのフィールドを送信する主な目的は、パートナー側でアプリ内イベントをより正確にマッチングできるようにすることです。AppsFlyerのアトリビューションには影響しません。
AppsFlyerがプレーンテキストのユーザー識別子を受信することはありますか?
いいえ。この記事の冒頭にある「重要!」の注記で説明しているとおり、識別子はAppsFlyerに送信される前に必ずハッシュ化されます。SDKを使用する場合はデバイス上で、S2S APIを使用する場合はサーバー側でハッシュ化されます。AppsFlyerが受け付けるのは、ハッシュ化された値のみです。