トランザクションイベントの記録
Track in-app purchases and failed transactions to measure revenue and monitor transaction health.
読み終わるまでの所要時間 3 分最終更新 15日前
transactionProductproductsSpentproductsReceivedProducttransactionFailedtransactiontransactionFailedイベントの手動送信
transactiontransactionFailed正常な購入のレポート
以下の例では、transactiontransactionpublic void SendTransaction(){ var productsReceived = new Product() { Items = new List<Item>() { new Item(){ ItemName = "Golden Battle Axe" , ItemType = "Weapon", ItemAmount = 1}, new Item(){ ItemName = "Flaming Sword" , ItemType = "Weapon", ItemAmount = 1}, new Item(){ ItemName = "Jewel Encrusted Shield" , ItemType = "Armour", ItemAmount = 1} }, VirtualCurrencies = new List<VirtualCurrency>() { new VirtualCurrency() { VirtualCurrencyName = "Gold", VirtualCurrencyType = "PREMIUM", VirtualCurrencyAmount = 100 } } }; var productsSpent = new Product() { RealCurrency = new RealCurrency() { RealCurrencyType = "USD", RealCurrencyAmount = 499 } }; AnalyticsService.Instance.Transaction(new TransactionParameters() { ProductsReceived = productsReceived, ProductsSpent = productsSpent, TransactionID = "100000576198248", TransactionName = "IAP - A Large Treasure Chest", TransactionType = TransactionType.PURCHASE, TransactionServer = TransactionServer.APPLE, TransactionReceipt = "ewok9Ja81............991KS==" });}
失敗した購入のレポート
transactionFailedtransactionFailedtransactionFailedpublic void SendTransactionFailed(){ var productsReceived = new Product() { items = new List<Item>() { new Item(){ ItemName = "Golden Battle Axe" , ItemType = "Weapon", ItemAmount = 1}, new Item(){ ItemName = "Flaming Sword" , ItemType = "Weapon", ItemAmount = 1}, new Item(){ ItemName = "Jewel Encrusted Shield" , ItemType = "Armour", ItemAmount = 1} }, VirtualCurrencies = new List<VirtualCurrency>() { new VirtualCurrency() { VirtualCurrencyName = "Gold", VirtualCurrencyType = "PREMIUM", VirtualCurrencyAmount = 100 } } }; var productsSpent = new Product() { RealCurrency = new RealCurrency() { RealCurrencyType = "USD", RealCurrencyAmount = 499 } }; AnalyticsService.Instance.TransactionFailed(new TransactionFailedParameters { FailureReason = "cancelled", ProductsReceived = productsReceived, ProductsSpent = productsSpent, TransactionID = "100000576198248", TransactionName = "IAP - A Large Treasure Chest", TransactionType = TransactionType.PURCHASE, TransactionServer = TransactionServer.APPLE });}
IAP プラグインを使用した自動的な記録
Unity IAP で作成されたトランザクションは、イベントを手動で送信したときと同じtransactiontransactionFailedトランザクションの検証
トランザクション検証では、トランザクションが合法な購入かどうかを確認します。 プラットフォームでは、ダッシュボードに表示されている収益が真正な収益であり、ハッキングまたは改造されたゲームの結果ではないことを確認するために、iOS および Android ストアでトランザクションレシート検証を実施できます。 トランザクション検証を使用するには、以下を行う必要があります。- 関連するストアの検証キーを提供して、Analytics プラットフォームがストアのレシートを検証できるようにします。これは、ダッシュボード の Project Settings (プロジェクト設定) で行うことができます。
- レシート検証パラメーターを イベントに追加して、トランザクションを検証する必要があることをプラットフォームに通知します (これは、ストアによって異なります)。
transaction
revenueValidated値 | 結果 |
|---|---|
| 0 | このトランザクションは、収益検証サービスを使用しておらず、収益チャートに含まれます。 |
| 1 | このトランザクションは検証に合格し、収益チャートに含まれます。 |
| 2 | このトランザクションは検証に不合格で、収益チャートに含まれません。 |
| 3 | このトランザクションはエラーのため検証できず、収益チャートに含まれません。 |
Apple ストア
Analytics では、iOS トランザクションに対してレシート検証が自動的に試行されます。レシートを検証するには以下を iOS トランザクションに追加します。"transactionServer": "APPLE","transactionID":"100000576198248","transactionReceipt": "ewok9Ja81............991KS=="
transactionReceipt Google Play
Google 公開鍵を提供する必要があります。Google キーを更新するには、Project Settings (プロジェクト設定) > In-app purchase (アプリ内課金) (IAP) 設定に移動し、Google ライセンスキーを設定します。 レシートを検証するには以下を Android トランザクションへのトランザクションイベントに追加します。重要: トランザクションレシートと秘密鍵はレシートを検証するために"transactionServer":"GOOGLE","transactionReceipt":"{ \"orderId\":\"GPA.1234-5678-9012-34567\", \"packageName\":\"com.example.app\", \"productId\":\"exampleSku\", \"purchaseTime\":1345678900000, \"purchaseState\":0, \"developerPayload\":\"bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ\", \"purchaseToken\":\"opaque-token-up-to-1000-characters\"}", "transactionReceiptSignature":"rNvoHwiBdLSW+........VncbYVJ61fmfsQ=="
transactionReceiptSignature