概要:AppsFlyerでデータ共有を制限または停止することで、GDPRやCCPAなどのプライバシー規制に準拠することができます。
AppsFlyerのプライバシーに関するご質問:お客様とAppsFlyerのプライバシー関係は、 AppsFlyerサービスのプライバシーポリシーに準拠します。本サービスのプライバシーポリシーに関するご質問、または当社のデータ保護責任者へのお問い合わせは、 privacy@appsflyer.comまでご連絡ください。
一般データ保護規則第27条の目的上、AppsFlyerのEU域内の代表者は AppsFlyer Germany GmbH, Schönhauser Allee 180, 10119 Berlin, Germany(ご連絡先privacy@appsflyer.comまたは+49-30-166373500)です。
オプトインとオプトアウトのシナリオ
- アプリに埋め込まれたAppsFlyer SDKは以下のように設定できます。
- オプトアウト:データ収集を停止または制限します。
- オプトイン:オプトアウト後、データ収集を再開します。
- アプリ開発者とマーケティング担当者は、規制要件とビジネス要件を検討した後、この記事で詳しく説明されているようにオプトイン/オプトアウトを実装します。
- オプトアウトを使用すると、次のことができます。
- データ収集を禁止または制限するGDPRやCCPAなどの規制を遵守します。
- 完全なオプトアウト:全てのアトリビューションデータの収集を停止します。
- 部分的なオプトアウト: 一部のデータを送信する、または送信されたデータを匿名化します。
- 選択的オプトアウト: 特定の規制またはアプリユーザーの年齢に基づいてオプトアウトします。
- オプトインを使用:オプトアウトをオプトインに変更できます。
オプトアウトしたユーザー
オプトアウトは、規制やユーザーの要件に応じて、さまざまなレベルで実行できます。詳細については、オプトアウトシナリオを使用して適切なフローに従います。これを行って、オプトアウトリクエストへのコンプライアンスを確保し、必要に応じてアトリビューションデータを引き続き収集します。
オプトアウトが有効化されている場合、AppsFlyer IDがハッシュ化されます。
シナリオ
インストール時にオプトアウト
いつ :最初の起動時(例: 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 V6.4 以降):
- 1つまたは複数のメディアソース(または全てのメディアソース)がイベントを受信しないようにする:SDK メソッド
setSharingFilterForPartners
を使用してください。
- 1つまたは複数のメディアソース(または全てのメディアソース)がイベントを受信しないようにする:SDK メソッド
- サーバー間(S2S)API:
- S2S の sharing_filter パラメータを送信します。
AppsFlyerに送信されるデータ:データはAppsFlyerに送信され保存されますが、AppsFlyerの連携パートナーに共有されることはありません。
例
アプリID com.to.california は、カリフォルニアのテーマパーク向けの旅行アプリです。CCPAに準拠するために、 カリフォルニア州の居住者がオプトアウトリクエストを送信した場合、アプリはユーザーイベントデータをサードパーティと共有しないようにAppsFlyerに通知します。
セッションのオプトアウト
いつ:
状況:すべてのアプリのセッションに、セッション中にイベントとデータの計測を行うことに対するユーザーの同意を必要とします。
方法:セッションのオプトアウト シナリオの場合、最初のSDK呼び出しは、ユーザーがデバイスからデータを送信することに同意または拒否した後に行われます。
- ユーザーがデータ送信に同意した場合、
start
メソッドを呼び出します。 - ユーザーがデータ送信を拒否した場合、
start
は呼び出さないでください。
AppsFlyerに送信されたデータは、各セッションのオプトアウトステータスによって、次のように異なります。
- オプトアウトセッション :データは送信されません。
- オプトインセッション :すべてのセッションデータが送信されます。注:ユーザーが最初にオプトインしたときに計測データが送信されます。
例
com.adultsplayは、18歳以上の大人向けのカジュアルゲームアプリです。ユーザーは会員登録する必要はありませんが、アプリ起動のたびに年齢を確認する必要があります。ユーザーが18歳以上であることをユーザーが確認したセッションでは、完全なゲーム体験が計測されます。それ以外の場合、計測は実行されません。
開発者は、is_tracking と呼ばれるフラグを追加しました。これは、18歳以上を確認するセッションでのみ true になります。このフラグが true の場合、start
メソッドが呼び出されます。そうでない場合、start
は呼び出されません。
1回限りのオプトアウト
いつ :いつでも(GDPR)
状況:アプリ所有者は、計測データとインストール後のデータを収集します。ユーザーは、たとえば、GDP要求 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 IDとIPアドレスはハッシュ化されます。次の図は、匿名化およびハッシュされたデータの例を示しています。
例
com.munisticアプリのアプリ所有者は、すべてのユーザーが平等に生まれていると信じており、すべてのインストール後のアクションをオーガニックのみとして表示することを好みます。
初回起動時に、ディベロッパーは requestListener と一緒に start
を呼び出します。正常に完了すると、コールバック関数から anonymizeUser(true)
を呼び出します。
リターゲティングキャンペーンのオプトアウト
オプトアウトしたユーザーをリターゲティングキャンペーンから除外することを検討しています。これらのユーザーは、オプトアウトしたためにリターゲティングされることに不満を抱く可能性があります。
アクティブユーザーを対象とするリターゲティングキャンペーンを手動で実行する場合は、オプトアウトしたユーザーをメディアソースリストに送信されるリストから削除してください。
または、 AppsFlyerのAudiences機能を使用している場合、オーディエンスリストを作成してメディアソースに送信するために、オプトアウトされたユーザーはメディアソースに送信されるリストから除外されます。
stop
APIとディープリンク
stop
APIを使用すると、アプリに埋め込まれたAppsFlyer SDKによるすべての外部通信が停止します。
したがって、stop
を呼び出した後、短縮リンクはAppsFlyer SDKによってデコードされなくなります。つまり、短縮リンクは onAppOpenAttribution へを呼び出さず、ディープリンクが正しく実行されません。
オプトアウトしたユーザーの割合が比較的高いアプリで、ユーザー向けのリターゲティングキャンペーンを計画している場合は、ロングリンクを使用し、ショートリンクの使用は避けてください。
SDK機能の再起動
オプトアウトしたユーザーがオプトインに同意した場合、start
メソッドを呼び出してSDKを再起動し、アトリビューションデータの計測を開始してください。
StrictモードSDK(iOSのみ)
ディベロッパーは、コード内のAdSupportフレームワークとIDFA収集を参照せずに、アプリを提出したい場合があります。そのような場合は、StrictモードSDKをご利用ください。