Legacy Documentation: Version 5.1
Advanced Integration (SDK)
Custom Events (recommended) (SDK)

Tracking Monetization (recommended) (SDK)

Unity Analytics provides a flexible method for tracking monetization events through in-app purchases. This method should be called every time a player triggers a monetization event.

Currently, we support iOS and Android platforms for receipt verifications. To validate Android monetization, please enter your Google Public Key in Unity Analytics Project Form.

The Transaction method requires a price parameter, a currency and an optional Apple iTunes / Google Play receipt string.

  // Reference the Unity Analytics SDK package
  using UnityEngine.Cloud.Analytics;

  // Use this call for each and every place that a player triggers a monetization event
  UnityAnalytics.Transaction(string productId, decimal price,
  string currency, string receipt,
  string signature);
Name Type Description
productId string The id of the purchased item.
price decimal The price of the item.
currency string Abbreviation of the currency used for the transaction. For example “USD” (United States Dollars). See here for a standardized list of currency abbreviations.
receipt string Receipt data (iOS) or receipt ID (Android) for in-app purchases to verify purchases with Apple iTunes or Google play. Use null in the absence of receipts. For more details see the Receipt Verification setion below.
signature string Android receipt signature. If using native Android use the INAPP_DATA_SIGNATURE string containing the signature of the purchase data that was signed with the private key of the developer. The data signature uses the RSASSA-PKCS1-v1_5 scheme. Pass in null in the absence of a signature.

The example below is for a $0.99 transaction in USD without receipt validation.

UnityAnalytics.Transaction("12345abcde", 0.99m, "USD", null, null);

Receipt Verification

Here are the implementation details:

To track monetization in the SDK you need to call the Transaction method and pass in the necessary parameters.

The Transaction method looks like this:

UnityAnalytics.Transaction(string productId, decimal price, string currency, string receipt, string signature);

example:

UnityAnalytics.Transaction("PRODUCT_ID", 0.99m, "USD", null, null);

We currently support both iOS and Android platforms and also support receipt verification.

With receipt verification, you’ll have the ability to differentiate fraud and real transactions on your dashboard.

For iOS

receipt parameter

  • If you leave this as null, this transaction will show up in Unverified Revenue
  • If you are writing a Native iOS plugin
  • If you are using Unibill plugin
  • If you are using Prime31 plugin
    • Pass in StoreKitTransaction’s “base64EncodedTransactionReceipt” property as the receipt.

signature parameter

Pass in null since this is not used.

For Android

Make sure you have entered your Google Public Key on your dashboard under Integration->Advanced Integration->Monetization

You can get your Google Public Key under Google Play Developer console > All applications > Services & APIs > Your License Key For This Application

receipt parameter

  • If you leave this as null, this transaction will show up as Unverified Revenue
  • If you are writing a Native Android plugin
    • Pass in the the purchase data for the order, which is a String in JSON format that is mapped to the INAPP_PURCHASE_DATA key in the response Intent.
  • If you are using Unibill plugin
  • If you are using Prime31 plugin
    • Pass in GooglePurchase “originalJson” property

signature parameter

  • If you leave this as null, this transaction will show up as Unverified Revenue
  • If you are writing a Native Android plugin
    • Pass in the the signature, which is mapped to the INAPP_DATA_SIGNATURE key in the response Intent.
  • If you are using Unibill plugin
  • If you are using Prime31 plugin
    • Pass in GooglePurchase “signature” property.
Advanced Integration (SDK)
Custom Events (recommended) (SDK)