開発者向けの Windows SDK 連携

概要:AppsFlyerをWindows / Xboxアプリとゲームに追加して、アプリインストール、アプリ内イベント、メディアソースなどを計測しましょう。

現在のバージョン::3.1.0(2023年12月17日時点)

AppsFlyer SDKはアプリインストールとイベントを記録する機能を提供します。

SDK_Integration.jpg

インストール、アップデート、セッション (起動) に加え(以下の必須のステップを実行)、アプリ内イベント(アプリ内購入、ゲームレベルなど)も計測して、ROIやユーザーのエンゲージメントレベルを評価できます。

 重要!

AppsFlyer Windows SDKは、Windows携帯電話、Xbox、PC、HoloLens、Surface hubなど、全ての Universal Windows Platform (UWP) デバイスと互換性があります。

1. 実装手順

Windows Universal SDK はNuGet Package Manager経由でインストールされます。AppsFlyer Windows SDKをNuget経由でインストールする方法:

  1. プロジェクトファイルを右クリックしてください。
  2. Manage NuGet Packages をクリックしてください。
  3. Browse をクリックし、AppsFlyerLib を検索してください。
  4. AppsFlyerLib をクリックしてください。
  5. Install をクリックしてください。

NuGetパッケージを使用しない場合は、AppsFlyer SDKをアプリに手動で埋め込むことができます。

  1. ユニバーサルウィンドウプラットフォームアプリSDKを こちらからダウンロードします。
  2. Copy the AppsFlyerLib.winmd をプロジェクトにコピーしてください。
  3. Visual Studioで、Universal Windows Platformプロジェクトの Add Reference をクリックしてください。

  • AppsFlyerLib.winmd を見つけて、追加してください。

 重要!

AppsFlyer は、Newtonsoft.json パッケージを使用してください。これは、Windows で Json を解析するための標準ライブラリです。このパッケージは、Visual Studio の NuGetを使用して追加できます。これにより、DLL内のファイルが見つかりません(File Not Found)の例外が解決されます。

  • Visual Studioにて、References を右クリックし、NuGet Package Newtonsoft.json を選択し追加してください。
  • アプリの Manifest、または Capabilities タブの Visual Studioでインターネットアクセスを許可してください。

2. SDKの初期化&インストールイベント(計測の最低必須要件)

  • 以下のコードを App Launchメソッドに追加してください。
  • appId と DevKey を設定してください。
    • tracker.appId and tracker.devKey に値を入力してください。
    • 管理画面のアプリ設定画面にてAppsFlyer DevKeyを取得できます。
protected override void OnLaunched(LaunchActivatedEventArgs e)
{
	this .InitializeComponent();
	this .Suspending += this .OnSuspending;
	AppsFlyerLib. AppsFlyerTracker tracker =
	AppsFlyerLib. AppsFlyerTracker .GetAppsFlyerTracker();
	tracker.appId = "YOUR_APP_ID_HERE" ;
	tracker.devKey = "YOUR_DEV_KEY_HERE" ;
	tracker.trackAppLaunch();
}

アプリ起動を非同期で記録する

アプリ起動をオフラインで記録できます。これはネットワークがダウンしているか応答しないときに役立ちます。このような場合は、TrackAppLaunchAsync メソッドに渡すコールバック関数で処理できます。

tracker.TrackAppLaunchAsync(Callback);
public void Callback(AppsFlyerLib.ServerStatusCode code)
{
   if(code == AppsFlyerLib.ServerStatusCode.SUCCESS) {
//success scenario
} else if(code == AppsFlyerLib.ServerStatusCode.FAIL) {
//failure scenario
} }

3. アプリ内イベントの計測API(オプション)

このAPIにより、AppsFlyerはインストール後のイベントを記録できます。これらのイベントは広告主によって定義され、イベント名とオプションのイベント値を含まれています。以下のコードを追加して、インストール後のイベントを追加してください。

public void TrackEvent(string eventName, IDictionary<string, Object> eventValues)
  • eventName はイベント名を定義する任意の文字列です。推奨するイベント名の一覧はこちらを参照してください。
  • eventValues はイベントを構成するイベントパラメーターのディクショナリです。推奨するパラメーターの一覧はこちらを参照してください。
  • 収益をアプリ内イベントの一部としてカウントする場合は、InAppEventParameterName.REVENUE (“af_revenue”) という定数パラメーター名を使用してください。正負を問わず、あらゆる数値を入力できます。

