カスタマーユーザーID (CUID) 概要

概要: カスタマーユーザー ID (CUID) のデータ項目を利用し、お客様の社内データとAppsFlyer アトリビューションデータを相互参照します。

CUIDの実装

カスタマーユーザーID(CUID)項目は、アプリやWebサイトの所有者によって発行・設定されたユニークユーザー識別子です。

  • CUIDは、AppsFlyerのAPIまたはSDKを使用して広告主様からAppsFlyerへ送信されます。
  • AppsFlyerは、それに応じてローデータレポートのCUID項目に値を入力します。
  • CUIDを使用することで、CUIDをキーとしてAppsFlyerの計測データとその他のデータを相互参照できます。
  • 例:ユーザーが同じCUID ("1234567") の2つのデバイスを持っています。デバイス上でイベントを実行するたびに、CUIDと一緒にイベントが記録されます。これにより、広告主は両方のデバイスのローデータをユーザーの全体像として集計することができます。
  • CUIDは、AppsFlyerのオーディエンス機能とピープルベースドアトリビューションに使用され、精度とターゲティングの向上に役立ちます。

CUIDのデザインとプライバシー

CUIDが設定されるまでSDKの開始を遅延する

CUIDが設定されるまでSDKの開始を遅らせることが可能です。各々のビジネスロジックに加えて、以下の点を考慮して実行してください。

  • メリット
    • 計測データには常にCUIDが紐づきます。
    • CUIDを使用して、計測データと自社システム内の他のデータを相互参照できます。
    • これによりAppsFlyerから取得したデータをより高度に使用、および処理できるようになります。
  • デメリット
    • 購入やサブスクリプションなどのユーザーが実行するアクションやイベントは、CUIDが設定されるまでAppsFlyerには記録されません。これにより乖離が発生する可能性があり、不正検出に影響を与える可能性があります (SDK初期化前に必ずしも識別できるとは限りません)。

: CUID が存在するまでSDKの開始を遅延していて、CUIDが設定されていない場合、SDKはデータ(インストールを含む)を報告しません。

CUIDの設定

Android SDKディベロッパー向けの手順

カスタマーユーザーIDを設定するには:

public void setCustomerUserId(String id);

使用例:

AppsFlyerLib.getInstance().setCustomerUserId("myId");

設定された後に計測されたイベントにしかカスタマーユーザーIDを紐付けられないので、AppsFlyerでは、 アプリ利用の一連の流れの中で、できる限り早いタイミングでカスタマーユーザーIDを設定することをお勧めしています

  • startを呼び出す前に setCustomerUserId が呼び出された場合には、インストールおよびイベントのローデータレポートにカスタマーユーザーIDが表示されます。
  • trackAppLaunchよりも後に設定された場合には、カスタマーユーザーIDはその設定後に計測されたイベントへのみ紐付けられます。
カスタマーユーザーIDの取得

初回起動時以降にカスタマーユーザーIDの値を再度設定することを避ける、かつカスタマーユーザーIDを取得するためのサーバーへの呼び出しを減らすために、その値が空白(ブランク)かどうかを以下メソッドを使用して確認できます:

AppsFlyerProperties.getInstance().getString(AppsFlyerProperties.APP_USER_ID)
customerUserIDのためのSDK初期化の遅延

customerUserIDが設定されるまで、SDKの初期化を遅らせることも可能です。

customerUserIDの呼び出しのためにSDKの初期化を遅らせる必要があることを示すには:

AppsFlyerLib.getInstance().waitForCustomerUserId(true);

を呼び出します。SDK初期化の残りの部分は変更しません。

customerUserIDが指定されたら、

AppsFlyerLib.getInstance().setCustomerIdAndLogSession("customer_id",this);

関連するCustomer User IDをSDKに提供してSDKでの計測を開始します。

コードは次のようになります。

Java Kotlin
public class AFApplication extends Application {
  private static final String AF_DEV_KEY = "qrdZGj123456789";
  @Override
  public void onCreate() {
    super.onCreate();
AppsFlyerConversionListener conversionDataListener = 
    new AppsFlyerConversionListener() {
      ...
    };
    AppsFlyerLib.getInstance().waitForCustomerUserId(true);
//WARNING!Removing above line doesn't cancel its effect.
// Replace with this to stop waiting for CUID:
    // AppsFlyerLib.getInstance().waitForCustomerUserId(false);
AppsFlyerLib.getInstance().init(AF_DEV_KEY,getConversionListener(), getApplicationContext());
    AppsFlyerLib.getInstance().start(this);
// Do your magic to get the customerUserID
    // ...
    // any AppsFlyer SDK code invoked here will be discarded
   //Call the following API once the customerUserID is available:
 AppsFlyerLib.getInstance().setCustomerIdAndLogSession("customer_id",this);
  }
}

iOS SDKディベロッパー向けの手順

カスタマーユーザーIDを設定するには:

Objective-C Swift
[AppsFlyerLib shared].customerUserID= @"my user id";

iOSでは、アプリを起動するたびにカスタマーユーザーIDを設定する必要があります。設定された後に計測されたイベントにしかカスタマーユーザーIDを紐付けられないので、AppsFlyerでは、 アプリ利用の一連の流れの中で、できる限り早いタイミングでカスタマーユーザーIDを設定することをお勧めしています

  • startを呼び出す前に setCustomerUserId が呼び出された場合には、インストールおよびイベントのローデータレポートにカスタマーユーザーIDが表示されます。
  • trackAppLaunchよりも後に設定された場合には、カスタマーユーザーIDはその設定後に計測されたイベントへのみ紐付けられます。
カスタマーユーザーIDの取得

初回起動時以降にカスタマーユーザーIDの値を再度設定することを避ける、かつカスタマーユーザーIDを取得するためのサーバーへの呼び出しを減らすために、その値が空白(ブランク)かどうかを以下メソッドを使用して確認できます:

Objective-C Swift
NSString *customerUserID = [AppsFlyerLib shared].customerUserID;
customerUserIDのためのSDK初期化の遅延

Customer User IDが設定されるまで、SDKの初期化を遅らせることも可能です。これは、インストールデータとアプリ内イベントデータの両方にCustomer User IDを含めたい場合に有効です。

次のコードを実装してください。

Objective-C Swift
- (void)applicationDidBecomeActive:(UIApplication *)application {
    NSString *customUserId = [[NSUserDefaults standardUserDefaults] stringForKey:@"customerUserId"]; // Your custom logic of retrieving CUID
    if (customUserId != nil && ![customUserId  isEqual: @""]) {
        [AppsFlyerLib shared].customerUserID = customUserId; // Set CUID in AppsFlyer SDK for this session
        [[AppsFlyerLib shared] start]; // Start
    }
}

ピープルベースドアトリビューション

AppsFlyerのピープル ベースド アトリビューション(PBA)は、Webとモバイルキャンペーンの成果に関する幅広い視点を提供するほか、Webユーザーをモバイルユーザーに転換させるため(またはその逆)の施策を分析できるようになります。

クロスプラットフォームでのインサイトと分析を可能にするためには、モバイルとWeb環境の両方で同じCUIDを設定する必要があります。