基本的なSDK連携ガイド

概要:モバイルアプリまたはCTVアプリ開発者と協力して、 AppsFlyerのSDKを Android または iOS アプリに実装およびインストールしてください。基本的な連携タスクが完了すれば、インストールとアプリ内イベントの計測の準備が整います。

アプリにDevキーを実装する

AppsFlyerではDevキーを使用してアカウントを一意に識別します。Devキーは、SDKがアカウントに属するデータを安全に送受信するために必須です。開発者はSDKをインストールして連携し、Devキーを埋め込む必要があります。 

Devキーを取得する

開発者がSDKをインストールして連携する前に、Devキーを取得する必要があります。

  1. AppsFlyerのサイドメニューから、設定 > アプリ設定を選択してください。
  2. Devキーをコピーして、アプリ開発担当に渡してください。

開発担当者にDevキーを提供する

Devキー、App ID、AppsFlyer API v2 トークンをモバイル開発者に提供し、以下の対応を依頼してください:

SDK実装を進めるにあたって

AppsFlyer SDKの実装を計画する際には、まずアプリの起動フローにおいてどこでSDKを初期化し、起動するかを決定する必要があります。

基本的な指針としては、アプリ起動後にできるだけ早くSDKにデータを送信させることです。これにより、SDKはインストールやセッション内で発生したすべてのアプリ内イベントを正確に把握することができます。

ただし、GDPRやCCPAなどのプライバシー保護規制に準拠するにあたって、ユーザーの情報共有の同意を得るまで、AppsFlyerへのデータ送信を遅らせる必要があることも多いのでご注意ください。

Androidネイティブ iOSネイティブ Unity React Native

AndroidネイティブでのSDK起動

SDKを起動するクラスの選択

SDKをグローバルApplicationクラスで起動するか、Activityクラスで起動するかを選択してください。

  • グローバル Application クラスでのSDK起動: 一般的に、グローバル Application クラス/サブクラスでSDKを初期化することは良い方法です。これは、Application クラスがアプリのUIが表示される前に読み込まれて初期化されるためです。これにより、ディープリンクを含むあらゆるシナリオでSDKを開始することが保証されます。
  • ActivityクラスでのSDK起動(遅延起動):ユーザーがデータ共有についてオプトインを選択できるようにする際には、こちらの選択肢になります。これは、ユーザーの同意を得るためには、ActivityクラスでUIを表示する必要があるためです。

Android開発者向けの実装手順

 

  • 以下の決定について開発者に知らせてください。
    • SDKを起動するクラスはApplicationActivity
    • どのオプトイン / オプトアウトシナリオを利用するか
  • 開発者に次の参照リンクを送信してください。

UnityでのSDK起動

SDKの起動方法については、こちらのDev Hubの記事を開発者に共有してください。

React NativeでのSDK起動

SDKの起動方法については、こちらのDev Hubの記事を開発者に共有してください。

プライバシー保護戦略の選択について

ユーザーのプライバシーを保護する方法を選択してください。例えば、SDKをインストール時に停止するか、第三者とのデータ共有を防止するか、ユーザーデータを匿名化するか、または特定の識別子を無効にするかなどを検討・選択する必要があります。

利用可能なさまざまなプライバシー保護方法の詳細については、 SDKのプライバシー保護方法をご覧ください。

アトリビューション計測について

SDKは、アトリビューション目的で識別子を収集します。 インストールが正しく記録され、アトリビューションされるようにするため、これらのガイドラインを確認して従ってください。

すべてのプラットフォーム向け:

インストールのための一意の識別子

新しいアプリインストールごとに、AppsFlyer IDが自動的に作成されます。マーケティング担当者による追加の作業などは必要ありません。

このAppsFlyer IDを利用することで、以下のようなことが実現可能です:

自社BIシステム側のユーザーIDのAppsFlyerとの連携

AppsFlyer SDKで顧客ユーザーID(CUID)を設定し、自社BIシステム側で発行しているユーザーIDをAppsFlyer IDやその他の広告IDなどと紐づけて計測することが可能です。CUIDはAppsFlyerのローデータレポート上で確認が可能になります。ポストバックAPIで内部IDと相互参照するために利用することもできます。

CUIDの詳細については、こちらの記事をご覧ください。

Android向け:

以下のセクションでは、Google Playストアまたはサードパーティのアプリストアの計測における考慮事項について説明しています。

