How to connect Google Play to ChartMogul

You will need to be an Admin in ChartMogul and the Account Owner in Google Play Developer Console to complete the following steps.

Before you begin

Unlike other integrations our team has built, the Google Play integration does not automatically import new or existing data. The steps in this article will help you create a payloads URL which will allow your developer to send data with minimal formatting.


After completing the steps below you will need a developer to manually send data known as payloads. Without sending payloads, customer data will not populate in ChartMogul.


The steps to use that payloads URL once it's been generated can be found in our developer tutorial.


Connecting your Google Play account

  1. First, you need to link your Play Developer account to a Google Developer Project.
    • Go to your Play Console settings

    • Click on API access

    • Click on the Link button to connect your Play account to a Google Developer Project

  2. Next, you need to create a service account for ChartMogul to communicate with Google Play.

    • Click on the Create Service Account button1c2f015-Screen_Shot_2018-05-08_at_9.12.47_AM__1_.png

    • Click through to the Google API Console
    • Click on the link to Create Service Account
    • Give the Service Account a name and description, and hit Create
    • Set the role to Project > Owner
    • Create and download the JSON key for the service account
  3. Grant financial access to the newly created service account.
    • Back in the Play Console, click on Done in the modal and ensure the newly created service account appears in the list.
    • Click on the Grant Access button next to it
    • Set the role to Finance and add the Manage Orders permission.
    • Click on the Save button.
  4. Click the data platform icon on the left menu to navigate to the Data platform tab. Alternatively, you can click the link mentioned below to directly move to the data platform tab -
  5. Add a data source by clicking Add a data source button in the Home section
  6. In the popup, select "Google Play"
  7. Once you select your data source type, enter a name for your data source and click on NextScreenshot_2020-03-24_at_22.20.45.png
  8. Enter the package name for your app and the select the JSON key file for the service account you created in step 2. Click on Connect.

  9. If connecting to the Google Play service account was successful, a Payloads URL will be generated and displayed.

  10. Use the Payloads URL to import historical and new Google Play purchases into ChartMogul. Read the developer tutorial for importing purchase payloads.


What you need to know:

  • ChartMogul currently reports revenue only for Google Play in-app subscriptions.
  • Google Play does not directly notify ChartMogul of new purchases, nor does it list all past purchases. For this reason, we rely on you, the mobile app developer, to import in-app purchases into ChartMogul. Learn how in our developer tutorial.
  • In-app Subscriptions that have remained expired for longer than 60 days are not retrievable from Google Developer APIs. This means that ChartMogul cannot automatically report on any such subscriptions. If you have historical data of such subscriptions and want to import it please write to us.
  • Google Play does not expose personally identifiable information of subscribers like name and email, but you can include that information while submitting purchase tokens to ChartMogul.
  • Our integration checks and updates subscriptions every 24 hours. This means that any updates to subscriptions already imported and reported in ChartMogul will come through once in 24 hours. However, you can send us new purchase tokens 24/7 at the Payloads URL.
  • If there are no successful transactions for a purchase token, then the respective customer will be reported as a Lead in ChartMogul. ChartMogul will not import any failed transactions.
  • Some subscription cancellations may appear in ChartMogul before the subscriber's eligibility for the service runs out. This is because subscribers can cancel anytime during their paid subscription period and they will continue to receive the benefits until the paid period runs out. Meanwhile, the integration will register the time that the user cancelled their subscription as the cancellation time, instead of the end of the billing period.
  • Google Play Developer API has a rate limit of 200k reqs/day. This means that if you have more than 200k active purchase tokens, you might need to request higher quotas on the Google APIs console to ensure that all updates are reported in ChartMogul.
  • Google Play does not expose introductory prices via the API. If you use this feature, subscribers who buy at the introductory price will be reported with MRR based on the list price. Unfortunately, this is a limitation at Google's end that we cannot overcome.
  • Google Play does not expose any prorated prices that are charged. If you allow for prorated changes in your in-app subscription offerings, the charge amount will always show as the list price. Unfortunately, this is a limitation at Google's end that we cannot overcome.
  • If you have configured grace periods in your Google Play in-app subscriptions, be sure to account for them while setting up delinquent subscription handling in ChartMogul.
  • Taxes in Google Play may be inclusive or exclusive depending on the country that the charge is taking place in. In some countries, prices shown to buyers on search and detail pages must equal the amount paid at time of payment, for example, the United Kingdom. Google doesn't expose any information about tax amounts that are charged however meaning that the MRR reported by ChartMogul will, therefore, include tax.
  • ChartMogul tries to calculate Google's transaction fees and deduct them from MRR calculation. However, historical grace periods and account hold periods are not exposed by Google APIs and therefore, for subscriptions that have had them, the calculated transaction fees might not be fully accurate. This also applies to transactions from countries where taxes are included in the price where the calculated transaction fees may also not be completely accurate.
  • Google Play does not expose any refund amounts via the API. This means that your refunds cashflow report will not include any refunds from your Google Play datasource. Unfortunately, this is a limitation at Google's end that we cannot overcome.
  • Google Play does not expose any date when the order transaction happened. Because of this, we will be using the start date of the subscription period as the transaction date. Unfortunately, this is a limitation at Google's end that we cannot overcome.   
  • ChartMogul does not support consumable purchases. Non-subscription users (in-app consumables) are counted as subscription users.