アプリ内収益のトラッキング
アプリ内課金(IAP)、サブスクリプション、カスタム収益ソースからの収益を追跡して、キャンペーンのパフォーマンスと広告費用対効果(ROAS)を測定します。
収益データは3つのチャネルを通じて流れます:
- インタラクティブレポート: Singularダッシュボードで収益指標を表示
- ログのエクスポート: カスタム分析のための詳細なETLデータへのアクセス
- リアルタイムポストバック: 収益イベントを外部プラットフォームへ送信
収益イベントを追跡する理由
- 豊富な分析: 詳細なトランザクションデータを取得し、Singularレポートを強化
- 不正防止: トランザクションの領収書(Google PlayやApple App Storeなど)を含めることで、購入を検証し、アプリ内詐欺に対処します。
- キャンペーンの最適化: 収益とマーケティング活動を結びつけてROIを測定します。
ベストプラクティス完全な購入オブジェクトを渡す
Android(Google Play Billing)またはiOS(StoreKit)のアプリ内課金(IAP)プロセスから返される購入オブジェクトを渡すことを強くお勧めします。 これにより、Singularは以下を含む包括的なトランザクションの詳細を受け取ることができます:
- 商品ID
- 価格
- 通貨
- トランザクションID
- 領収書データ(検証用)
完全な購入オブジェクトを渡すことで、リッチなレポーティングが可能になり、Singularの不正検出機能(特にGoogle Playのトランザクション)を活用できます。
アプリ内課金の統合
IAP購入オブジェクトの取得
Cordova IAP プラグインを使用して、プラットフォームストアから完全なトランザクションの詳細を含む購入オブジェクトを取得します。
- iOS: cordova-plugin-purchaseなどを 使用してStoreKitの購入詳細にアクセスします。
- Android Google Play Billing の購入詳細を取得するには cordova-plugin-purchase などを使用します。
SingularIAP コンストラクタ
プラットフォーム固有のレシート検証や不正防止を行い、収益を追跡するためのアプリ内課金オブジェクトを作成します。
コンストラクタのシグネチャ :
function SingularIAP(product: Object): SingularIAP
コンストラクタの完全なリファレンスは、 SingularIAPコンストラクタのリファレンスを 参照してください。
完全な IAP 実装例
IAP イベントをキャプチャし、プラットフォーム固有の購入オブジェクトとともに Singular に送信する、完全な購入リスナーを実装します。
// Import Singular SDK and SingularIAP constructor
var Singular = cordova.plugins.SingularCordovaSdk;
var SingularIAP = cordova.require('singular-cordova-sdk.SingularIAP');
// iOS App Store purchase example
function handleiOSPurchase(purchase) {
// Create iOS product object
var iosProduct = {
currency: 'USD',
price: 4.99,
id: 'com.app.premiumgems',
transaction: {
type: 'ios-appstore',
appStoreReceipt: purchase.receipt, // Base64 receipt from StoreKit
id: purchase.transactionId // Transaction identifier
}
};
// Create SingularIAP object
var iosIAP = new SingularIAP(iosProduct);
// Track the purchase with Singular
// The SingularIAP object is passed as additional args
cordova.plugins.SingularCordovaSdk.eventWithArgs('iap_purchase', iosIAP);
}
// Android Play Store purchase example
function handleAndroidPurchase(purchase) {
// Create Android product object
var androidProduct = {
currency: 'USD',
price: 4.99,
id: 'com.app.premiumgems',
transaction: {
type: 'android-playstore',
receipt: purchase.receipt, // JSON receipt from Google Play
signature: purchase.signature // Signature from Google Play
}
};
// Create SingularIAP object
var androidIAP = new SingularIAP(androidProduct);
// Track the purchase with Singular
cordova.plugins.SingularCordovaSdk.eventWithArgs('iap_purchase', androidIAP);
}
// Example integration with cordova-plugin-purchase
document.addEventListener('deviceready', function() {
// Initialize the store
store.register({
id: 'com.app.premiumgems',
type: store.CONSUMABLE
});
// Handle purchase approved
store.when('com.app.premiumgems').approved(function(product) {
// Determine platform and handle accordingly
if (device.platform === 'iOS') {
handleiOSPurchase(product.transaction);
} else if (device.platform === 'Android') {
handleAndroidPurchase(product.transaction);
}
// Finish the transaction
product.finish();
});
// Refresh the store
store.refresh();
});
キーポイント
-
SingularIAPコンストラクタは、iOS と Android 両プラットフォーム用の購入データをフォーマットします。 -
eventWithArgs()のargsパラメータとして、結果の IAP オブジェクトを渡します。 - IAPオブジェクトには不正防止のためのレシート検証データが含まれています。
- Singularは収益、通貨、商品の詳細を自動的に抽出します。
手動による収益追跡
購入検証なしの収益
通貨、金額、オプションの商品詳細を購入オブジェクトなしで渡すことで、収益をトラッキングします。このメソッドは検証用のトランザクションレシートを提供しないことに注意してください。
重要:
有効な購入オブジェクトなしで収益イベントを送信する場合、Singular はトランザクションを検証しません。 可能な限り、上記の
SingularIAP
コンストラクタを使用することを強くお勧めします。
注意:
通貨は 3 文字の ISO 4217 通貨コードで渡します。例:
USD
,
EUR
,
INR
.
収益メソッド
指定した通貨と金額の単純な収益イベントを追跡します。
// Track revenue without product details
cordova.plugins.SingularCordovaSdk.revenue('USD', 4.99);
メソッドの署名 :
revenue(currency: string, amount: number): void
メソッドの完全なリストについては、 Revenue メソッド・リファレンスを 参照してください。
RevenueWithArgs メソッド
指定した通貨、金額、および追加のカスタム属性を持つ収益イベントを追跡します。
// Track revenue with attributes
cordova.plugins.SingularCordovaSdk.revenueWithArgs('USD', 9.98, {
productSKU: 'coin_package_abc123',
productName: 'Coin Pack 10',
productCategory: 'Bundles',
productQuantity: 2,
productPrice: 4.99,
transaction_id: 'T12345'
});
メソッドのシグネチャ :
revenueWithArgs(currency: string, amount: number, args: Object): void
メソッドの完全なリストについては、 revenueWithArgs メソッド・リファレンスを 参照してください。
CustomRevenue メソッド
指定したイベント名、通貨、および金額を持つカスタム収益イベントを追跡します。
// Track custom revenue event
cordova.plugins.SingularCordovaSdk.customRevenue('PremiumUpgrade', 'USD', 9.99);
メソッド・シグネチャ :
customRevenue(eventName: string, currency: string, amount: number): void
メソッドの完全なリストについては、 customRevenue メソッドのリファレンスを 参照してください。
CustomRevenueWithArgs メソッド
指定したイベント名、通貨、金額、および追加のカスタム属性を持つカスタム収益イベントを追跡します。
// Track custom revenue event with attributes
cordova.plugins.SingularCordovaSdk.customRevenueWithArgs('PremiumBundlePurchase', 'USD', 99.99, {
productSKU: 'premium_bundle_xyz',
productName: 'Premium Bundle',
productCategory: 'Bundles',
productQuantity: 1,
productPrice: 99.99,
discount_applied: true
});
メソッドのシグネチャ :
customRevenueWithArgs(eventName: string, currency: string, amount: number, args: Object): void
メソッドの完全なリストについては、 customRevenueWithArgs メソッド・リファレンスを 参照してください。
サブスクリプション収益
サブスクリプションのトラッキング
Singularは、Singular SDKを使ったサブスクリプションイベントの実装に関する包括的なガイドを提供しています。このガイドでは、様々なプラットフォームにおけるアプリ内サブスクリプションイベントのトラッキングをカバーしています。
- サブスクリプション収益をトラッキングしたい場合は、 サブスクリプションイベント技術実装ガイドを お読みください。
ハイブリッドイベント追跡(上級者向け)
Singularでは、最適なアトリビューションのために、アプリに統合されたSingular SDKを通してすべてのイベントと収益を送信することを推奨しています。ただし、Singularは必要に応じて他のソースからイベントを収集することができます。
Singular SDK以外で送信されたイベントは、Singularの サーバー間イベントドキュメンテーション要件に 準拠し、正しいアトリビューションのために一致するデバイス識別子を提供する必要があります。
重要です:
Server-to-Server イベントリクエストで使用されるデバイス識別子がSingularで一致しない場合、不一致が発生します。以下の可能性に注意してください:
- 初期イベント: Singular SDKがアプリセッションからデバイス識別子を記録する 前に イベントリクエストを受信した場合、そのイベントリクエストは未知のデバイスの「最初のセッション」とみなされ、Singularはそのデバイスを オーガニックアトリビューションとして アトリビュートします。
- 識別子の不一致: Singular SDKがデバイス識別子を記録したが、それがServer-to-Server Eventリクエストで指定されたデバイス識別子と異なる場合、イベントは 正しく帰属されません 。
ハイブリッドイベント追跡ガイド
内部サーバーからのイベントの送信
内部サーバーから収益データを収集し、キャンペーンのパフォーマンスとROIを分析します。
要件
- デバイス識別子を取得する: アプリ内登録またはログインイベントから、デバイス識別子をキャプチャして渡し、このデータをユーザーIDと共にサーバーに保存します。デバイス識別子はユーザーによって変更される可能性があるため、ユーザーがアプリセッションを生成したときに識別子を更新します。これにより、サーバー側のイベントが正しいデバイスに帰属することが保証されます。
- プラットフォーム固有の識別子: サーバー側イベントはプラットフォーム固有であり、デバイス・プラットフォームに一致するデバイス識別子(例えば、iOSデバイスの場合はIDFAまたはIDFV、Androidデバイスの場合はGAID)を使用して送信する必要があります。
- リアルタイム更新: Singular Internal BIのポストバックメカニズムを使用して、内部エンドポイントにリアルタイムでイベントをプッシュし、サーバー側でデータセットを更新できるようにします。 内部BIポストバックのFAQを 参照してください。
- 実装の詳細: 詳細については、『サーバー間統合』ガイドの「 収益の追跡 」セクションを参照してください。
収益プロバイダからのイベントの送信
RevenueCatやadaptyのようなサードパーティの収益プロバイダーを統合して、購入や購読の収益をSingularに送信します。
サポートしているプロバイダー
- RevenueCat: 詳細は RevenueCatのドキュメントを ご覧ください。
- adapty 詳細は adaptyのドキュメントを ご覧ください。
- Superwall 詳細は Superwallのドキュメントを ご覧ください。
- Xsolla 詳細は Xsollaのドキュメントを ご覧ください。
セグメントからのイベント送信
Segmentに "Cloud-Mode "送信先を追加することで、Singular SDKと並行してSegmentからSingularへイベントを送信できるようになります。
詳細な設定方法については、実装ガイド Singular-Segment Integrationに従って ください。