Google Playで公開されているアプリの計測について

[重要]Google Playインストールリファラー

Google Play Install Referrer APIは、アトリビューションの精度を向上させ、不正インストールを防ぎ、Google Playからのリファラデータ(アプリが最初にインストールされた時点のバージョン情報など)を安全に取得できるようになります。

開発者にGoogle Play Install Referrer APIを追加するための手順を共有し、実装することをお勧めします。

GAID

SDK V4.8.0以降であれば、AppsFlyerはこの識別子を自動的に収集します。

サードパーティストアのアプリ計測について

AppsFlyerを使用することで、Amazon、Opera、GetJar、Baidu、Huaweiなどのサードパーティアプリストアからのインストールを計測できるようになります。 これにより、Google Playストアが利用できないマーケットでも、アプリ広告を配信し、より多くのオーディエンスにリーチできるようになります。

AppsFlyerでは、サードパーティアプリストアでの計測について。以下のようにサポートしています:

  • IMEI、またはAndroid ID: AppsFlyer SDK では IMEI または Android ID を自動的には収集しません。ただし、これらの識別子が必要な場合には(例:中国国内市場のアプリなど)、開発者は以下の収集方法を実装できます。
    • 手動での収集: アプリは、IMEI または Android ID を setImeiData または setAndroidIdData API を使用してSDKに渡します(詳細は下のタブの関数リファレンスを参照)。その後、SDK はデータを AppsFlyer サーバーに送信します。
      Android ネイティブUnity

      Android SDK リファレンスをご覧ください。

      •  
      •   
    • デバイスID収集のオプトイン:setCollectIMEI と setCollectAndroidID を使用して、SDK が IMEI または Android ID を収集するよう強制します(詳細は下のタブの関数リファレンスを参照)。
      Android ネイティブUnityReact Native

      Android SDKリファレンスをご覧ください:

      •  
      •  
  • OAI: サードパーティ Android アプリストアからのインストールをアトリビューションします。詳細は OAID の実装ガイドを参照してください。
  • インストールリファラー: SDKはSamsung GalleryとHuawei AppGalleryからのリファラーデータの取得をサポートしています。

iOS向け:

以下のセクションでは、iOS 14 以降の計測における重要なポイントについて記載しています。

[重要]App Tracking Transparency (ATT) のサポート設定

背景

iOS 14.5 以降では、IDFA の収集にはユーザーの同意が必要です。具体的には、IDFA のアクセスは App Tracking Transparency (ATT)のフレームワークによって管理されます。iOS 14以降の端末では、AppsFlyer SDKはATTフレームワークを使用してIDFAにアクセスします。ATT の概要は、ATT の原則を参照してください。

iOS ネイティブUnity

ATT を実装する開発者向けガイドラインはDev Hubを参照してください。

SRN媒体をはじめ、IDFA を用いて計測を行うには、初回起動時に IDFA を送信することが非常に重要です。 それを実現するために、AppsFlyerでは waitForATTUserAuthorization というメソッドを提供しています。

[重要]waitForATTUserAuthorization について

 注意:

アプリ内でATTプロンプトを表示しない場合には、waitForATTUserAuthorization を呼び出さないでください。

waitForATTUserAuthorization を利用することで、AppsFlyerサーバーにデータを送信する前に、SDKがATTへの回答ステータスをどれくらいの時間待機して、計測を保留するかを設定できます。初回起動時にIDFAを正確に取得する上で、非常に重要な設定になるので必ず詳細を確認の上、実装してください

ユーザーがアプリを初回起動したタイミングでは、ATTステータスは未決定となります。 そして、waitForATTUserAuthorization で設定した待機時間の間、SDKはオフラインイベントが記録される方法と同じ様に、起動イベントとその後のアプリ内イベントをメモリ内のキューに入れて待機させます:

  • 設定した待機時間内に、ユーザーがATTプロンプト(IDFA取得)に同意した場合:
    • SDK側でそれまでキャッシュされていたイベントにもIDFAを追加します。
    • SDKが起動し、IDFAを付与した状態でキャッシュされたイベントを送信します。
  • 設定した待機時間内に、ユーザーがATTプロンプト(IDFA取得)を拒否した場合:SDKが起動し、IDFAなしの状態でキャッシュされたイベントを送信します。
  • 設定した待機時間が終了し、ATTステータスが 未決定 のままである場合: SDKがIDFAなしの状態でキャッシュされたイベントを送信します。

