概要:ゲームアプリで推奨されるアプリ内イベントを記録して、ユーザージャーニー全体を通したユーザーの質を計測しましょう。
ゲーム
ゲームアプリには、アーケード、ストラテジー、教育、さらにギャンブルなど色々なゲームジャンルがあります。ゲームアプリで計測を推奨する一般的なイベントには、アプリ内課金、ソーシャルメディアでのシェア、友達の招待などがあります。加えて、ゲームのレベル達成、ゲーム内チュートリアルの完了なども計測できます。
これらのイベントを計測することで、次のような判断に役立ちます。
- ユーザーが最も購入するオファーは何か
- ユーザーはどれだけエンゲージしているか
- ソーシャルメディアにシェアを投稿するユーザー数
- 友達を招待してアプリをインストールを促すユーザー数
また、これらのイベントは、次のプラットフォームのゲームアプリにも関連しています。
- Android Smart TV
- Apple TV (tvOS)
- Amazon Fire TV
- Xbox
- Windowsモバイルデバイス
アプリ内イベント計測の詳細については、リッチアプリ内イベントガイドを参照してください。
規定イベントで推奨される構造
次のセクションでは、ゲームアプリの一般的なイベント構造の一覧を示しています。各構造には、既定のイベント名と推奨されるイベントパラメーターが含まれています。アプリ内イベントには、ビジネスニーズを満たす任意のイベントパラメーターを含めることができます。
ログイン (af_login)
目的
登録ユーザーのリテンションを理解しましょう
トリガー
ユーザーが正常にログインするたびに
イベントパラメータ
パラメーターなしで送信できます
コードの例
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LOGIN, null);
[[AppsFlyerLib shared] logEvent:AFEventLogin withValues: nil];
AppsFlyerLib.shared().logEvent(AFEventLogin, withValues: nil);
AppsFlyer.sendEvent ("af_login", null);
登録完了 (af_complete_registration)
目的
アプリをインストールし、サインアップを完了したユーザーがどれだけいるか、またユーザーが好むサインアップ方法を確認しましょう
トリガー
ユーザーがサインアップ手順を完了したとき
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
af_registration_method | サインアップ方法のタイプ | Email、Facebook |
コードの例
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REGSITRATION_METHOD, "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.COMPLETE_REGISTRATION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventCompleteRegistration
withValues: @{
AFEventParamRegistrationMethod: @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventCompleteRegistration,
withValues: [
AFEventParamRegistrationMethod: "Facebook"
]);
Dictionary<string, string> CompletedRegistrationEvent = new Dictionary<string, string>();
CompletedRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompletedRegistrationEvent);
購入 (af_purchase)
目的
多くのゲームアプリでは、ユーザーがコイン、宝石、武器などのアイテムを購入することができます。これらの購入を記録すると、次のことに役に立ちます。
- アドネットワークと広告代理店間のユーザーのLTV(顧客生涯価値)とキャンペーンのROIを判断します。
- どのようなオファーがユーザーに最も人気があるのかを特定します。
- キャンペーンのターゲティングを最適化するために、購入されたアイテムとキャンペーンを相互参照します。
トリガー
購入が正常に完了しユーザーに「ありがとうございました」が表示されたとき
イベントパラメータ
名称 | 説明 | 値の例 |
---|---|---|
af_revenue | 購入による収益の予測 | 199.99 |
af_currency | Currency code | THB, USD |
af_quantity | 購入されたアイテムの数 | 2 |
af_content_id | 商品ID | 001, 092 |
af_order_id | 注文ID | 9277 |
af_receipt_id | レシートID | 9277 |
コードの例
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 199.99);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.QUANTITY, 2);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "092");
eventValue.put(AFInAppEventParameterName.ORDER_ID, "9277");
eventValue.put(AFInAppEventParameterName.RECEIPT_ID, "9277");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @199.99
, AFEventParamCurrency: @"USD", AFEventParamQuantity: @2, AFEventParamContentId: @"092", AFEventParamOrderId: @"9277", AFEventParamReceiptId: @"9277" }];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 199.99
, AFEventParamCurrency: "THB", AFEventParamQuantity: 2, AFEventParamContentId: "092", AFEventParamOrderId: "9277", AFEventParamReceiptId: "9277" ]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "199.99
"); purchaseEvent.Add("af_currency", "USD"); purchaseEvent.Add("af_quantity", "2"); purchaseEvent.Add("af_content_id", "001"); purchaseEvent.Add("af_order_id", "9277"); purchaseEvent.Add("af_receipt_id", "9277"); AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
レベル達成 (af_level_achieved)
目的
ゲームでレベルアップすることは、ユーザーの大きな目標の1つです。レベルアップすると、新しい機能やステージが解除され、ユーザーはますますプレイを続けたくなります。レベル達成を記録することで、次のことが可能になります。
- どのキャンペーンが最もアクティブなユーザーを生み出すかを特定できます
- 最もアクティブで関心の高いユーザーのタイプを割り出します
- 収益などのディメンション(分析軸)と全体のユーザーアクティビティを関連付けます
トリガー
ユーザーがレベル達成ページに到達したとき
イベントパラメータ
名称 | 説明 | 値の例 |
---|---|---|
af_level | ユーザーが達成したレベル | 3 |
af_score | ユーザーが達成レベルに関するスコア | 500 |
コードの例
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.LEVEL, 10);
eventValue.put(AFInAppEventParameterName.SCORE, 500);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.LEVEL_ACHIEVED, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventLevelAchieved
withValues: @{
AFEventParamLevel: @10,
AFEventParamScore: @500
}];
AppsFlyerLib.shared().logEvent(AFEventLevelAchieved,
withValues: [
AFEventParamLevel: 3,
AFEventParamScore: 500
]);
Dictionary<string, string> LevelAchievedEvent = new Dictionary<string, string>();
LevelAchievedEvent.Add("af_level", "10");
LevelAchievedEvent.Add("af_score", "500");
AppsFlyer.sendEvent ("af_level_achieved", LevelAchievedEvent);
チュートリアル完了 (af_tutorial_completion)
目的
チュートリアルでは、アプリの使用方法に関するガイダンスをユーザーに提供します。このイベントを記録すると、次のことを判断できます。
- ユーザーがつまずく可能性のあるトピックは何か
- うまく機能していないチュートリアルはどれか
トリガー
- ユーザーがチュートリアルを完了したとき
- ユーザーがチュートリアルを開始したが、完了せずに中止した場合
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
af_success | ユーザーがチュートリアルを完了したかどうか | true |
af_tutorial_id | チュートリアルID | 3 |
af_content | チュートリアル名 | はじめよう |
コードの例
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.SUCCESS, true);
eventValue.put(AFInAppEventParameterName.TUTORIAL_ID, "3");
eventValue.put(AFInAppEventParameterName.CONTENT, "Getting Started");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.TUTORIAL_COMPLETION, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTutorial_completion
withValues: @{
AFEventParamSuccess: @TRUE,
AFEventParamTutorialId: @"3",
AFEventParamContent: @"Getting Started"
}];
AppsFlyerLib.shared().logEvent(AFEventTutorial_completion,
withValues: [
AFEventParamSuccess: true,
AFEventParamTutorialId: "3",
AFEventParamContent: "Getting started"
]);
Dictionary<string, string> TutorialCompletiondEvent = new Dictionary<string, string>();
TutorialCompletiondEvent.Add("af_success", "true");
TutorialCompletiondEvent.Add("af_tutorial_id", "3");
TutorialCompletiondEvent.Add("af_tutorial_content", "Getting started");
AppsFlyer.sendEvent ("af_tutorial_completion", TutorialCompletiondEvent);
共有 (af_share)
目的
ユーザーはソーシャルメディアでゲームの成果をシェアすることを好みます。シェアはブランド認知を生み出し、さらに多くのユーザーがアプリをダウンロードしてインストールするよう促進することができます。このイベントを記録することで、ユーザーが友達とアプリを共有する可能性が最も高いのはいつかを把握できます。シェアと招待の計測について詳細を参照してください。
トリガー
ユーザーが投稿をソーシャルメディアで共有したとき
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
af_description | ソーシャルメディアでシェアする理由。例えば、高スコアやレベルアップなど。 | 新記録、レベルアップ、ゲーム勝利 |
platform | シェアを投稿するのに使用したプラットフォーム | Facebook、Whatsapp、メール |
コードの例
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DESCRIPTION, "New High Score");
eventValue.put("platform", "Facebook");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SHARE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventShare
withValues: @{
AFEventParamDescription: @"New High Score",
@"platform": @"Facebook"
}];
AppsFlyerLib.shared().logEvent(AFEventShare,
withValues: [
AFEventParamDescription: "New High Score",
"platform": "Facebook"
]);
Dictionary<string, string> ShareEvent = new Dictionary<string, string>();
ShareEvent.Add("af_description", "New High Score");
ShareEvent.Add("platform", "Facebook");
AppsFlyer.sendEvent ("af_share", ShareEvent);
招待 (af_invite)
目的
ユーザーが招待を送信するソーシャルメディアサイトと、アプリのダウンロードとインストールを友人に促すために友人を招待したユーザーの数について理解しましょう。
トリガー
ユーザーがアプリのダウンロードとインストールをすすめるために正常に友人を招待したとき
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
af_description | 招待の背景 | このアプリを使ってみてください。 |
コードの例
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.DESCRIPTION, "Try this app");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.INVITE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventInvite
withValues: @{
AFEventParamDescription: @"Try this app"
}];
AppsFlyerLib.shared().logEvent(AFEventInvite, withValues: [
AFEventParamDescription: "Try this app"
]);
Dictionary<string, string> InviteEvent = new Dictionary<string, string>();
InviteEvent.Add("af_description", "Try this app");
AppsFlyer.sendEvent ("af_invite", InviteEvent);
カスタムイベントで推奨される構造
次のセクションでは、カスタムイべント名と推奨されるイベントパラメーターのイベント構造リストを示しています。アプリ内イベントには、ビジネスニーズを満たすどんなイベントパラメーターを含めることができます。
ボーナス取得 (bonus_claimed)
目的
オファーされたボーナスを取得したユーザー数を把握し、取得されたボーナスをユーザーアクティビティとエンゲージメントに関連付けましょう。
トリガー
ユーザーがボーナスを取得し、彼らのアカウントに反映されたとき
イベントパラメータ
名称 | 説明 | 値の例 |
---|---|---|
bonus_type | ユーザーが取得したボーナスの種類 | コイン |
コードの例
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put("bonus_type", "coins");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "bonus_claimed", eventValue);
[[AppsFlyerLib shared] logEvent:@"bonus_claimed"
withValues: @{
@"bonus_type": @"coins"
}];
AppsFlyerLib.shared().logEvent("bonus_claimed", withValues: [
"bonus_type": "coins"
]);
Dictionary<string, string> BonusClaimedEvent = new Dictionary<string, string>();
BonusClaimedEvent.Add("bonus_type", "coins");
AppsFlyer.sendEvent ("bonus_type", BonusClaimedEvent);