概要: クライアント(アプリ所有者)の皆さまは、AppsFlyer SDKを使用してアトリビューションデータをAppsFlyerに送信しています。ただし、場合によっては、アプリユーザーの要求、オプトイン/オプトアウト、またはGDPRやCCPAなどのプライバシー規制により、当社へのデータ送信を停止または制限する必要があります。
AppsFlyerプライバシーに関するお問合せ:お客様とAppsFlyer 間のプライバシー事項については、AppsFlyer Services Privacy Policy に準拠しています。本サービスプライバシーポリシーに関するご質問または当社のデータプロテクション事務局へのご質問は、privacy@appsflyer.com までご連絡ください。一般データ保護規則第27条に基づき、AppsFlyer のEU域内の代表は、AppsFlyer Germany GmbH Kurfürstendamm 11, c/o WeWork, 10719 Berlin, Germany (お問合せ先:privacy@appsflyer.com; +49-30-3119-9129)
オプトインとオプトアウトのシナリオ
- アプリに埋め込まれたAppsFlyer SDKは以下のように設定できます。
- オプトアウト:データ収集を停止または制限します。
- オプトイン:オプトアウト後、データ収集を再開します。
- 規制要件とビジネス要件を考慮し、アプリ開発者とマーケティング担当者は、この記事で詳述されている、オプトイン/オプトアウトを実装する必要があります。
- オプトアウトを使用すると、次のことができます。
- データ収集を禁止または制限するGDPRやCCPAなどの規制を遵守します。
- 完全なオプトアウト:全てのアトリビューションデータの収集を停止します。
- 部分的なオプトアウト: 一部のデータを送信する、または送信されたデータを匿名化します。
- 選択的オプトアウト: 特定の規制またはアプリユーザーの年齢に基づいてオプトアウトします。
- オプトインを使用:オプトアウトをオプトインに変更できます。
オプトアウトしたユーザー
オプトアウトは、規制やユーザーの要件に応じて、さまざまなレベルで実行できます。詳細については、オプトアウトシナリオを使用して適切なフローに従います。これを行って、オプトアウトリクエストへのコンプライアンスを確保し、必要に応じてアトリビューションデータを引き続き収集します。
- オプトアウトが有効化されているシナリオ:AppsFlyer IDがハッシュ化されます。
- より分かりやすいように、この記事では次のようにAndroidメソッド名を使用しています:
-
トラッキング開始メソッド:
- Android SDK:
start
-
iOS SDK:
start
- Android SDK:
- トラッキング停止メソッド:
- Android SDK:
stop
- iOS SDK: AppsFlyerTracker.shared().isStopTracking = true
- Android SDK:
-
トラッキング開始メソッド:
シナリオ
インストール時にオプトアウト
いつ :最初の起動時(例: COPPAコンプライアンス)
状況:すべてのセッションにおいてイベントの記録を実行するには、ユーザーの同意を必要とする。ユーザーが計測に同意した場合(例:特定の年齢を超えたユーザー)、アプリはSDKの start
メソッドを呼び出します。それ以外の場合は、start
メソッドを呼び出さないでください。
注意
start
が一度も呼び出されていない場合、stop
は使用しないでください。
方法:start
メソッドは、オプトインされたユーザーのセッション開始時に常に呼び出される必要がありますが、オプトアウトされたユーザーに対しては呼び出されるべきではありません。また、オプトインしたことのないユーザーのアプリ内イベントは送信できません。これは不明なユーザー経由のオーガニックイベントと見なされるためです。
従って、アプリの場合、start
が事前に呼び出されたかどうかを示す永続的なフラグパラメーターを含むインストールオプトアウトを実装することを推奨します。このフラグは、start
または logEvent
メソッドが呼び出される前に、必ずチェックされる必要があります。
AppsFlyerに送信されるデータ:データは送信されません。ユーザーが続いてオプトインした場合、start
が呼び出されてから、アトリビューションとセッションデータが送信されます。
例
com.carefulapp では、インストール時にユーザーが会員登録する必要があります。フォームには「私は13歳以上です」というチェックボックスが含まれています。開発者は、is_tracking というフラグを追加し、このボックスがオンになっている登録に対してのみ、これを true とし、その後 start
をアクティブにします。
コード例はこちらをご参照ください。
サードパーティとのデータ共有を防止
いつ:SDKが初期化されるたびに。
何を:ユーザーは、第三者とのデータ共有をオプトアウトするよう要求します。最初の start
呼び出しの前に、このオプションをAppsFlyer SDKにて有効化することで、セッション全体に対して次のことが適用されます。
- SRN経由のユーザーはオーガニックユーザーと見なされ、そのユーザーのデータは連携パートナーとも共有されません。
- 通常のアドネットワーク(SRN以外)経由のユーザーは、AppsFlyer上で正しく媒体へ紐付けされますが、ポストバック、API、ローデータレポート、またはその他の方法においてアドネットワークへデータは共有されません。
方法:
イベントデータの共有を防止するには、以下を実行します。
- SDK (Android、iOS—SDK V5.4.1 以降):
- すべてのメディアソースがイベントを受信しないようにする:SDK メソッド setSharingFilterForAllPartners を使用します。
- 1つまたは複数のメディアソースがイベントを受信しないようにする:SDK メソッド
setSharingFilter
を使用します。
- サーバー間(S2S)API:
- S2S の sharing_filter パラメータを送信します。
AppsFlyerに送信されるデータ:データはAppsFlyerに送信され保存されますが、AppsFlyerの連携パートナーに共有されることはありません。
例
「com.to.california」はカリフォルニア州の複数のテーマパーク向けのトラベルアプリです。CCPAに準拠するため、カリフォルニア在住者がオプトアウトの申請をした場合、ユーザーイベントデータを第三者と共有しないようにAppsFlyerに通知します。
セッションのオプトアウト
いつ:
状況:すべてのアプリのセッションに、セッション中にイベントとデータの計測を行うことに対するユーザーの同意を必要とします。
方法:セッションのオプトアウト シナリオの場合、最初のSDK呼び出しは、ユーザーがデバイスからデータを送信することに同意または拒否した後に行われます。
- ユーザーがデータ送信に同意した場合、
start
メソッドを呼び出します。 - ユーザーがデータ送信を拒否した場合、
start
は呼び出さないでください。
詳細な手順については、Android と iOS のオプトアウトガイドをご覧ください。
AppsFlyerに送信されたデータは、各セッションのオプトアウトステータスによって、次のように異なります。
- オプトアウトセッション :データは送信されません。
- オプトインセッション :すべてのセッションデータが送信されます。注:ユーザーが最初にオプトインしたときに計測データが送信されます。
例
com.adultsplayは、18歳以上の大人向けのカジュアルゲームアプリです。ユーザーは会員登録する必要はありませんが、アプリ起動のたびに年齢を確認する必要があります。ユーザーが18歳以上であることをユーザーが確認したセッションでは、完全なゲーム体験が計測されます。それ以外の場合、計測は実行されません。
開発者は、is_tracking と呼ばれるフラグを追加しました。これは、18歳以上を確認するセッションでのみ true になります。このフラグが true の場合、start
メソッドが呼び出されます。そうでない場合、start
は呼び出されません。
1回限りのオプトアウト
いつ :いつでも(GDPR)
状況:アプリ所有者は、計測データとインストール後のデータを収集します。ユーザーは、データの収集を停止するように要求します。例:GDPRリクエストに準拠
方法 :start
を呼び出したあと直接 stop
を呼び出さないでください!
代わりに、初回起動時に requestListener と一緒に start
メソッドを使用してください。正常に完了後、コールバック関数が stop
を呼び出します。
これ以降のすべてのセッションでは、start
を呼び出さないでください。
AppsFlyerに送信されるデータ: インストールとセッションデータがAppsFlyerに送信されます。stop
メソッドが呼び出されたあとは、AppsFlyerにはデータは一切送信されません。
例
com.watchmegrowは、植物を育てて見たりする植物成長アプリです。アプリの所有者は、すべてのアプリ内アクティビティデータを秘密にしたいと考えています。
初回起動時に、ディベロッパーは requestListener と一緒に start
を呼び出します。正常に完了した通知を受け取ると、コールバック関数から stop
を呼び出し、永続的なパラメーターである is_first_launch を falseに設定します。それ以降の起動では、is_first_launch が false であることを確認し、start
をスキップします。
コード例はこちらからご確認ください。
インストールの計測と匿名化
いつ :最初の起動時
状況 :アプリの所有者はすべてのアトリビューションデータを収集しますが、アプリ内イベントやセッションデータなどのすべての詳細情報をアトリビューションのないオーガニックデータとして収集します。インストール後、すべてのデバイスIDは、SDKからAppsFlyerに送信されるときに匿名化されます。
方法 :start
を呼び出したあと直接 stop
を呼び出さないでください!
代わりに、初回起動時に requestListener と一緒に start
メソッドを使用してください。正常に完了後、コールバック関数で anonymizeUser(true)
を呼び出します。
AppsFlyerに送信されるデータ:
- インストール時: 完全なアトリビューションデータがAppsFlyerに送信されます
- インストール後 :アプリ内イベントを含むセッションデータがAppsFlyerに送信されますユーザー識別情報は、AppsFlyerが受信すると匿名化またはハッシュ化されます。
例
com.munisticアプリのアプリ所有者は、すべてのユーザーが平等に生まれていると信じており、すべてのインストール後のアクションをオーガニックのみとして表示することを好みます。
初回起動時に、ディベロッパーは requestListener と一緒に start
を呼び出します。正常に完了すると、コールバック関数から anonymizeUser(true)
を呼び出します。
コード例はこちらをご参照ください。
リターゲティングキャンペーンのオプトアウト
オプトアウトしたユーザーをリターゲティングキャンペーンから除外することを検討しています。これらのユーザーは、オプトアウトしたためにリターゲティングされることに不満を抱く可能性があります。
アクティブユーザーを対象とするリターゲティングキャンペーンを手動で実行する場合は、オプトアウトしたユーザーをメディアソースリストに送信されるリストから削除してください。
または、 AppsFlyerオーディエンスを使用している場合(オーディエンスリストを自動的に作成して、選択したメディアソースに送信するため)、オプトアウトしたユーザーは、AppsFlyerによってメディアソースに送信されるメディアデバイスリストから除外されます。
stop
APIとディープリンク
stop
APIを使用すると、アプリに埋め込まれたAppsFlyer SDKによるすべての外部通信が停止します。
したがって、stop
を呼び出した後、短縮リンクはAppsFlyer SDKによってデコードされなくなります。つまり、短縮リンクは onAppOpenAttribution へを呼び出さず、ディープリンクが正しく実行されません。
オプトアウトしたユーザーの割合が比較的高いアプリで、ユーザー向けのリターゲティングキャンペーンを計画している場合は、ロングリンクを使用し、ショートリンクの使用は避けてください。
SDK機能の再起動
オプトアウトしたユーザーがオプトインに同意した場合、start
メソッドを呼び出してSDKを再起動し、アトリビューションデータの計測を開始してください。
StrictモードSDK(iOSのみ)
ディベロッパーは、コード内のAdSupportフレームワークとIDFA収集を参照せずに、アプリを提出したい場合があります。そのような場合は、StrictモードSDKをご利用ください。