AppsFlyerLib.AppsFlyerTracker tracker = AppsFlyerLib.AppsFlyerTracker.GetAppsFlyerTracker();
      IDictionary<string, object> eventValues = new Dictionary<string, object>();
      eventValues.Add(AppsFlyerLib.AFInAppEventParameterName.CONTENT_ID, "id123");
      eventValues.Add(AppsFlyerLib.AFInAppEventParameterName.REVENUE, "10");
      eventValues.Add(AppsFlyerLib.AFInAppEventParameterName.CURRENCY, "USD");
      tracker.TrackEvent(AppsFlyerLib.AFInAppEventType.ADD_TO_CART, eventValues);

イベントを非同期で記録する

イベントをオフライン/非同期の状態で記録することができます。これはネットワークがダウンしているか応答しないときに役立ちます。このようなケースは、TrackEventAsync メソッドに渡すコールバック関数で処理できます。

tracker.TrackEventAsync(AppsFlyerLib.AFInAppEventType.PURCHASE, events, Callback);
public void Callback(AppsFlyerLib.ServerStatusCode code)
{
   if(code == AppsFlyerLib.ServerStatusCode.SUCCESS) {
//success scenario
} else if(code == AppsFlyerLib.ServerStatusCode.FAIL) {
//failure scenario
} }

AppsFlyerのリッチアプリ内イベントの一覧は、こちらを参照してください。

4. 高度な実装

以下のAPIは任意で実装でき、AppsFlyer SDKの高度な実装の一部です。

4.1 通貨コードの設定(オプション)

AppsFlyerに送信される各アプリ内イベントの一部として使用できる特定の通貨コードに加えて、以下のAPIを使用して、グローバル通貨コードを設定することができます。

USD(米ドル)がデフォルトの値です。利用できるISO通貨コードはこちらを参照してください。

通貨コードを設定するには、以下のAPIを使用してください。

tracker.currencyCode = "GBP";

4.2 getAppsFlyeruid(オプション)

AppsFlyer Unique ID は全ての新しいアプリインストールに対して発行されます。

以下のAPIを使用してこのIDを取得してください。

public string getAppsFlyerUID()

4.3 カスタマーユーザーID(CUID)(オプション)

独自のカスタマーIDを設定すると、独自の内部IDをAppsFlyerユーザーIDやその他のデバイスIDと相互参照できるようになります。このIDは、ポストバックAPIとともにAppsFlyerのCSVレポートで確認でき、貴社の内部IDと相互参照することができます。

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

tracker.customerUserId = "YOUR_CUSTOMER_USER_ID";

4.4 GetConversionDataAsync(オプション)

このAPIを使用して、SDKを通じてインストールごとにコンバージョンデータを受け取ることができます。以下のコードを追加して、インストール後のイベントを記録してください。

Task.Run(async () =>
{
   AppsFlyerLib.AppsFlyerTracker tracker = AppsFlyerLib.AppsFlyerTracker.GetAppsFlyerTracker();
   string conversionData = await tracker.GetConversionDataAsync();
});

この機能の詳細については、こちらを参照してください。

4.5 C++ / CX 実装の例

AppsFlyerLib::AppsFlyerTracker^ tracker = AppsFlyerLib::AppsFlyerTracker::GetAppsFlyerTracker();
 tracker->appId = ref new Platform::String(L"APP_KEY");
 tracker->devKey = ref new Platform::String(L"APPSFLYER_KEY");
 tracker->TrackAppLaunch();
 create_task(tracker->GetConversionDataAsync()).then([tracker](Platform::String^conversionData)
 {
 Windows::Foundation::Collections::IMap<Platform::String^, Platform::Object^>^ eventValues
 = ref new Platform::Collections::Map<Platform::String^, Platform::Object^>();

eventValues->Insert(AppsFlyerLib::AFInAppEventParameterName::CONTENT_ID, "134");
 eventValues->Insert(AppsFlyerLib::AFInAppEventParameterName::CONTENT_TYPE, "Virtual Goods");
 eventValues->Insert(AppsFlyerLib::AFInAppEventParameterName::CURRENCY, "USD");
 eventValues->Insert(AppsFlyerLib::AFInAppEventParameterName::REVENUE, "9.99");

tracker->TrackEvent(AppsFlyerLib::AFInAppEventType::PURCHASE, eventValues);
 });