GitHubレポジトリへのリンク

AppsFlyer Unity Steam SDK連携

AppsFlyerは、クロスプラットフォームアトリビューションを実行するための強力なツールを提供することで、ゲームマーケティング担当者がより良い意思決定を行えるよう支援します。

ゲームのアトリビューションには、初回起動、連続セッション、アプリ内イベントを記録するAppsFlyer SDKを連携することが必要です(例:購入イベントなど)。このサンプルアプリは、AppsFlyer SDKをUnity-Steamゲームに実装するためのリファレンスとして使用することをお勧めします。


Prerequisites

  • Unity Engine
  • Unityプロジェクト内に実装されたSteamworks SDK
  • アクティブユーザーでインストールされたSteamクライアント
    注:テスト用に実行されている必要があります。

AppsflyerSteamModule - Interface

AppsflyerSteamModule.cs, included in the scenes folder, contains the required code and logic to connect to AppsFlyer servers and report events.

AppsflyerSteamModule

このメソッドは、APIキー、アプリID、parent MonoBehaviour を受け取り、AppsFlyer Moduleを初期化します。

メソッドのシグネチャ

AppsflyerSteamModule(string devkey, string appid, MonoBehaviour mono)

使用料

AppsflyerSteamModule afm = new AppsflyerSteamModule("STEAM_APP_ID", "DEV_KEY", this);

引数

  • STEAM_APP_IDSteamDBから取得できます。
  • DEV_KEY: Get from the marketer or AppsFlyer HQ.

Start

このメソッドは、AppsFlyerに初回起動とセッションのリクエストを送信します。

メソッドのシグネチャ

void Start(bool skipFirst = false)

使用料

// without the flag
afm.Start();

// with the flag
bool skipFirst = [SOME_CONDITION];
afm.Start(skipFirst);

LogEvent

このメソッドは、イベント名とJSONオブジェクトを受け取り、アプリ内イベントをAppsFlyerに送信します。

メソッドのシグネチャ

void LogEvent(string event_name, Dictionary<string, object> event_parameters)

使用料

// set event name
string event_name = "af_purchase";
// set event values
Dictionary<string, object> event_parameters = new Dictionary<string, object>();
event_parameters.Add("af_currency", "USD");
event_parameters.Add("af_price", 6.66);
event_parameters.Add("af_revenue", 12.12);
// send logEvent request
afm.LogEvent(event_name, event_parameters);

GetAppsFlyerUID

AppsFlyerのユニークデバイスIDを取得します。SDKはアプリのインストール時にAppsFlyerのユニークなデバイスIDを生成します。SDKを起動すると、このIDが最初のアプリインストール時のIDとして記録されます。

メソッドのシグネチャ

string GetAppsFlyerUID()

使用料

AppsflyerSteamModule afm = new AppsflyerSteamModule("DEV_KEY", "STEAM_APP_ID", this);
afm.Start();
string af_uid = afm.GetAppsFlyerUID();

IsInstallOlderThanDate

メソッドのシグネチャ

bool IsInstallOlderThanDate(string datestring)

このメソッドは日付文字列を受け取り、ゲームフォルダーの作成日が日付文字列より古い場合は true を返します。日付文字列の形式:"2023-January-01T23:12:34+00:00"

// the creation date in this example is "2023-January-23T08:30:00+00:00"

// will return false
bool dateBefore = AppsflyerSteamModule()->IsInstallOlderThanDate("2023-January-01T23:12:34+00:00");

// will return true
bool dateAfter = AppsflyerSteamModule()->IsInstallOlderThanDate("2023-April-10T23:12:34+00:00");

サンプルアプリの実行

  1. Unity hubを開き、プロジェクトを開きます。
  2. UnityのプロジェクトにSteamworksを追加します。Steamworks SDKの説明に従って、パッケージマネージャーから追加してください。
  3. Use the sample code in SteamScript.cs and update it with your DEV_KEY and APP_ID.
  4. Add the SteamManager and SteamScript to an empty game object (or use the one in the scenes folder).
    Request-OK
  5. Unityエディターでサンプルアプリを起動し、デバッグログに以下のメッセージが表示されることを確認します:
    Request-OK
  6. 24時間後にダッシュボードが更新され、オーガニックとノンオーガニックのインストールとアプリ内イベントが表示されます。

SteamゲームにAppsFlyerを実装する

  1. UnityのプロジェクトにSteamworksを追加します。Steamworks SDKの説明に従って、パッケージマネージャーから追加してください。
  2. Add SteamManager.cs をゲームオブジェクトに追加します。
  3. スクリプトの追加元 Assets/Scenes/AppsflyerSteamModule.cs をアプリに追加します。
  4. Use the sample code in Assets/Scenes/SteamScript.cs and update it with your DEV_KEY and APP_ID.
  5. SDKの初期化
AppsflyerSteamModule afm = new AppsflyerSteamModule("DEV_KEY", "STEAM_APP_ID");
  1. AppsFlyerの実装を開始しましょう。
  2. Report in-app events.

Steamのクラウドセーブを削除する(アトリビューションをリセットする)

  1. Steamクラウドを無効化
  2. ローカルファイルの削除