RevenueCatは、プラットフォーム全体でアプリ内購入とサブスクリプションのライフサイクルを追跡するのに役立ちます。OneSignalを使用すると、このデータを使用して、ユーザーのサブスクリプションステータスに基づいてパーソナライズされたメッセージを送信できます。
この統合により、OneSignalのユーザータグが最新のサブスクリプション情報で自動的に更新されます。
主な利点
RevenueCat–OneSignal統合を使用すると、次のことができます:
- 無料トライアル中のユーザーまたはサブスクライブしたばかりのユーザーにオンボーディングメッセージを送信します。
- チャーンしたユーザーをアンケートや割引で再エンゲージします。
- 購入、請求の問題、または更新のトランザクションメッセージを送信します。
OneSignalの正確なサブスクリプションデータにより、キャンペーンはよりスマートで効果的になります。
セットアップ
OneSignalをRevenueCatに接続する
- RevenueCatダッシュボードで、プロジェクト設定に移動し、統合メニューから「OneSignal」を選択します。
- OneSignalアプリIDとOneSignal APIキーを追加します。詳細については、キーとIDを参照してください。
- RevenueCatが使用するタグ名を入力するか、デフォルトのタグ名を選択します。
RevenueCatにOneSignal IDを渡す
RevenueCatは、OneSignalユーザーID(OneSignal ID)を使用して、RevenueCatユーザーの詳細に基づいてOneSignalのユーザータグを更新します。
安定した識別子のために、OneSignalでExternal IDを設定する必要があります。セッション中に変更されると、OneSignal IDも変更され、RevenueCat接続が切断される可能性があります。
OneSignal IDをRevenueCatに渡すには、次の手順に従います:
OneSignalでExternal IDを設定する
OneSignalのExternal IDをメインユーザーIDに設定します。これは、SDK loginメソッドで実行できます。 OneSignal IDを取得する
OneSignal IDを取得するには、ユーザーステートオブザーバーメソッドを使用することをお勧めしますが、getterメソッドも提供しています:
- ユーザーステートオブザーバー:
- Getterメソッド:
OneSignal IDをRevenueCatに渡す
OneSignal IDをRevenueCatに渡します。
- RevenueCatプロパティ:
$onesignalUserId
- RevenueCatヘルパーメソッド:
setOneSignalUserID()(推奨)
RevenueCatイベントをOneSignalに送信する
OneSignal IDがRevenueCatにマッピングされているユーザーは、タグが自動的に更新されます。
統合のテスト
サンドボックス購入を行う
新しいユーザーがアプリをインストールすることをシミュレートし、アプリフローを進めてサンドボックス購入を完了します。RevenueCatでOneSignal IDが設定されていることを確認してください。
必要なデバイスデータが収集されていることを確認する
RevenueCatで、購入したばかりのテストユーザーの顧客ビューに移動します。必要なすべてのデータがユーザーの属性としてリストされていることを確認してください。
OneSignalイベントが正常に配信されたことを確認する
顧客ビューで、顧客履歴のテスト購入イベントをクリックし、OneSignal統合イベントが存在し、正常に配信されたことを確認します。
OneSignalタグが更新されていることを確認する
OneSignalで、Audience > Usersに移動し、OneSignal IDを検索します。RevenueCatによって更新されたタグが表示されるはずです。
統合が完了しました!ユーザーが購入するか、サブスクリプションステータスを更新すると、OneSignalのタグが自動的に更新されるのが確認できるはずです。
RevenueCatイベントタグ
RevenueCatのすべての自動更新サブスクリプションイベントについて、次のタグがOneSignalのユーザーに追加または更新されます。RevenueCatダッシュボードでタグを空白のままにすることで、特定のタグの値を送信しないことを選択できます。
| タグ | 説明 |
app_user_id | イベントをトリガーしたRevenueCatアプリユーザーID |
period_type | 購入または更新の最新の期間タイプ。次のいずれか:TRIAL(無料トライアル用)、INTRO(または導入価格)、NORMAL(標準サブスクリプション) |
purchased_at | 最新のサブスクリプション購入または更新のエポック時間(秒単位) |
expiration_at | 最新のサブスクリプション有効期限のエポック時間(秒単位) |
store | APP_STORE、PLAY_STORE、またはSTRIPEのいずれか |
environment | SANDBOXまたはPRODUCTIONのいずれか |
last_event_type | ユーザーからの最新のイベントタイプ。次のいずれか:INITIAL_PURCHASE、TRIAL_STARTED、TRIAL_CONVERTED、TRIAL_CANCELLED、RENEWAL、CANCELLATION |
product_id | ユーザーが購入または更新した最新のサブスクリプション製品識別子 |
entitlement_ids | ユーザーがロック解除したRevenueCatエンタイトルメント識別子のカンマ区切り文字列 |
active_subscription | 購入/更新イベントではtrueに設定され、EXPIRATIONではfalseに設定されます |
subscription_status | 下記のサブスクリプションステータス属性を参照 |
grace_period_expiration_at | 請求の問題が発生した場合、猶予期間の有効期限を送信します。 |
- 自動更新サブスクリプションのみ
- RevenueCatは、自動更新サブスクリプションイベントに応じてOneSignalのデータタグのみを更新します。
RevenueCatイベントの例
提供されているJSON例は、RevenueCatイベントに基づいてOneSignalに送信されるタグを示しています。
イベントはlast_event_typeタグとして保存されます。
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1600016247,
"expiration_at": 1602608247,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "initial_purchase",
"last_event_at": 1600016250,
"product_id": "monthly_sub",
"entitlement_ids": "Pro"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "TRIAL",
"purchased_at": 1600031584,
"expiration_at": 1600290784,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "trial_started",
"last_event_at": 1600031586,
"product_id": "three_month_sub_trial",
"entitlement_ids": "Pro"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602136340,
"expiration_at": 1602741140,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "trial_converted",
"last_event_at": 1602114850,
"product_id": "weekly_sub_trial",
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "TRIAL",
"purchased_at": 1602051920,
"expiration_at": 1602311120,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "trial_cancelled",
"last_event_at": 1602129368,
"product_id": "weekly_sub_trial",
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602125078,
"expiration_at": 1604807078,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "renewal",
"last_event_at": 1602122793,
"product_id": "monthly_sub",
"entitlement_ids": "Pro"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602086660,
"expiration_at": 1602691460,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "cancellation",
"last_event_at": 1602118600,
"product_id": "weekly_sub",
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "TRIAL",
"purchased_at": 1663445025,
"expiration_at": 1664049825,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "uncancellation",
"last_event_at": 1663969096,
"product_id": "annual_sub",
"entitlement_ids": "Premium"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"purchased_at": 1602086660,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "non_renewing_purchase",
"last_event_at": 1602118600,
"product_id": "one_time_purchase_product",
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602086660,
"expiration_at": 1602691460,
"store": "PLAY_STORE",
"environment": "PRODUCTION",
"last_event_type": "subscription_paused",
"last_event_at": 1602118600,
"product_id": "weekly_sub",
"auto_resume_at": 1602119600,
"entitlement_ids": null
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"period_type": "NORMAL",
"purchased_at": 1652374230,
"expiration_at": 1652979030,
"last_event_type": "expiration",
"last_event_at": 1652988735
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "TRIAL",
"purchased_at": 1652383957,
"expiration_at": 1654371157,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "billing_issue",
"last_event_at": 1652988776,
"product_id": "annual_sub",
"entitlement_ids": "Premium"
}
}
{
"app_id": "12345678-1234-1234-1234-123456789012",
"tags": {
"app_user_id": "$RCAnonymousID:87c6049c58069238dce29853916d624c",
"period_type": "NORMAL",
"purchased_at": 1602086660,
"expiration_at": 1602691460,
"store": "APP_STORE",
"environment": "PRODUCTION",
"last_event_type": "product_change",
"last_event_at": 1602118600,
"product_id": "weekly_sub",
"new_product_id": "monthly_sub",
"entitlement_ids": null
}
}
subscription_statusタグ
RevenueCatがOneSignalにイベントを送信するたびに、subscription_statusタグが追加または更新され、次のいずれかの値を使用して該当する変更が適用されます:
| ステータス | 説明 |
| active | 顧客は、次回の更新日に更新される予定のアクティブな有料サブスクリプションを持っています。 |
| intro | 顧客は、有料の導入オファーを通じてアクティブな有料サブスクリプションを持っています。 |
| cancelled | 顧客は、次回の更新日に期限切れになる予定の有料サブスクリプションを持っています。 |
| grace_period | 顧客は、更新に失敗した後に猶予期間に入った有料サブスクリプションを持っています。 |
| trial | 顧客は、トライアル期間の終了時に有料に変換される予定のトライアル期間中です。 |
| cancelled_trial | 顧客は、トライアル期間の終了時に期限切れになる予定のトライアル期間中です。 |
| grace_period_trial | 顧客はトライアル期間中で、更新に失敗した後に猶予期間に入りました。 |
| expired | 顧客のサブスクリプションは期限切れになりました。 |
| promotional | 顧客は、RevenueCatを通じてエンタイトルメントにアクセスできます |
| expired_promotional | 顧客は、以前はRevenueCat付与エンタイトルメントを通じてエンタイトルメントにアクセスできましたが、現在は期限切れになっています。 |
| paused | 顧客は、一時停止され、将来のある日付に再開される予定の有料サブスクリプションを持っています。 |
複数のアクティブなサブスクリプションを持つ顧客の場合、この属性は、最新のイベントが発生したサブスクリプションのステータスのみを表します。
FAQ
統合が機能しているかどうかを知るにはどうすればよいですか?
OneSignalで、Audience > Usersに移動し、OneSignal IDを検索します。RevenueCatによって更新されたタグが表示されるはずです。
Audience > Segmentsに移動して、RevenueCat経由で設定したタグをフィルタリングするセグメントを作成することもできます。
いくつのタグを設定できますか?
OneSignalで設定できるタグの数に制限はありませんが、各ユーザーが一度に持つことができるタグの数には制限があります。
詳細については、料金ページを参照してください。