概要: クライアント(アプリ所有者)の皆さまは、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: startTracking
- iOS SDK: trackAppLaunch()
- トラッキング停止メソッドの名前:
- Android SDK: stopTracking
- iOS SDK: AppsFlyerTracker.shared().isStopTracking = true
-
トラッキング開始メソッドの名前:
シナリオ
インストール時にオプトアウト
いつ :最初の起動時(例: COPPAコンプライアンス )
状況:すべてのセッションにおいてイベントの記録を実行するには、ユーザーの同意を必要とする。
ユーザーが計測に同意した場合(例:特定の年齢を超えたユーザー)、アプリはSDK startTrackingメソッドを呼び出します。それ以外の場合は、startTracking メソッドを呼び出さないでください。
注意
startTracking が呼び出されなかった場合は、stopTracking を使用しないでください。
方法:startTracking メソッドは、オプトインされたユーザーのセッション開始時に常に呼び出される必要がありますが、オプトアウトされたユーザーに対しては呼び出されるべきではありません。また、オプトインしたことのないユーザーのアプリ内イベントは送信できません。これは不明なユーザー経由のオーガニックイベントと見なされるためです。
従って、アプリの場合、startTrackingが事前に呼び出されたかどうかを示す永続的なフラグパラメーターを含むインストールオプトアウトを実装することを推奨します。このフラグは、startTrackingまたはsendEvent メソッドが呼び出される前に、必ずチェックされる必要があります。
AppsFlyerに送信されるデータ:データは送信されません。
ユーザーが続いてオプトインした場合、startTracking が呼び出され、アトリビューションとセッションデータが送信されます。
例
com.carefulapp では、インストール時にユーザーが会員登録する必要があります。フォームには「私は13歳以上です」というチェックボックスが含まれています。開発者は、is_tracking というフラグを追加し、このボックスがオンになっている登録に対してのみ、これを true とし、startTracking をアクティブにします。
コード例はこちらをご参照ください。
サードパーティとのデータ共有を防止
いつ:SDKが初期化されるたびに。
何を:ユーザーは、第三者とのデータ共有をオプトアウトするよう要求します。最初の startTracking 呼び出しの前に、このオプションを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呼び出しは、ユーザーがデバイスからデータを送信することに同意または拒否した後に行われます。
ユーザーがデータの送信に同意した場合は、 startTracking メソッドを呼び出す必要があります。
ユーザーがデータの送信を拒否した場合は、 stopTracking メソッドを呼び出す必要があります。
AppsFlyerへ送信されるデータは、各セッションのオプトアウトステータスによって次のように異なります。
- オプトアウトセッション :データは送信されません。
-
オプトインセッション :すべてのセッションデータが送信されます。
注意:ユーザーが初めてオプトインした場合、インストールアトリビューションデータが送信されます。
例
com.adultsplayは、18歳以上の大人向けのカジュアルゲームアプリです。ユーザーは会員登録する必要はありませんが、アプリ起動のたびに年齢を確認する必要があります。ユーザーが18歳以上であることをユーザーが確認したセッションでは、完全なゲーム体験が計測されます。それ以外の場合、計測は実行されません。
開発者は、is_tracking と呼ばれるフラグを追加しました。これは、18歳以上を確認するセッションでのみ true になります。このフラグが true の場合、 startTracking メソッドが呼び出されます。それ以外の場合は、 stopTracking メソッドが呼び出されます。
1回限りのオプトアウト
いつ :いつでも(GDPR)
状況:アプリの所有者は、アトリビューションとインストール後のデータを収集します。ユーザーは、データの収集を停止するように要求します。 例:GDPR リクエストに準拠
方法 : startTracking を呼び出さずに、直接 stopTracking 呼び出します。
代わりに、最初の起動時に requestListener とともに startTracking メソッドを使用します。正常に完了すると、コールバック機能で stopTracking を呼び出します。
これ以降のすべてのセッションでは、 startTracking 呼び出さないでください。
AppsFlyerに送信されるデータ: インストールおよびセッションデータがAppsFlyerに送信されます。 stopTracking メソッドが呼び出された後は、AppsFlyerにデータは送信されません。
例
com.watchmegrowは、植物を育てて見たりする植物成長アプリです。アプリの所有者は、すべてのアプリ内アクティビティデータを秘密にしたいと考えています。
初回起動時に、開発者は requestListener を使用して、startTracking メソッドを呼び出します。正常に終了したことを受け取ると、コールバック機能からstopTrackingを呼び出し、永続パラメーター is_first_launch を false に設定します。次の起動時に、 is_first_launch が false かどうかをチェックし、 startTracking をスキップします。
コード例はこちらからご確認ください。
インストールの計測と匿名化
いつ :最初の起動時
状況 :アプリの所有者はすべてのアトリビューションデータを収集しますが、アプリ内イベントやセッションデータなどのすべての詳細情報をアトリビューションのないオーガニックデータとして収集します。インストール後、すべてのデバイスIDは、SDKからAppsFlyerに送信されるときに匿名化されます。
方法 : startTracking を呼び出さずに、直接 stopTracking 呼び出します。
代わりに、最初の起動時に requestListenerを使用して startTracking メソッドを使います。正常に完了すると、コールバック機能で setDeviceTrackingDisabled(true)
を呼び出します。
AppsFlyerに送信されるデータ:
- インストール時: 完全なアトリビューションデータがAppsFlyerに送信されます
- インストール後 :アプリ内イベントを含むセッションデータがAppsFlyerに送信されますユーザー識別情報は、AppsFlyerが受信すると匿名化またはハッシュ化されます。
例
com.munisticアプリのアプリ所有者は、すべてのユーザーが平等に生まれていると信じており、すべてのインストール後のアクションをオーガニックのみとして表示することを好みます。
最初の起動時に、開発者は requestListener を使用して startTracking メソッドを呼び出します。正常に終了したことを受け取ると、コールバック機能から setDeviceTrackingDisabled(true)
を呼び出します。
コード例はこちらをご参照ください。
リターゲティングキャンペーンのオプトアウト
オプトアウトしたユーザーをリターゲティングキャンペーンから除外することを検討しています。これらのユーザーは、オプトアウトしたためにリターゲティングされることに不満を抱く可能性があります。
アクティブユーザーを対象とするリターゲティングキャンペーンを手動で実行する場合は、オプトアウトしたユーザーをメディアソースリストに送信されるリストから削除してください。
または、 AppsFlyerオーディエンスを使用している場合(オーディエンスリストを自動的に作成して、選択したメディアソースに送信するため)、オプトアウトしたユーザーは、AppsFlyerによってメディアソースに送信されるメディアデバイスリストから除外されます。
stopTracking APIとディープリンク
stopTracking APIを使用すると、アプリに埋め込まれたAppsFlyer SDKによるすべての外部通信が停止します。
したがって、stopTrackingを呼び出した後、短縮リンクはAppsFlyer SDKによってデコードされなくなります。つまり、短縮リンクは onAppOpenAttribution への呼び出しを生成せず、ディープリンクが正しく実行されません。
オプトアウトしたユーザーの割合が比較的高いアプリで、ユーザー向けのリターゲティングキャンペーンを計画している場合は、ロングリンクを使用し、ショートリンクの使用は避けてください。
SDK機能の再起動
オプトアウトしたユーザーがオプトインすることに同意すると、 startTracking メソッドを呼び出してSDKを再起動し、アトリビューションデータの計測を開始します。
StrictモードSDK
ディベロッパーは、コード内のAdSupportフレームワークとIDFA収集を参照せずに、アプリを提出したい場合があります。そのような場合は、StrictモードSDKをご利用ください。