概要:この記事で提案されている通信・テレコミュニケーション向けのイベントを記録して、ユーザージャーニー全体を通してユーザーの質を計測しましょう。
情報通信
通信アプリを使用すると、携帯電話プランやデータプランなどを購入および管理できます。通信アプリで計測が推奨される一般的なアプリ内イベントには、購入、料金チャージ、サブスクリプションなどが含まれます。
このイベントを計測することで、次のことを決定することができます。
- 最も人気のあるゲートウェイプランはどれか
- ユーザーが購入できる手頃な製品やパッケージはどれか
- どのプランが長期契約に最もつながりやすいか
アプリ内イベント計測の詳細については、リッチアプリ内イベントガイドを参照してください。
規定イベントで推奨される構造
次のセクションでは、通信・テレコミュニケーションアプリで一般的なイベント構造のリストを示しています。各構造には、既定のイベント名と推奨されるイベントパラメーターが含まれています。アプリ内イベントには、ビジネスニーズを満たすどんなイベントパラメーターを含めることができます。
ログイン (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<>();
eventValue.put(AFInAppEventParameterName.REGISTRATION_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> CompleteRegistrationEvent = new Dictionary<string, string>();
CompleteRegistrationEvent.Add("af_registration_method", "Facebook");
AppsFlyer.sendEvent ("af_complete_registration", CompleteRegistrationEvent);
コンテンツ表示 (af_content_view)
目的
特定の製品の表示率を決定し、
- 商品の閲覧と販売を関連付けます
- 商品の閲覧に基づいて、どのカテゴリが最も人気があるかを理解できます
- 購入者の通貨と閲覧している商品との相関性を確認します
トリガー
ユーザーが特定の製品詳細ページを閲覧したとき
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
af_price | 商品価格 | 200 |
af_content_id | プロダクトID | 102 |
af_content_type | プロダクトカテゴリ | インターネットパッケージ |
af_currency | 製品詳細ページの通貨 | THB, USD |
コードの例
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.PRICE, 200);
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "102";
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "Internet packages");
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.CONTENT_VIEW, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventContentView
withValues: @{
AFEventParamPrice: @200,
AFEventParamContentId: @"102",
AFEventParamContentType: @"Internet packages",
AFEventParamCurrency: @"USD"
}];
AppsFlyerLib.shared().logEvent(AFEventContentView,
withValues: [
AFEventParamPrice: 200,
AFEventParamContentId: "102",
AFEventParamContentType: "Internet packages",
AFEventParamCurrency: "USD"
]);
Dictionary<string, string> ContentViewEvent = new Dictionary<string, string>();
ContentViewEvent.Add("af_price", "200");
ContentViewEvent.Add("af_content_type", "Internet packages");
ContentViewEvent.Add("af_currency", "USD");
AppsFlyer.sendEvent("af_content_view", ContentViewEvent);
リスト表示 (af_list_view)
目的
どのリスト(例えば、最新商品、関連商品、おすすめ商品など)が一番閲覧されているかを記録しましょう。
トリガー
ユーザーが特定のリストを閲覧したとき
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
af_content_type | リストのタイプ | 関連商品、おすすめ商品、新商品 |
af_content_list | カテゴリのコンテンツIDのリスト | 001, 092 |
コードの例
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "related products");
eventValue.put(AFInAppEventParameterName.CONTENT_LIST, new String[] {"001", "092"});
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_list_view", eventValue);
[[AppsFlyerLib shared] logEvent:AFEventListView
withValues: @{
AFEventParamContentType: @"related products",
AFEventParamContentList: @[@"001", @"092"]
}];
AppsFlyerLib.shared().logEvent(AFEventListView,
>withValues: [
AFEventParamContentType: "related products",
AFEventParamContentList: ["001", "092"]
]);
Dictionary<string, string> ListViewEvent = new Dictionary<string, string>();
ListViewEvent.Add("af_content_type", "related products");
ListViewEvent.Add("af_content_list", "['001', '092']");
AppsFlyer.sendEvent("af_list_view", ListViewEvent);
購入 (af_purchase)
目的
通信アプリの多くでは、ユーザーが追加データプランなどを購入することができます。このイベントを計測することで、次のことが可能になります。
- アドネットワークと広告代理店間のユーザーのLTV(顧客生涯価値)とキャンペーンのROIを判断します。
- どのようなオファーがユーザーに最も人気があるのかを特定します。
- キャンペーンのターゲティングを最適化するために、購入されたアイテムとキャンペーンを相互参照します。
トリガー
購入が正常に完了しユーザーに「ありがとうございました」が表示されたとき
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
af_revenue | 購入による収益の予測 | 2000 |
af_currency | Currency code | THB |
af_content_type | 購入されたパッケージ名 | 5G |
af_order_id | 注文ID | 9277 |
payment_method_type | 決済方法の種類 | credit card, local payment |
コードの例
Map<String, Object> eventValue = new HashMap<>();
eventValue.put(AFInAppEventParameterName.REVENUE, 2000);
eventValue.put(AFInAppEventParameterName.CURRENCY, "THB");
eventValue.put(AFInAppEventParameterName.CONTENT_TYPE, "5G");
eventValue.put("AFInAppEventParameterName.ORDER_ID", "9277");
eventValue.put("payment_method_type", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(),AFInAppEventType.PURCHASE, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventPurchase
withValues: @{
AFEventParamRevenue: @2000,
AFEventParamCurrency: @"THB",
AFEventParamContentType: @"5G",
AFEventParamContentTypeOrderId: @"9277",
@"payment_method_type": @"credit_card"
}];
AppsFlyerLib.shared().logEvent(AFEventPurchase,
withValues: [
AFEventParamRevenue: 2000,
AFEventParamCurrency: "THB",
AFEventParamContentType: "5G",
AFEventParamContentTypeOrderId: "9277",
"payment_method_type": "credit_card",
]);
Dictionary<string, string> purchaseEvent = new Dictionary<string, string>();
purchaseEvent.Add("af_revenue", "2000");
purchaseEvent.Add("af_currency", "THB");
purchaseEvent.Add("af_content_type", "5G");
purchaseEvent.Add("af_order_id", "9277");
purchaseEvent.Add("payment_method_type", "credit_card");
AppsFlyer.sendEvent ("af_purchase", purchaseEvent);
チャージ/トップアップ成功 (af_top_up_success)
目的
料金チャージは、パッケージやアプリ内で提供されているその他のサービスを購入するために使用されます。このイベントを記録し、他のデータと比較することでユーザーについて詳しく理解しましょう。例えば、ユーザーがアカウントに入金する金額を知り、チャージ金額を使用して、予算内でカスタマイズされたキャンペーンをターゲットにすることができます。
トリガー
ユーザーがチャージを完了したとき
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
af_revenue | チャージ金額 | 2000 |
top_up_id | チャージのID | 397 |
payment_method_type | 決済方法の種類 | credit card, local payment |
コードの例
Map<String, Object> eventValue = new HashMap<>();eventValue.put(AFInAppEventParameterName.REVENUE, 2000); eventValue.put("TOP_UP_ID", "397"); eventValue.put("PAYMENT_METHOD_TYPE", "credit_card");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.AF_TOP_UP_SUCCESS, eventValue);
[[AppsFlyerLib shared] logEvent:AFEventTopUpSuccess
withValues: @{
AFEventParamRevenue: @2000,
@"top_up_id": @"397",
@"payment_method_type": @"credit_card"
}];
AppsFlyerLib.shared().logEvent(AFEventTopUpSuccess, tele
withValues: [
AFEventParamRevenue: 2000,
"top_up_id": "397",
"payment_method_type": "credit_card",
]);
Dictionary<string, string> TopUpSuccessEvent = new Dictionary<string, string>();
TopUpSuccessEvent.Add("af_revenue", "2000");
TopUpSuccessEvent.Add("top_up_id", "397");
TopUpSuccessEvent.Add("payment_method_type", "credit_card");
AppsFlyer.sendEvent ("af_top_up_success", TopUpSuccessEvent);
チャージ/トップアップ失敗 (af_top_up_unsuccessful)
目的
このイベントを記録し、他のデータと比較することでユーザーについて詳しく理解しましょう。例えば、チャージしようとしたが失敗したユーザー数を知ることができます。
トリガー
ユーザーがチャージしようとしたが、アクションが失敗したとき
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
error_reason | チャージ失敗の理由 | exceeded_daily_limit |
コードの例
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("error_reason", "exceeded_daily_limit");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_top_up_unsuccessful", eventValue);
[[AppsFlyerLib shared] logEvent:@"af_top_up_unsuccessful" withValues: @{
@"error_reason": @"exceeded_daily_limit"}];
AppsFlyerLib.shared().logEvent("af_top_up_unsuccessful",withValues:
["error_reason": "exceeded_daily_limit" ])
Dictionary<string, string> TopUpUnsuccessfulEvent = new Dictionary<string, string>();
ErrorReasonEvent.Add("error_reason", "exceeded_daily_limit");
AppsFlyer.sendEvent ("af_top_up_unsuccessful
", TopUpUnsuccessfulEvent);
サブスクリプション完了 (af_subscription_complete)
目的
このイベントを計測することで、次のことが可能になります。
- どのキャンペーンがユーザーのサブスクリプションに結び付いたかを確認できます。
- サブスクライブしたユーザーの数を、サブスクリプションを停止したユーザー数と比較します。
- サブスクリプションから発生した収益を計測し、キャンペーンやメディアソースに関連付けます。
トリガー
- ユーザーが正常にサブスクリプションを完了したとき
- サブスクリプションが更新された日時
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
af_subscription_type | サブスクリプションの種類 | Monthly 30 GB |
af_revenue | サブスクリプションの金額 | 555 |
コードの例
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("af_subscription_type", "Monthly 30 GB");
eventValue.put("af_revenue", "555");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "af_subscription_complete", eventValue);
[AppsFlyerLib shared] logEvent:@"af_subscription_complete" withValues:@{
@"af_subscription_type": @"Monthly 30 GB",
@"af_revenue": @"555"}];
ApAppsFlyerLib.shared().logEvent("af_subscription_complete", withValues:
[ "af_subscription_type": "Monthly 30 GB",
"af_revenue": "555"])
Dictionary<string, string> SubscriptionCompleteEvent = new Dictionary<string, string>();
SubscriptionCompleteEvent.Add("af_subscription_type", "Monthly 30 GB");
SubscriptionCompleteEvent.Add("af_revenue", "555");
AppsFlyer.sendEvent ("af_subscription_complete", SubscriptionCompleteEvent);
カスタムイベントで推奨される構造
次のセクションでは、カスタムイべント名と推奨されるイベントパラメーターのイベント構造リストを示しています。アプリ内イベントには、ビジネスニーズを満たすどんなイベントパラメーターを含めることができます。
パッケージの選択 (select_package)
目的
ユーザーがパッケージの購入を決めたが、まだ決済をしていないことを記録しましょう。このデータを活用して、例えば、ユーザーをリターゲティングしてその他のサービスを宣伝することができます。
トリガー
ユーザーがパッケージを選択したがまだ決済を完了していないとき
イベントパラメータ
名称 | 説明 | 値の例: |
---|---|---|
price | サブスクリプションの価格 | 50000 |
af_content_type | ユーザーが選択したコンテンツの内容 | Data 5 GB |
コードの例
Map<String, Object> eventValue = new HashMap<>();
eventValue.put("price", "50000");
eventValue.put("af_content_type ", "Data 5 GB ");
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), "select_package", eventValue);
[[AppsFlyerLib shared] logEvent:@"select_package" withValues: @{
@"price": @"50000",
@"af_content_type ": @"Data 5 GB "}];
AppsFlyerLib.shared().logEvent("select_package", withValues:
[ "price": "50000",
"af_content_type ": "Data 5 GB "])
Dictionary<string, string> SelectPackageEvent= new Dictionary<string, string>();
SelectPackageEvent.Add("price", "50000");
SelectPackageEvent.Add("af_content_type ", "Data 5 GB ");
AppsFlyer.sendEvent ("select_package", SelectPackageEvent);