概要:サブスクリプションに関するアプリ内イベントを設定し送信することで、サブスクリプションとその更新を記録しましょう。
注:これはレガシー機能(旧版)です。新しい完全に自動化 / 改善されたサブスクリプション収益計測の実装をご覧ください。
アプリ内サブスクリプションイベント
サブスクリプション特有の機能を有効化させるために、アプリにてサブスクリプションのステータス確認をしばしば行う必要があります。まさにこの仕組みをAppsFlyerでのサブスクリプションイベント計測に使用し、一旦アプリがサブスクリプションの申込(課金)、更新を認識すればイベントの送信が可能です。
警告
仕様上、もしもユーザーが既にサブスクリプションに申し込んでいるのにアプリを1ヶ月以上起動しなかった場合、その申し込みはイベントとして計測されなくなります。例えば、ユーザーがアプリを起動せずにWeb上でサブスクリプションに申し込んだ場合、申し込み後1ヶ月以上ユーザーがアプリを起動しなければ、そのイベントは計測されません。
アプリ内のサブスクリプションステータスの確認
サーバーと通信するか、サブスクリプションに関するデータをプッシュ通知で受け取ることで、アプリはサブスクリプションのステータスを確認することができます。
サブスクリプションのステータスをアプリ内で確認するよう設定するには、以下2つの方法があります。
- アプリ側でサブスクリプションのステータスと関連データ(アクティブか非アクティブか、購読タイプ、有効期限など)を確認する。
- アプリ側で、サブスクリプションの申込み/更新に関するPush通知を受け取る。
ヒント
Android アプリ:Android の real-time developer notificationsを使用することで、更新状況をリアルタイムにアプリ側で受け取れます。
iOS アプリ:AppleのStore kitが payment queue and transaction observers を提供しており、サブスクリプションの申込みと更新を確認可能です。詳細については、Appleのトランザクションの完了に関するドキュメントを参照してください。
注記
レシート検証はサブスクリプションの計測ではサポートしておりません。
サブスクリプション関連のアプリ内イベントの送信
アプリ側でサブスクリプションに関するデータを取得した際には、以下手順を実行する必要があります。
- アプリ側でそのサブスクリプションイベントが新規申込みか更新を確認。
- アプリ側で関連するデータ(課金額、content_id,、新規申込み or 更新、など)を取得。
- SDKを使用して、そのサブスクリプションイベントをAppsFlyerへ送信。
サブスクリプションイベントの例
パラメータ名 | タイプ | 値の例 | 説明 |
---|---|---|---|
af_revenue | Float | 200 | サブスクリプションに関連する収益 |
af_currency | string | USD, GBP | 通貨単位 |
af_content_id | string | 092, monthly_subscription | サブスクリプションのプラン名/コード名など |
更新 | boolean | true, false | サブスクリプションが新規購入または更新された時 |
イベントコード例
以下のコードスニペットは、SDKを使用したイベントの設定・送信方法を示しています。
Map<String, Object> eventValue = new HashMap<String, Object>();
eventValue.put(AFInAppEventParameterName.REVENUE, 200);
eventValue.put(AFInAppEventParameterName.CURRENCY, "USD");
eventValue.put(AFInAppEventParameterName.CONTENT_ID, "092");
eventValue.put("renewal", true);
AppsFlyerLib.getInstance().logEvent(getApplicationContext(), AFInAppEventType.SUBSCRIBE, eventValue);
[[AppsFlyerLib shared] logEvent:(AFEventSubscribe) withValues: @{
AFEventParamRevenue: @200,
AFEventParamCurrency: @"USD",
AFEventParamContentId: @"092",
@"renewal": @TRUE
}];
AppsFlyerLib.shared().logEvent(AFEventSubscribe,withValues: [
AFEventParamRevenue: 200,
AFEventParamCurrency: "USD",
AFEventParamContentId: "092",
"renewal": true
]);
Dictionary<string, string> SubscriptionEvent = new Dictionary<string, string>();
SubscriptionEvent.Add("af_revenue", "200");
SubscriptionEvent.Add("af_currency", "USD");
SubscriptionEvent.Add("af_content_id", "092");
SubscriptionEvent.Add("renewal", "true");
AppsFlyer.sendEvent("af_subscribe", SubscriptionEvent);
注記
各サブスクリプションのイベントを個々のユーザーに結びつけることを強くお勧めします。そのためには、顧客ユーザーIDが設定されていることを確認してください。顧客ユーザーIDを設定することで、AppsFlyer上で表示されているデータと御社側の顧客を一致させることが可能です。顧客ユーザーIDを設定することで、サブスクリプション関連のイベントも含む全てのイベントが、顧客ユーザーIDと一緒に送信されるようになります。