考慮事項

  • requestTrackingAuthorizationを設定せずに waitForATTUserAuthorization を呼び出してしまうと、iOS 14以降の端末では起動とアプリ内イベントがIDFAが欠損した状態で送信されてしまうのでご注意ください。
  • 設定した待機時間中に、ユーザーがアプリをバックグラウンドに移動させた場合:
    • アプリがフォアグラウンドに戻るまでタイマーは一時停止します。
    • イベントはメモリ内にキャッシュされます。
  • 設定した待機時間中に、ユーザーがアプリをシャットダウンすると強制終了されます。
    • 次回のアプリ起動時に、タイマーが再開されます。
    • キャッシュされたイベントは失われます。

ATT同意ダイアログのカスタマイズ

ATTの同意プロンプトは一部カスタマイズが可能です。同意取得の目的を的確に表現したメッセージは、ユーザーのオプトイン率を向上させるのに役立ちます。

メッセージを作成する際には、次の点を考慮してください。

メッセージが完成したら、開発者にテキストと実装手順を提供してください。

iOS ネイティブUnity

SKAN計測のサポートについて

 

注意

SKAN計測を完全にサポートするために、iOS SDKはV6.2.3以上にアップグレードしてください。

SKANは、iOSで広告主主導のアプリインストールを検証するために利用されるクラスです。アプリインストール検証プロセスには、ソースアプリと広告されるアプリが関与します。

ソースアプリとは、アドネットワークの広告を表示することで広告キャンペーンに参加するアプリのことです。広告を表示するようにアプリを設定することは、AppsFlyer SDKの範囲外です。設定するには、Appleの指示に従ってください。

広告されるアプリ(AppsFlyer SDKを搭載したアプリ)については、AppsFlyerのSKANソリューションがSKANを使用してアトリビューションポストバックを提供し、ユーザーのプライバシーを保護しながらデータを収集、変換、および集約します。アプリが初めて起動されると、AppsFlyerプラットフォームはマーケターが設定した内容に基づいて、SDKにSKANコンバージョン値を設定する方法を指示します。

SKANソリューションを使用するには:

  • マーケターは、AppsFlyerでSKAN計測を設定する必要があります。 開発者は特に作業を行う必要はありません。
  • AppsFlyer SDKは必要なSKAN APIを自動的に呼び出します。
  • SKAN計測をAppsFlyerの機能に依存して行う場合は、他のSDKでのSKAN呼び出しを無効にしてください。
  • App Storeでは、開発者やマーケターが取るべき追加の手続きや登録プロセスは必要ありません。

SKANアトリビューションを無効にするには、開発者にSDKで無効化するよう指示してください。

iOSネイティブUnityReact Native

SKANアトリビューションを無効にするにはdisableSKAdNetworkを利用します

アプリ内イベントの計測

アプリ内イベント(IAE)は、アプリ内で何が起きているのかを理解するのに役立ちます。アプリ内イベントの計測を行うことで、投資回収率(ROI)や顧客生涯価値(LTV)といったKPIを計測するのに役立ちます。何のイベントをAppsFlyerで計測するかを、時間をかけて定義することをお勧めします。

計測したいアプリ内イベントを決定したら、イベント名とパラメーターと、実装手順のリンクをを開発者に共有してください。

アプリ内イベントを定義して開発者に送信する方法については、リッチアプリ内イベントガイドをご覧ください。

すべてのプラットフォーム向け:

収益の計測

あらゆるアプリ内イベントで収益を計測・送信できます。収益をアプリ内イベントの情報に含めるには、必ず af_revenue のパラメーターを使用してください。これは、AppsFlyerが管理画面とローデータレポート上で実際の収益としてカウントする唯一のイベントパラメーターです。 詳細はこちら

AndroidネイティブiOS ネイティブUnity

収益イベントを定義する開発者向けの手順については、こちらを参照してください。

アプリ内購入の検証

AppsFlyer SDK は、アプリ内購入についてサーバーによる検証を提供します。アプリ内購入が検証されると、購入イベントがAppsFlyerに自動的に送信されます。このイベントを自分で送信すると、重複レポートが発生します。

業界別

旅行、ゲーム、Eコマースなどの業界別推奨アプリ内イベントのリストをご覧ください。

OneLinkによるディープリンク

OneLinkは、マルチプラットフォーム アトリビューションのためのAppsFlyerソリューションであり、リダイレクトとディープリンクを実現します。

