public class GooglePlayMonetizationEventBuilder extends MonetizationEventBuilder
The example below demonstrates how to create a monetization event after you receive the purchase org.json.JSONObject on the completion of a purchase using Google's In App Billing API. Since Google does not give you any product information in the purchase object, you must have a way to access your store inventory when the purchase is being finalized. In the example below, we use a org.json.JSONObject that was returned by a request to Google's In App Billing API for product skus.
// get the event client from your MobileAnalyticsManager instance
EventClient eventClient = mobileAnalyticsManager.getEventClient();
// create a builder that can record purchase events for Google Play IAP
GooglePlayMonetizationEventBuilder builder = GooglePlayMonetizationEventBuilder.create(eventClient);
// build the monetization event with the product id, formatted item price, transaction id, and quantity
// product id and formatted item price can be obtained from the JSONObject returned by a product sku request to Google's In App Billing API
// transaction id is obtained from the Purchase object that is returned upon the completion of a purchase
// Google IAP currently only supports a quantity of 1
Event purchaseEvent = builder.withProductId(sku).withFormattedItemPrice(price).withTransactionId(purchase.getOrderId()).withQuantity(1).build();
// record the monetization event
eventClient.recordEvent(purchaseEvent);
| Modifier | Constructor and Description |
|---|---|
protected |
GooglePlayMonetizationEventBuilder(EventClient eventClient)
Construct a GooglePlayMonetizationEventBuilder with the specified
EventClient
|
| Modifier and Type | Method and Description |
|---|---|
static GooglePlayMonetizationEventBuilder |
create(EventClient eventClient)
Create a GooglePlayMonetizationEventBuilder with the specified Event
client
|
protected boolean |
isValid()
Returns true only if the ProductId, Quantity, Formatted Item Price, and
Transaction Id are set
|
GooglePlayMonetizationEventBuilder |
withFormattedItemPrice(java.lang.String formattedItemPrice)
Sets the formatted localized item price of the item being purchased
(accessed from the product item details price field after calling
getSkuDetails()).
|
GooglePlayMonetizationEventBuilder |
withProductId(java.lang.String productId)
Sets the product identifier field of the item being purchased.
|
GooglePlayMonetizationEventBuilder |
withQuantity(java.lang.Double quantity)
Sets the quantity of the item purchased.
|
GooglePlayMonetizationEventBuilder |
withTransactionId(java.lang.String transactionId)
The transaction identifier of the purchase.
|
build, getCurrency, getFormattedItemPrice, getItemPrice, getProductId, getQuantity, getStore, getTransactionId, setCurrency, setFormattedItemPrice, setItemPrice, setProductId, setQuantity, setStore, setTransactionIdprotected GooglePlayMonetizationEventBuilder(EventClient eventClient)
eventClient - The EventClient to use when building the eventpublic static GooglePlayMonetizationEventBuilder create(EventClient eventClient)
eventClient - The event client to use when creating monetization eventspublic GooglePlayMonetizationEventBuilder withProductId(java.lang.String productId)
productId - The product id representing the item being purchasedpublic GooglePlayMonetizationEventBuilder withFormattedItemPrice(java.lang.String formattedItemPrice)
formattedItemPrice - The localized formatted price of the itempublic GooglePlayMonetizationEventBuilder withQuantity(java.lang.Double quantity)
quantity - Currently, Google Play only supports purchasing 1 item at a
time.public GooglePlayMonetizationEventBuilder withTransactionId(java.lang.String transactionId)
transactionId - The orderId found in the INAPP_PURCHASE_DATA of a purchase
requestprotected boolean isValid()
isValid in class MonetizationEventBuilder