This article describes the two integration types ChartMogul offers for Google Play. Please take time to understand how each type works and decide which one best suits your needs before connecting Google Play to ChartMogul.
ChartMogul offers two options for importing your Google Play data:
- Import my data using the Daily Sales Report (no development required) — ChartMogul imports your data from Google Play’s Daily Sales Reports. This option doesn’t require you to write any code, and it runs automatically after setup.
- I’ll send the payloads via the Payloads URL — ChartMogul provides you with a URL where you send new purchase tokens. We then import the data for each token via the Google Play Developer API. This option requires you to write code but allows you to bring in customer metadata. Read our developer tutorial on importing Google Play purchase payloads.
Each of our integration types has its advantages as well as limitations. We summarize these here and go into detail below.
|Importing using the Daily Sales Report||
|Sending via the Payloads URL||
The integration type you choose will determine the steps you’ll need to complete as part of connecting Google Play to ChartMogul.
Before we look at the key differences between our two integration types, let’s look at how each works from a process perspective.
Importing data using the Daily Sales Report
ChartMogul uses your Google Play credentials to import your Daily Sales Report from Google Play.
Sending data via the Payloads URL
Here is the process for sending data via the Payloads URL:
- First, you enter your Google Play credentials into ChartMogul. ChartMogul verifies them and provides you with a Payloads URL.
- Then you send (e.g., via a script) new purchase tokens to ChartMogul using the Payloads URL
- ChartMogul adds the tokens to its processing queue
- Once each day, ChartMogul imports all subscription-related data from Google Play for each token in the queue
Comparing Integration Types
There are several key differences between our two Google Play integration types and how they work. Please also review these along with the details we include under Other Considerations.
Importing using the Daily Sales Report doesn’t typically require many API requests. This is because downloading the report itself doesn’t count towards your API quota, and ChartMogul only uses the API to retrieve and import product details as plans. Customers who use the Google Play Developer API for other business needs may find this beneficial.
When sending using the Payloads URL, ChartMogul does generate API requests to:
- Validate the purchase tokens you send using your script
- Retrieve and import product details (as plans)
- Check for purchase tokens updates (daily)
The Google Play Developer API has a default limit of 200K requests/day. Therefore, if you have more than 200K active purchase tokens, you may need to request higher Google API quotas to ensure all updates are reported to ChartMogul.
Both integration types handle Google fee calculations, and you can configure ChartMogul to include or exclude fees from your MRR and cash flow metrics.
Additionally, when importing using the Daily Sales Report, ChartMogul reports the taxes paid for each transaction.
Here’s how ChartMogul reports fees and taxes for each integration type:
Example transaction imported using the Daily Sales Report
Example transaction sent via the Payloads URL
Importing using the Daily Sales Report allows you to report on refunds in ChartMogul. However, when sending via the Payloads URL, your Refunds Cash Flow report in ChartMogul won’t include any refunds from Google Play (due to Google Play Developer API limitations).
Refund transactions imported using the Daily Sales Report
Google Play offers Daily Sales Reports starting February 1, 2012. When importing data using the reports, ChartMogul brings in transactions from this date onwards.
If you choose to send data via the Payloads URL, you’ll also need to send your historical data to ChartMogul via URL. Additionally, the Google Developer API doesn’t allow us to retrieve in-app subscriptions that have remained expired for longer than 60 days. As a result, we’re not able to report on these subscriptions. Please write to us if you’d like to import historical data that includes such subscriptions into ChartMogul.
Customers and Transactions
When importing using the Daily Sales Report, ChartMogul only imports customers with successful transactions. When sending using Payloads URL, if there are no successful transactions for a purchase token, ChartMogul reports the customer as a lead.
ChartMogul doesn’t import failed transactions for either integration type.
Also, Google Play does not provide access to customer metadata (e.g., names, email addresses, etc.). It is possible, however, to include customer-specific data in the payloads you submit to ChartMogul (via the Payloads URL).
Time of cancellation
When importing using the Daily Sales Report, ChartMogul recognizes subscription cancellations at the end of their billing period.
When sending via the Payloads URL, ChartMogul recognizes subscription cancellations depending on your Churn recognition settings: either at the end of the service period (default) or at the time of cancellation.
Upgrades, Downgrades, & Reactivations
The Daily Sales Reports don’t provide the information needed to link related transactions. Because of this, ChartMogul isn’t able to report on subscription upgrades, downgrades, and reactivations. Instead, we cancel the existing subscription and create a new customer with a new subscription when a customer upgrades their subscription.
Linking related transactions is possible when sending via the Payloads URL. Therefore, ChartMogul can report on upgrades, downgrades, and reactivations when you use this integration type.
To better understand how this works with each of our integration types, let’s look at an example of a subscription reactivation.
ChartMogul classifies a subscription as Reactivated when a customer who previously canceled their subscription re-subscribes. Learn more about the lifecycle of a subscription in ChartMogul.
Imagine a customer purchased a monthly subscription on July 4, 2018, and canceled the subscription on December 4, 2019.
On December 5, 2019, the customer reactivated their subscription. Google Play then created a new order number and a new purchase token.
If you imported this transaction via the Daily Sales Report, ChartMogul would create a new customer along with a new subscription (due to the limitation we describe above).
However, if you were to send this transaction via the Payloads URL, ChartMogul would report that the customer had canceled their subscription and then eventually reactivated it:
Additionally, ChartMogul would group the transactions and associate them with the customer (since purchase tokens allow us to identify related transactions).
Here are a few additional details you should understand about how ChartMogul integrates with Google Play:
- ChartMogul retrieves updated subscriptions data from Google Play once every 24 hours. As such, data for a given subscription may be out-of-sync with Google Play by as much as 24 hours.
- ChartMogul currently reports revenue only for Google Play in-app subscriptions.
- ChartMogul does not support consumable purchases. Instead, it counts non-subscription users (in-app consumables) as subscription users.
- Google Play does not expose the date the order transaction takes place. Because of this, ChartMogul uses the start date of the subscription period as the transaction date.
- Google Play does not expose introductory prices via the API. If you use this feature, ChartMogul uses the list price to calculate MRR for subscribers who buy at the introductory price.
These details are specific to sending data via the Payloads URL:
- Google Play does not indicate if a transaction amount was prorated. If you offer prorated billing, ChartMogul shows the list price as the amount charged.
- If you have configured grace periods in your Google Play in-app subscriptions, you’ll need to take this into account when setting up delinquent subscription handling in ChartMogul.
- Taxes in Google Play may be inclusive or exclusive, depending on the country where the transaction takes place. In some countries, e.g., the United Kingdom, prices shown to consumers must be the same as the amount charged at the time of payment. As Google doesn't expose any information about tax amounts charged, ChartMogul reports the MRR inclusive of tax.
- ChartMogul tries to calculate and deduct Google's transaction fees from the subscription’s MRR. However, the Google Play Developer API doesn’t provide historical grace periods or account hold periods. For these subscriptions, ChartMogul estimates the fees based on the data available. The same applies to transactions from countries with tax inclusive pricing.