すべてのプラットフォーム

デバイスの検出とリダイレクト

アプリをインストールしていないユーザーの場合、OneLinkはデバイスの種類を検出し、適切な宛先(例えば、Google Play、Appleアプリストア、サードパーティのアプリストア、またはウェブページ)にリダイレクトします。これは、OneLinkテンプレートの設定に基づいています。 詳細はこちら

ディープリンク

アプリをインストールしているユーザーの場合、OneLinkによってアプリが起動されます。アプリを起動するだけでなく、アプリ内の特定画面やページにユーザーをディープリンクすることも可能です。これには、開発者がUnified Deep Linking (UDL)を実装する必要があります。

  • UDLにはSDK V6.1以降が必要です。
  • ディープリンクですでにOneLinkを使用しているカスタマーは、UDLではなく従来の方法を使用している可能性があります。

ディープリンクとディファードディープリンクの設定に関するガイドをご覧ください。

ディファードディープリンク

アプリをインストールしていないユーザーの場合、OneLinkはデバイスの種類を検出し、適切な宛先にリダイレクトします:Google Play、Appleアプリストア、サードパーティのアプリストア、またはウェブページ。ユーザーがアプリを起動すると、ディファードディープリンクを利用して、特定のアクティビティまたはページにリダイレクトできます。

これには、開発者が拡張ディファードディープリンクを実装する必要があります。

  • UDLにはSDK V6.1以降が必要です。
  • ディファードディープリンクにすでにOneLinkを使用しているカスタマーは、UDLではなく従来の方法を使用している可能性があります。

ディープリンクとディファードディープリンクの設定に関するガイドをご覧ください。

アトリビューションとディープリンクデータへのアクセス

以下の表は、アトリビューションおよびディープリンクデータを取得するために利用できる方法を示しています。

方法 関与する人は誰ですか? 結果の取得 取得方法 アトリビューションデータ ディープリンクデータ 可用性
Push API • マーケター • バックエンド開発者 通常数分以内で取得可能 バックエンド はい いいえ プレミアム
Pull API • マーケター • バックエンド開発者 • 定期的(リアルタイムではありません)。• ローデータレポートのダウンロードをスケジュールできます。 バックエンド はい はい ローデータレポートのプレミアム
Data Locker • マーケター • バックエンド開発者 時間ごとのレポートは1~3時間以内に利用可能 次のいずれかのオプションによるクラウドストレージ: • AWS上のAppsFlyer所有のバケット • お客様所有のストレージ(AWSまたはGCS) はい はい プレミアム
コンバージョンデータ(GCD)を取得 • マーケティング担当者 • モバイル開発者 開発者向けドキュメントを参照 最大5秒 SDK はい はい すべてのアカウント
統合ディープリンク(UDL) • マーケティング担当者 • モバイル開発者 開発者向けドキュメントを参照 最大1秒 SDK いいえ はい すべてのアカウント

iOS 14.5以降の同意しないユーザーについては次の点に注意してください。

  • 有料のメディアやオウンドメディアにUDLを利用する場合、ディープリンクデータが利用可能です。
  • 有料のメディアにGCDを利用する場合、データは制限され、アトリビューションやディープリンク詳細は含まれません。

ヒント

以下をお勧めします:

  • Push APIを利用してアトリビューションデータを取得し、サーバーに送信してさらに処理します。この方法ではデータが利用可能になるまで待機するため、精度が高くほぼ実際の時間です。GCDはデータを実際の時間で返しますが、最終アトリビューションの決定が5秒以上経過後に行われると不正確な場合があります。
  • Pull APIを利用して、定期的に(例:毎日)実際の時間のアトリビューションデータを補足し、発生する可能性のある通信エラーを補正します。

SDK連携テスト

SDK連携が完了したら、AppsFlyer管理画面に移動し、SDK連携テストページからオーガニックインストールと非オーガニックインストール、アプリ内イベント、ディープリンク(リターゲティング)をテストできます。 これにより、インストールとアプリ内イベントが正しく記録され、アトリビューションされます。

テストのシナリオと手順については、SDK連携テストを参照してください。

注意: アトリビューションテストを行う際は、テストデバイスを登録(AndroidまたはiOS)し、各インストールが新しいインストールとして記録されることを確認します。登録済みのテストデバイスでは、インストールが再インストールとして記録されることはありません。