概要:モバイルアプリまたはCTVアプリ開発者と協力して、 AppsFlyerのSDKを Android または iOS アプリに実装およびインストールしてください。基本的な連携タスクが完了すれば、インストールとアプリ内イベントの計測の準備が整います。
アプリへのDevキーの実装
AppsFlyerではDevキーを使用してアカウントを一意に識別します。 Devキーは、SDKがアカウントに属するデータを安全に送受信するために必須です。開発者はSDKをインストールして連携し、Devキーを埋め込む必要があります。
Devキーの取得
開発者がSDKをインストールして連携する前に、Devキーを取得する必要があります。
- 設定 > アプリ設定 > Devキー管理を選択します。
-
Devキーをコピーし、モバイル開発者に送ります。
開発者へのDevキーの提供
Devキー、アプリID、AppsFlyer API v2トークンを、以下の手順とともにモバイル開発者に提供します。
- SDK連携ウィザードを使用して、SDKのインストールと連携を自動化します。
- インストールし、SDKを連携します。
SDKの起動場所
AppsFlyer SDKの連携を計画する際は、アプリの起動フローのどこでSDKを初期化して起動するかを最初に決める必要があります。
基本的には、アプリの起動後できるだけ早くSDKによるデータ送信を開始します。これにより、SDKがインストールイベントと、そのセッション中に発生するすべてのアプリ内イベントを確実に取得できます。
ただし、GDPRやCCPAなどのプライバシー保護規制に準拠するため、ユーザーが情報の共有に同意するまでAppsFlyerへのデータ送信を遅らせる必要がある場合があります。
Androidネイティブ
AndroidネイティブでのSDK起動
SDKを起動するクラスの選択
ApplicationクラスとActivityクラスのどちらで起動するかを選択します。
- グローバルApplicationクラスでSDKを起動する:通常、グローバルApplicationクラス/サブクラスでSDKを初期化することを推奨します。ApplicationクラスはアプリのUIが表示される前に読み込まれ、初期化されるためです。これにより、ディープリンクを含むあらゆるシナリオでSDKを起動できます。
- ActivityクラスでSDKを起動する(遅延起動):ユーザーがデータ共有にオプトインできるようにします。 ActivityクラスでUIを表示する必要があるためです。
Android開発者向け手順
- 以下について、開発者に決定内容を伝えてください。
- ApplicationとActivityのどちらか?
- どのオプトイン/オプトアウトのシナリオを使用するか?
- 開発者に次の参照リンクを送信してください。
iOSネイティブ
iOSネイティブでのSDK起動
iOSでのSDK起動の遅延
startを遅延するかどうかを検討することが重要です。
waitForATTUserAuthorizationメソッドがあり、AppsFlyerサーバーへのデータ送信前にSDKがユーザーの同意を待機する時間を設定できます。
App Tracking Transparency(ATT)サポートの設定のセクションをご覧ください。
iOS開発者向け手順
開発者に以下の情報を共有してください。
- AppsFlyerへのデータ送信を開始するまでのタイムアウトを何秒にするか?
- 開発者向けリンク:
- iOS SDKの起動に関する開発者ガイドおよびリファレンスです。
-
App Tracking Transparency(ATT)サポートの設定(
waitForATTUserAuthorizationメソッドのデータフローとiOS ATTフレームワークとの連携について) - ATTサポートを有効にする(開発者向けガイドおよび実装方法)。
Unity
UnityでのSDK起動
こちらのDev Hub記事を共有してください。
アトリビューション計測について
React NativeでのSDK起動
こちらのDev Hub記事を共有してください。
プライバシー保護の方針
ユーザーのプライバシーをどのように保護するかを選択します。例えば、インストール時にSDKを停止する、第三者とのデータ共有を防止する、ユーザーデータを匿名化する、特定の識別子を無効にする、といった方法を選択できます。
利用可能なさまざまなプライバシー保護方法の詳細については、 SDKのプライバシー保護方法をご覧ください。
アトリビューション
識別子を収集します。 インストールが正しく記録され、アトリビューションされるよう、以下のガイドラインを確認して従ってください。
すべてのプラットフォーム向け:
インストールを識別する一意の識別子
新しいアプリのインストールごとにAppsFlyer IDが自動的に作成されます。マーケティング担当者による操作は必要ありません。
この識別子を使用して、以下の操作を行えます。
- Server-to-Serverでのアプリ内イベントの送信
- AppsFlyer IDとバックエンドシステムのユーザーレコードを照合する。
- ローデータのアプリ内イベントレポートをダウンロードし、appsflyer_idを使ってユーザーの行動やジャーニーを分析します。
BIシステムの一意の識別子とAppsFlyerの連携
AppsFlyer SDKで独自のCustomer User ID(CUID)を設定し、BIシステムの一意のIDをAppsFlyer IDやその他の識別子と相互参照します。ローデータレポートで利用できます。ポストバックAPIでも使用して、社内IDと相互参照できます。
こちらの記事をご覧ください。
Androidのみ
以下のセクションでは、Google Playストアまたはサードパーティアプリストアにおけるアトリビューションの考慮事項を説明します。
Google Playで公開したアプリのアトリビューション
GOOGLE PLAY INSTALL REFERRER
Google Play Install Referrer APIにより、アトリビューションの精度が向上し、インストール詐欺から保護されるほか、Google Playからリファラデータ(初回インストール時のアプリバージョンなど)を安全に取得できます。
Google Play Install Referrer APIを追加する手順を開発者に提供することを推奨します。
GAID
SDK V4.8.0以降であれば、AppsFlyerはこの識別子を自動的に収集します。
サードパーティアプリストアのアプリのアトリビューション
サードパーティアプリストアからのインストールをアトリビューションできます。 これにより、Google Playストアを利用できない市場でもアプリをプロモーションし、より多くのユーザーにリーチできます。
AppsFlyerでは、サードパーティアプリストアにおけるアトリビューションを以下のようにサポートしています。
-
IMEIまたはAndroid ID:SDKはIMEIまたはAndroid IDを自動的には収集しません。中国国内市場向けアプリなど)は、開発者が以下のいずれかの方法で収集できます。
-
setImeiDataまたはsetAndroidIdData APIを使用してIMEIまたはAndroid IDをSDKに渡します(以下のタブにある関数リファレンスを参照)。 SDKがデータをAppsFlyerサーバーに送信します。
Androidネイティブ
Android SDKリファレンスをご覧ください:
setImeiData- setAndroidIdData
Unity
Unity SDKリファレンスをご覧ください:
-
setCollectIMEIとsetCollectAndroidIDを使用して、SDKにIMEIまたはAndroid IDを収集させます(以下のタブにある関数リファレンスを参照)。
Androidネイティブ
Android SDK リファレンスをご覧ください。
Unity
Unity SDK リファレンスをご覧ください。
React Native
React Native リファレンスをご覧ください。
-
- OAID:サードパーティAndroidアプリストアからのインストールをアトリビューションします。詳細は OAID の実装ガイドを参照してください。
- インストールリファラ:SDKはSamsung GalleryおよびHuawei AppGalleryからリファラデータを取得できます。
iOSのみ
以下のセクションでは、iOS 14以降のデバイスのサポートに関する重要な情報を説明します。
App Tracking Transparency(ATT)サポートの設定
背景
iOS 14.5以降では、IDFAの収集にユーザーの同意が必要です。 App Tracking Transparency(ATT)フレームワークによって管理されます。 iOS 14以降のデバイスでは、SDKがATTフレームワークを使用してデバイスのIDFAへのアクセスを取得します。 ATTの基本原則をご覧ください。
iOSネイティブ
ATT実装に関する開発者向け手順をご覧ください。
Unity
ATT実装に関する開発者向け手順をご覧ください。
初回起動時に送信されることが重要です。 waitForATTUserAuthorizationメソッドが用意されています。
waitForATTUserAuthorizationの概要
waitForATTUserAuthorizationを呼び出さないでください。
waitForATTUserAuthorizationを使用すると、AppsFlyerサーバーへのデータ送信前に、SDKがATTのステータスを待機する時間を設定できます。
notDeterminedです。 waitForATTUserAuthorizationのタイムアウト中、SDKは起動イベントと、その後に発生するアプリ内イベントをメモリ上にキューします。これはオフラインイベントが記録される仕組みと同様です。
- 同意した場合(IDFAの収集):
- SDKはキャッシュされたイベントにIDFAを追加します。
- SDKが起動し、タイムアウトの終了を待たずに、IDFAを含むキャッシュ済みイベントを送信します。
- 拒否した場合:SDKが起動し、タイムアウトの終了を待たずに、IDFAを含まないキャッシュ済みイベントを送信します。
- notDeterminedの場合:SDKが起動し、IDFAを含まないキャッシュ済みイベントを送信します。
考慮事項
- requestTrackingAuthorizationをwaitForATTUserAuthorizationを設定せずに呼び出すと、iOS 14以降のデバイスでは、IDFAを含めずに起動イベントとイベントが送信されます。
- タイムアウト中にユーザーがアプリをバックグラウンドに移動した場合:
- アプリがフォアグラウンドに戻るまでタイマーが一時停止します。
- イベントはメモリ上にキャッシュされます。
- タイムアウト中にユーザーがアプリを終了し、アプリが停止した場合:
- 次回のアプリ起動時にタイマーが再開されます。
- キャッシュされたイベントは失われます。
ATT同意ダイアログのカスタマイズ
ATTプロンプトはカスタマイズできます。リクエストの目的を明確に説明するメッセージを表示することで、ユーザーのオプトイン率の向上につながる可能性があります。
メッセージを作成する際は、以下を考慮してください。
- アプリがユーザーの同意を求める理由を最も分かりやすく説明する表現を使用します。
- データがどのように使用されるかをユーザーに説明します。 ユーザーのプライバシーとデータ使用についての詳細はこちら。
メッセージが完成したら、その文面と実装手順を開発者に提供してください。
iOSネイティブ
Dev HubでATT同意ダイアログをカスタマイズするための開発者向け手順を参照してください。
Unity
Dev HubでATT同意ダイアログをカスタマイズするための開発者向け手順を参照してください。
SKANアトリビューションのサポート
SKANアトリビューションを完全にサポートするには、iOS SDK V6.2.3以降にアップグレードしてください。
SKANは、広告主が行ったアプリインストールを検証するためにiOSで使用されるクラスです。アプリインストールの検証プロセスには、ソースアプリと広告対象アプリが関与します。
ソースアプリとは、広告ネットワークの広告を表示することで広告キャンペーンに参加するアプリです。広告を表示するようにアプリを設定することは、AppsFlyer SDKの対象範囲ではありません。設定するには、Appleの指示に従ってください。
SKANソリューションがSKANを使用してアトリビューションポストバックを提供します。AppsFlyerはユーザーのプライバシーを維持しながら、データを収集、変換、集計します。アプリが初めて起動されると、AppsFlyerプラットフォームはマーケティング担当者が設定した内容に基づき、SKANのコンバージョン値をどのように設定するかをSDKに指示します。
SKANソリューションを使用するには:
- マーケティング担当者がAppsFlyerでSKAN計測を設定する必要があります。 開発者が行う作業はありません。
- AppsFlyer SDKが必要なSKAN APIを自動的に呼び出します。
- AppsFlyerでSKANアトリビューションを行う場合は、他のSDKでのSKAN呼び出しを無効にしてください。
- 開発者もマーケティング担当者も、App Storeで追加の操作や登録手続きを行う必要はありません。
SKANアトリビューションを無効にするには、開発者にSDKで無効化してもらいます。
iOSネイティブ
SKANアトリビューションを無効にするにはdisableSKAdNetworkを利用します
Unity
SKANアトリビューションを無効にするにはdisableSKAdNetworkを利用します
React Native
SKANアトリビューションを無効にするにはdisableSKAdを利用します
アプリ内イベントの記録
アプリ内イベント(IAE)は、アプリ内で何が起きているかを把握するための情報を提供します。アプリ内イベントを記録することで、投資利益率(ROI)や顧客生涯価値(LTV)などのKPIを計測できます。記録するイベントをあらかじめ定義しておくことを推奨します。
計測するアプリ内イベントを決めたら、イベント名とパラメータを開発者に送り、以下へのリンクを共有してください。
- SDKのインストールウィザードには、アプリ内イベント専用のプロセスがあります。
- SDKでアプリ内イベントを実装するための手順。
リッチアプリ内イベントガイドをご覧ください。
すべてのプラットフォーム
収益の記録
任意のアプリ内イベントで収益を送信できます。 af_revenueパラメータを使用してください。 AppsFlyerが管理画面とローデータレポートで実際の収益としてカウントするイベントパラメータはこれだけです。 詳細はこちら。
アプリ内購入の検証
AppsFlyer SDKは、アプリ内購入のサーバー検証を提供します。アプリ内購入を検証すると、AppsFlyerにアプリ内購入イベントが自動的に送信されます。このイベントを自分で送信すると、イベントが重複して記録されます。
業種別のイベント
旅行、ゲーム、Eコマースなどの業界別推奨アプリ内イベントのリストをご覧ください。
OneLinkを使用したディープリンク
リダイレクトとディープリンクのためのAppsFlyerソリューションです。
すべてのプラットフォーム
デバイス検出とリダイレクト
アプリをインストールしていないユーザーの場合、OneLinkはデバイスの種類を検出し、適切な宛先(Google Play、Apple App Store、サードパーティアプリストア、Webページなど)にリダイレクトします。これはOneLinkテンプレートの設定に基づいて行われます。 詳細はこちら
ディープリンク
アプリをインストール済みのユーザーの場合、OneLinkがアプリを開きます。アプリを開くだけでなく、アプリ内の特定のアクティビティやページにユーザーをディープリンクすることもできます。これには、開発者が以下を使用してUnified Deep Linking(UDL)を実装する必要があります。
- SDKのインストールウィザードには、ディープリンク実装のための専用のプロセスがあります。
- Unified Deep LinkingのSDK実装手順。
注意:
- UDLにはSDK V6.1以降が必要です。
- ディープリンクですでにOneLinkを使用しているカスタマーは、UDLではなく従来の方法を使用している可能性があります。
ディープリンクとディファードディープリンクの設定に関するガイドをご覧ください。
ディファードディープリンク
アプリをインストールしていないユーザーの場合、OneLinkはデバイスの種類を検出し、適切な宛先にリダイレクトします:Google Play、Appleアプリストア、サードパーティのアプリストア、またはウェブページ。ユーザーがアプリを起動すると、ディファードディープリンクを利用して、特定のアクティビティまたはページにリダイレクトできます。
これには、開発者が以下を使用してディファードディープリンクを実装する必要があります。
- SDKのインストールウィザードには、ディープリンク実装のための専用のプロセスがあります。
- ディファードディープリンクのSDK実装手順。
注意:
- UDLにはSDK V6.1以降が必要です。
- ディファードディープリンクにすでにOneLinkを使用しているカスタマーは、UDLではなく従来の方法を使用している可能性があります。
ディープリンクとディファードディープリンクの設定に関するガイドをご覧ください。
アトリビューションデータとディープリンクデータへのアクセス
以下の表では、アトリビューションデータとディープリンクデータを取得するために利用できる方法を説明します。
| 方法 | 関係者 | 取得結果 | 取得方法 | アトリビューションデータ | ディープリンクデータ | 利用可能性 |
| Push API | • マーケター • バックエンド開発者 | 通常数分以内で取得可能 | バックエンド | Y | N | プレミアム |
| Pull API | • マーケター • バックエンド開発者 | • 定期的(リアルタイムではありません)。 • ローデータレポートのダウンロードをスケジュールできます。 | バックエンド | Y | Y | ローデータレポートではプレミアム |
| Data Locker | • マーケター • バックエンド開発者 | 時間ごとのレポートは1~3時間以内に利用可能 | 次のいずれかのオプションによるクラウドストレージ: • AWS上のAppsFlyer所有のバケット • お客様所有のストレージ(AWSまたはGCS) | Y | Y | プレミアム |
| コンバージョンデータ(GCD)の取得 | • マーケティング担当者 • モバイル開発者 開発者向けドキュメントを参照 | 最大5秒 | SDK | Y | Y | すべてのアカウント |
| Unified Deep Linking(UDL) | • マーケティング担当者 • モバイル開発者 開発者向けドキュメントを参照 | 最大1秒 | SDK | N | Y | すべてのアカウント |
iOS 14.5以降で同意していないユーザーについては、以下に注意してください。
- 有料メディアとオウンドメディアでUDLを使用する場合、ディープリンクデータを利用できます。
- 有料メディアでGCDを使用する場合、データは限定され、アトリビューションとディープリンクの詳細は含まれません。
以下を推奨します。
- Push APIを使用してアトリビューションデータを取得し、追加処理のためにサーバーへ送信します。この方法ではデータが利用可能になるまで待機するため、精度が高く、ほぼリアルタイムで取得できます。 GCDはリアルタイムでデータを返しますが、最終的なアトリビューションの判定が5秒を超えてから行われる場合、正確でない可能性があります。
- Pull APIを使用して、定期的(例えば毎日)にリアルタイムのアトリビューションデータを補完し、発生する可能性のある通信エラーを補います。
SDK連携のテスト
SDKの連携が完了したら、AppsFlyer管理画面のSDK連携テストページから、オーガニック/非オーガニックインストール、アプリ内イベント、ディープリンク(リターゲティング)をテストできます。 これにより、インストールとアプリ内イベントが正しく記録され、アトリビューションされることを確認できます。
テストのシナリオと手順については、SDK連携テストを参照してください。
注意: アトリビューションテストを行う際は、テストデバイスを登録(AndroidまたはiOS)し、各インストールが新しいインストールとして記録されることを確認します。登録済みのテストデバイスでは、インストールが再インストールとして記録されることはありません。
こちらも参照
- CTV、PC、コンソールプラットフォームの概要