概要:アンインストール計測、ユーザー招待の計測、プッシュ通知計測、プライバシー設定など、追加で実装可能なSDKのAPIについて記載しています。
関連記事
Unityプラグインとアプリの実装の全体像については、以下の記事も必ず確認してください:
- Unityプラグイン V6 実装ガイド - 概要
- Unityプラグイン V6 実装ガイド - 基本のSDK実装
- Unityプラグイン V6 実装ガイド - 追加のSDK実装(本記事)
- Unityプラグイン V6 実装ガイド - APIリファレンス
計測
アンインストール計測
さまざまなメディアソースから来たユーザーのアンインストール率を測定します。
アンインストール計測の設定方法については、関連するOS毎の手順を参照してください。
- Unity Firebase SDKを https://firebase.google.com/docs/unity/setupからダウンロードしてください。
- FirebaseMessaging.unitypackageをプロジェクトにインポートしてください。
- (Firebaseコンソールで取得した)google-services.jsonをプロジェクトにインポートしてください。
注記
Unity Firebase SDKは、マニフェストレシーバーを自動的に追加します。
- AppsFlyerのコードを処理するUnityのクラスに以下のコードを追加してください:
using Firebase.Messaging; using Firebase.Unity;
- Start() メソッドに追加してください。
Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
- このメソッドを追加してください:
public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token)
{
#if UNITY_ANDROID
AppsFlyer.updateServerUninstallToken(token.Token);
#endif
}
警告
シナリオ: Unity Firebase SDKを実装している場合
要件: Firebase Unity SDKをプロジェクトに追加した場合、enableUninstallTracking(“ SenderID”)に次のメソッドの呼び出しを追加しないでください。
追加した場合の結果:
- Firebase Unity SDKは、google-services.jsonファイル(以前に追加されたもの)からsender IDを取得します。
- その結果、Androidのデバッグの警告が表示される可能性があります。
デバイストークンは、 UnityEngine.iOS.NotificationServices.deviceToken.
から取得してください。
デバイストークンを受け取ったときにこのメソッドを呼び出してください。(タブコンテンツの問題):
AppsFlyer.registerUninstall("device_push_notification_token");
例:
using AppsFlyerSDK;
public class AppsFlyerObjectScript : MonoBehaviour, IAppsFlyerConversionData
{
private bool tokenSent;
void Start()
{
AppsFlyer.initSDK("devKey", "appID", this);
AppsFlyer.startSDK();
#if UNITY_IOS
UnityEngine.iOS.NotificationServices.RegisterForNotifications(UnityEngine.iOS.NotificationType.Alert | UnityEngine.iOS.NotificationType.Badge | UnityEngine.iOS.NotificationType.Sound);
#endif
}
void Update()
{
#if UNITY_IOS
if (!tokenSent)
{
byte[] token = UnityEngine.iOS.NotificationServices.deviceToken;
if (token != null)
{
AppsFlyer.registerUninstall(token);
tokenSent = true;
}
}
#endif
}
}
詳細についてはiOS アンインストール ガイドを参照してください。
カスタムデータの追加設定
Segment、Adobe、Urban Airshipなどの外部のパートナープラットフォームとプラグインレベルで連携する際には、setAdditionalData
のAPIの利用が必要になります。
各パートナーとの連携ガイド内で、setAddionalData API が必要と明示されている場合にのみ
、このAPIを使用してください。
例: setAdditionalData
のコード
Dictionary<string, string> CustomDataMap = new Dictionary<string, string>();
CustomDataMap.Add("custom_param_1", "value_of_param_1");
AppsFlyer.setAdditionalData(CustomDataMap);
セッション
カスタムのセッション間隔
デフォルトでは、それぞれ別のセッションとしてカウントされるには、2つのアプリ起動の間隔が少なくとも5秒以上空いている必要があります。 セッション間の最小時間を任意で設定したい場合には以下を設定してください:
AppsFlyer.setMinTimeBetweenSessions(custom_time_ins_seconds);
注意! セッション間のカスタム時間に大きい値を設定すると、ディープリンクなどのセッションデータに依存するAPI へ悪影響を与える可能性があるので注意してください。
詳細はアプリセッションのカウントを参照してください。
ユーティリティ系アプリ向けバックグラウンドセッション
Unityでは使用できません。
オウンドメディア
加工されたDeep Link URLsの解決方法
一部のサードパーティサービス( メールサービスプロバイダーなど ):
- 独自のクリック記録ドメインを使用して、AppsFlyerの計測リンクをメール内で加工します。
- 独自のクリック計測ドメインを設定できます。
もしもOneLinkURLが上記のように変換/短縮された場合には、OneLinkの機能が制限される可能性があります。これを克服するには:
- SDKの初期化よりも前に、
setResolveDeepLinkURLs
のAPI を呼び出してください。 - このAPIを使用することで、アプリを起動するクリックドメインからOneLinkを取得することが可能です。
シナリオ:あなたのOneLinkhttps://mysubdomain.onelink.me/abCDにリダイレクトするクリックドメインがあったとします。
ソリューション:
setResolveDeepLinkURLs
のAPIを使用して、クリックドメインがアプリユーザーをリダイレクトさせた後に到達するOneLinkを取得してください。- このAPIメソッドは、プラグインが分解したドメインのリストを受信します。
- 以下のコードではご自身のクリックドメインを使用できますが、同時にOneLink機能も保持します。
例
AppsFlyer.setResolveDeepLinkURLs("example.com", "click.example.com");
これで、 このOneLinkからのデータを使って 、ディープリンクと遷移先コンテンツのカスタマイズを行ってください。
プッシュ通知の計測
AppsFlyerでは、リターゲティングキャンペーンの一部として、プッシュ通知の成果を計測できます。
プッシュ通知を記録するには:
sendPushNotificationData
のメソッドを呼び出してください。- このメソッドは、この通知をクリックした後に起動されるすべてのアクティビティの
onCreate
メソッド内にあります:
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyerAndroid.handlePushNotifications();
#endif
詳細については、 プッシュ通知の計測を参照してください。
ユーザー招待計測
既存ユーザーが友人やコンタクトを新規ユーザーとしてアプリに招待できるようにすることで、アプリインストール数増加のきっかけとなる場合があります。
AppsFlyerを使用することで、アプリ内のユーザー招待から発生したインストールの計測を行うことが可能です。詳細はユーザー招待の計測を参照してください。
クロスプロモーションの計測
アプリ間での相互送客(クロスプロモーション)もアプリのインストールを促進可能です。
AppsFlyerを使用することで、既に持っているアプリ内に表示された、別アプリへのクロスプロモーションで発生したインストールの計測が可能になります。詳細はクロスプロモーションの計測を参照してください。
ユーザー識別子
AppsFlyer IDの取得
AppsFlyer IDは、アプリのインストール毎に都度発行されます。AppsFlyer IDには様々な利用用途があります。
- サーバー間(S2S)でイベント送信するとき
- 広告主側で持っているシステム上のユーザー情報と一致させるとき
- Pull APIとPush APIのデータをマージするときに、各データをマップしてください。
AppsFlyer IDを取得するには:
string AppsFlyerUID = AppsFlyer.getAppsFlyerId();
カスタマーユーザーIDの設定
独自のユニークなカスタマーユーザーID(CUID)を設定し、一意のAppsFlyer IDと紐付け・相互参照が可能です。
一意のCUID:
- AppsFlyerの ローデータ CSVレポート上に表示されます。
- ポストバックAPIで使用して、お客様側のユーザーIDと相互参照できます。
CUIDを設定するには:
AppsFlyer.setCustomerUserId("someId");
推奨 設定された後に計測されたイベントにしかカスタマーユーザーIDを紐付けられないので、AppsFlyerでは、 アプリ利用の一連の流れの中で、できる限り早いタイミングでカスタマーユーザーIDを設定することをお勧めしています。
startSDK
を呼ぶ前にsetCustomerUserID
を呼び出してください。
- 計測されたイベントはCUIDに関連付けられます。
- 関連するデータは、インストールとアプリ内イベントのローデータレポートに表示されます。
AppsFlyer.setCustomerUserId("someId");
カスタマーユーザーIDの取得
詳細については、 CUID を確認してください。
customerUserIDのためのプラグイン初期化の遅延
カスタマーユーザーID(CUID)を設定してから、プラグインを初期化してください。これは、インストールデータとアプリ内イベントデータの両方にCUIDを含める場合に有効です。
関連するOSの手順を参照してください。
警告
アプリ内でのユーザーの流れに適する場合にのみ、 CUID の設定を遅延させてください。CUIDの設定を遅延させることで、数値の乖離や、アプリが広告不正の企みにさらされる可能性が高まります。
OAIDの取得
OAIDはアトリビューションを可能にするユニークな端末IDの1つです。
OAIDを取得するには:
OAIDは自動的に収集されるのがデフォルト仕様です。オプトアウトしたい場合には、AppsFlyerAndroid.setCollectOaid(false);
を呼び出してください。
- MSA allianceが提供している AAR をダウンロードしてください。
- ダウンロードしたaarを、Assets/Plugins/Androidフォルダに追加してください。
- Huawei端末向けに、Assets/Plugins/Androidフォルダに
hms-ads-identifier
libを追加してください。 - appsflyer-oaid をプロジェクトに追加してください。これは、Assets/Plugins/Androidフォルダにaarを追加するか、Assets/AppsFlyer/Editor/AppsFlyerDependencies.xml に以下を追加することで実行可能です。
<androidPackage spec="com.appsflyer:oaid:5.2.0">
</androidPackage>
ユーザープライバシー
オプトアウト
法律やプライバシーのコンプライアンス問題といったさまざまな事情により、オプトアウトしてすべての計測/記録を停止する決定が下される可能性があります。
ベストプラクティス アプリに適したシナリオを、正しい手順に沿って実装していただくことをお勧めします。
計測を停止するには:
- stopSDKを呼び出し、trueに設定してください。
AppsFlyer.stopSDK(true);
- このAPIが起動するとプラグインは動作を停止し、AppsFlyerサーバーとの通信は何も発生しなくなります。
計測を再度アクティブにするには: stopSDK を呼び出してfalseに設定してください。
警告
このstopSDKのAPIは、特定ユーザーの計測を全て停止したい場合に使用してください。また、このAPIの使用はアトリビューションやデータ収集、ディープリンクの機能に影響を与えますのでご注意ください。
ユーザーデータの匿名化
アプリユーザーを匿名化するには:
- SDKの初期化中にこのAPIを設定してください。
anonymizeUser
を呼び出し、true に設定してください。
AppsFlyer.anonymizeUser(true);
- ユーザーのインストール、イベント、およびセッションを匿名化します。
計測を再開するには: anonymizeUser
を呼び出し、 false に設定してください。
警告
ユーザーを匿名化することにより、アトリビューション情報に大きな悪影響があります。ユーザーの情報を収集することが法的に禁じられている地域でのみ、このオプションを使用してください。
データ取得からのパートナーの除外
場合によっては、アドネットワークやパートナーに対する特定ユーザーのユーザーレベルのデータ共有を停止したい場合があるかと思います。その理由としては:
- CCPAやGDPRのようなプライバシーポリシー
- ユーザーによるオプトアウト
- 一部パートナー(広告ネットワーク/第三者ツール)との競合
AppsFlyerでは、一部またはすべてのパートナーとのデータ共有を停止するための、2つのAPIメソッドを用意しています。
- setSharingFilter1: 広告主がデータ取得から 特定の アドネットワークや連携パートナーを 除外する ために使用するものです。
- setSharingFilterForAllPartners: 広告主が すべての アドネットワーク / 連携パートナーに対して、データを共有しないようにするために使用します。
これらのフィルタリングメソッドは、SDK V5.4.1からサポートされています。
このフィルタリングメソッドは、SDK が初期化される毎に呼び出される必要があり、セッション全体に影響を与えます。このフィルタを設定する必要があるかどうかを判断するのに時間がかかる場合には、SDKの初期化を遅延させてください。
最初のstartSDKの呼び出しよりも前にこのメソッドがアクティブ化された場合 :
- SRN経由のユーザーはOrganicユーザーと見なされ、そのユーザーのデータは連携パートナーとも共有されません。
- 通常のアドネットワーク(SRN以外)経由のユーザー は、AppsFlyer上で正しく媒体へ紐付けされますが、ポストバック、API、ローデータレポート、またはその他の方法においてアドネットワークへデータは共有されません。
現在、これらのメソッドを使用してアンインストールに関するデータをフィルタリングすることはできませんが、AppsFlyerの連携設定ページ を使用して、各パートナーへのアンインストールイベントのポストバック送信は停止することができます。