Custom Purchase Reporting
Report purchases that are made outside of the Beamable payment flow and validation [ECON-Stores-06]
Introduction
As a game maker you will find that in some cases you need to be able to report purchases from outside the Beamable store flow. Beamable provides you with a way to do this through a small configuration change in Portal and some client side tracking code.
Configuration
As shown in the above example, you will need to set a key in your Realm configuration to override purchase reporting to enable this functionality. Without this configuration change the API will error and not report anything.
Here we are setting the namespace to payments and then the key is client_audits and we will set the value to true.
Security Warning
This feature is not secure unless you track this from within a MicroService and validate the purchase. It is highly advisable to do so in order to not allow a customer to spoof or false track a purchase.
Implementation
Once your configuration has been setup to allow this API to function, then you can use the .Api.PaymentService.Track
API to track the purchase.
Property | Details |
---|---|
purchaseId | An arbitrary ID to represent the purchase or transaction |
store | An arbitrary store name to represent the provider in which the purchase was validated through |
skuProductId | An arbitrary id to represent the sku from the provider |
skuName | An arbitrary name to represent the sku from the provider |
isoCurrencySymbol | the ISO symbol (eg: "usd" ) as a string to represent the currency the purchase was made in |
priceInLocalCurrency | the amount of the purchase, this property is a Double datatype |
obtainCurrency | [Optional] Currency you wish to automatically grant after tracking of this purchase |
obtainItem | [Optional] Items you wish to automatically grant after tracking of this purchase |
Here is a code example of how this API call could look.
var trackPurchasePayload = new TrackPurchaseRequest(
"12345",
"MyThirdPartyProvider",
"my_product_item_01",
"My Product 01",
5.99,
"usd",
new List<ObtainCurrency>()
{
new ObtainCurrency()
{
amount = 1000,
originalAmount = 1000,
symbol = "GOLD"
}
},
new List<ObtainItem>()
{
new ObtainItem()
{
contentId = "ContentIdOfMyItemToGrant"
}
}
);
await _playerContext.Api.PaymentService.Track(trackPurchasePayload);
View Results
Once you do the above tracking, you can view the results by going to the Portal and clicking on *Real Money Transactions under the Monetization section. After a few minutes, the tracking that was posted should appear there and you can view the details of your transactions.
In addition, the dashboards on the Realm should reflect the purchase as well!
Updated about 1 year ago