Search
Clear search
Close search
Google apps
Main menu
true

Download & export monthly reports

Using the web version of your Play Console, you can download monthly reports about individual apps to help you track and understand your app's performance.

Types of reports

Detailed reports

Detailed reports include data on individual events.

  • Crashes & application not responding errors (ANRs)
  • Reviews
  • Financial: earnings, estimated sales, and payouts
Aggregated reports

Aggregated reports include consolidated data (averages, daily totals, etc.) for app statistics.

  • Statistics: installs, ratings, crashes, Firebase Cloud Messaging (FCM), and subscriptions
  • User acquisition: Retained installers, Buyers (7 days after install)

Download reports

  1. Sign in to your Play Console.
  2. Click Download reports Reports.
  3. On the left menu, select a report.
  4. Under "Select an application," type and select your app's name.
  5. Select the year and month of the report you want to download.

Note: Financial reports include all apps in your account.

Download reports from Google Cloud Storage

Reports are available from Google Cloud Storage. Reports are generated daily and accumulated in monthly CSV files. They are stored in a private Google Cloud Storage bucket for your Google Play Developer account.

You can access reports using Google Cloud Storage on your browser or programmatically using gsutil. You can also use other tools to programmatically access your Cloud Storage bucket.

Tip: If you want to import your reports from Google Cloud Storage into BigQuery, you need to convert the CSV files from UTF-16 to UTF-8.

Find your Google Cloud Storage bucket ID

Your Google Cloud Storage bucket ID is listed near the bottom of your Reports pages.

Your bucket ID begins with pubsite_prod_rev (example: pubsite_prod_rev_01234567890987654321).

Download reports using a command line tool
  1. Install the gsutil tool.
    • Be sure to authenticate your account using an account with access to your Play Console.
    • During the setup process, if you're using gsutil for the first time and don't have any other projects configured in Google Cloud Storage, you can type your app's name when you're prompted for a project ID.
  2. Find your reporting bucket ID on one of your Download reports pages, near the bottom of the page.
    • Your bucket ID begins with: pubsite_prod_rev (Example: pubsite_prod_rev_01234567890987654321).
  3. Use the gsutil cp command to download reports.

Reports are organized in directories named after each type of report. CSV file names include the type of report, package name, time period, and the dimension (if applicable).

Download reports using a client library & service account

Step 1: Create a service account

  1. Sign in to the Google Developers Console (console.developers.google.com).
  2. If you already have a project, use the drop-down to select a project. If you don't have a project listed or want to create a new one, click Create project.
  3. Select the Menu icon Menu icon > Permissions > Service accounts > Create service account.
  4. Follow the on-screen instructions and select Create.
  5. Copy the email address listed.
    • Example: accountName@project.iam.gserviceaccount.com
 

Step 2: Add the service account on your Play Console

  1. Sign in to your Play Console.
  2. Select Settings Settings > User accounts & rights > Invite new user.
  3. Paste or type the email address associated with your service account.
  4. Based on the types of reports needed, select permissions.
    • For example, if you need access to financial reports, select “View financial reports.”
  5. Click Add user. Your service account will be added to your account.
 

Step 3: Fetch reports using an API call

  1. Install the API client library for your preferred code language.
  2. Configure the code performing the API call to use OAuth2 server-to-server authentication and to request permission to the OAuth2 scope (https://www.googleapis.com/auth/devstorage.read_only).
  3. Issue authenticated API calls to fetch reports.
See an example (Python)

If you used Python to fetch reports, here's a code example:

 

import json

from httplib2 import Http

from oauth2client.client import SignedJwtAssertionCredentials

from apiclient.discovery import build

# Change these variables to fit your case

client_email = 'your service account here'

json_file = 'path_to_json_file_obtained_when_creating_the_service_account'

cloud_storage_bucket = 'pubsite_prod_rev_…'

report_to_download = ‘earnings/earnings_….zip’

 

private_key = json.loads(open(json_file).read())['private_key']

credentials = SignedJwtAssertionCredentials(client_email, private_key,

   'https://www.googleapis.com/auth/devstorage.read_only')

storage = build('storage', 'v1', http=credentials.authorize(Http()))

print storage.objects().get(

   bucket=cloud_storage_bucket,

   object=report_to_download).execute()

Control access to Google Cloud Storage

Reports available on Google Cloud Storage use the same access restrictions that control data access on your Play Console. This means account users with access to areas of a Play Console account have access to the corresponding reports in Google Cloud Storage. 

Account owners can update permissions for individual users at any time.

  • To access bulk reports, your "View app information" permission must be set to "Global." 
  • To download financial reports, your "View financial data" permission must be set to "Global."

Commands & file formats for detailed reports

Crashes & ANRs

Crashes

Note: Detailed reports for crashes and ANRs include up to 18 months of data. Exports are only available for data collected from the previous data source on your app's ANRs & Crashes page.

Command

gs://[developer_bucket_id]/crashes/crashes_[package_name]_YYYYMM.csv

Tip: After you download your data as a CSV file, you can use the URL in the Crash Link or ANR Link field to get more information in your Play Console about specific crashes or freezes.

File format

Field Format Optional Example
Package name String NO com.company.app
Crash Report Date And Time ISO_8601 including time, UTC timezone NO 2014-06-19T19:12:32Z
Crash Report Millis Since Epoch integer, milliseconds since epoch NO  
Device String NO hammerhead
Android OS Version integer (API level code) NO 19
App Version Name String NO  
App Version Code integer NO  
Exception Class Name String NO java.lang.IllegalStateException
Exception Message String YES  
Throwing File Name String NO Foo.java
Throwing Class Name String NO com.company.app.Foo
Throwing Method Name String NO  
Throwing Line Number integer NO  
Native Crash Library String YES  
Native Crash Location String YES /system/lib/libcrypto.so (EVP_DigestFinal_ex+44)
Crash Link URL NO https://play.google.com/apps/publish?
dev_acc=1234#ErrorClusterDetailsPlace
:p=com.foo.bar &lr=LAST_30_DAYS&sh=false
&s=new_status_desc&ed=1414825448730000
&et=CRASH&ecn=java.lang.ClassCastException
&tf=Foo&tc=com.foo.bar.Class&tm=a

Example

For example, if you want to download all reports generated in 2014 from the report bucket id pubsite_prod_rev_0123456789 for your app with the package name "com.example.app", the command would be:

gsutil cp -r gs://pubsite_prod_rev_0123456789/crashes/crashes_com.example.app_2014* /your/local/directory

ANRs

Note: Detailed reports for crashes and ANRs include up to 18 months of data. Exports are only available for data collected from the previous data source on your app's ANRs & Crashes page. 

Command

gs://[developer_bucket_id]/crashes/anrs_[package_name]_YYYYMM.csv

Tip: After you download your data as a CSV file, you can use the URL in the Crash Link or ANR Link field to get more information in your Play Console about specific crashes or freezes.

File format

Field Format Optional Example
Package Name String NO com.company.app
Crash Report Date And Time ISO_8601 including time, UTC timezone NO 2014-06-19T19:12:32Z
Crash Report Millis Since Epoch integer, milliseconds since epoch NO  
Device String NO hammerhead
Android OS Version String NO  
App Version Name String NO  
Activity String NO  
Cause String NO  
ANR Link URL NO https://play.google.com/apps/publish?
dev_acc=1234#ErrorClusterDetailsPlace:p=com.foo.bar
&lr=LAST_30_DAYS&sh=false&s=new_status_desc
&ed=1414825224589000&et=FREEZE&c
=ANR+Broadcast+of+Intent+%7B+act%3Dcom
.google.android.c2dm.intent.RECEIVE&an=

Example

For example, if you want to download all reports generated in 2014 from the report bucket id pubsite_prod_rev_0123456789 for your app with the package name "com.example.app", the command would be:

gsutil cp -r gs://pubsite_prod_rev_0123456789/crashes/anrs_com.example.app_2014* /your/local/directory

Reviews

Reviews

Command

gs://[developer_bucket_id]/reviews/reviews__YYYYMM.csv

File format

Field Format Optional Examples & notes
Package Name String NO com.company.app
App Version Code integer YES Production APKs only
App Version Name String YES  
Reviewer Language String - ISO 639-1 two letter abbreviation YES en
Device String YES hammerhead
Review Submit Date and Time ISO_8601 including time, UTC timezone NO 2014-06-19T19:12:32Z
Review Submit Millis Since Epoch integer, milliseconds since epoch NO  
Review Last Update Date and Time ISO_8601 including time, UTC timezone YES 2014-06-19T19:12:32Z
Review Last Update Millis Since Epoch integer, milliseconds since epoch YES  
Star Rating integer (between 1 and 5) NO  
Review Title String, in the reviewer's local language (stripping newlines) YES  
Review Text String, in the reviewer's local language (stripping newlines) YES  
Developer Reply Date and Time ISO_8601 including time, UTC timezone YES 2014-06-19T19:12:32Z
Developer Reply Millis Since Epoch integer, milliseconds since epoch YES  
Developer Reply Text String (stripping newlines and compressing whitespace) YES  
Review Link String YES https://play.google.com/apps/publish/?dev_acc=<...>#ReviewPlace:id=<..>

Example

If you want to download all reports generated in 2014 from the report bucket id pubsite_prod_rev_0123456789 for your app with the package name com.example.app, the command is:

gsutil cp -r gs://pubsite_prod_rev_0123456789/reviews/reviews_com.example.app_2014* /your/local/directory

Financial reports

Estimated sales

Command

gs://[developer_bucket_id]/sales/salesreport_YYYYMM.zip

Example

If you want to download all reports generated in 2014 from the report bucket id pubsite_prod_rev_0123456789 for your app with the package name com.example.app, the command is:

gsutil cp -r gs://pubsite_prod_rev_0123456789/sales/salesreport_2014* /your/local/directory

File format

Field Format Optional Example

Order Number

String

No

1234-1234-1234-12345

Order Charged Date

UTC timezone

No

2016-11-30

Order Charged Timestamp

Integer

No

milliseconds since epoch

Financial Status

String

No

charged, refund, etc.

Device Model

String

No

mako

Product Title

String

No

coins, monthly subscription, etc.

Product ID

String

No

com.foo.bar

Product Type

String

No

subscription, inapp

SKU ID

String

No

set on the Play Console

Currency of Sale

String

No

USD, EUR, THB, etc.

Item Price

Integer

No

0.99

Taxes Collected

Integer

Yes

 

Charged Amount

Integer

No

sum of item and taxes

City of Buyer

String

Yes

 

State of Buyer

String

Yes

CA

Postal Code of Buyer

String

Yes

94043

Country of Buyer

String

No

US

 

Earnings

Command

gs://[developer_bucket_id]/earnings/earnings_YYYYMM.zip

Example

If you want to download all reports generated in 2014 from the report bucket id pubsite_prod_rev_0123456789 for your app with the package name com.example.app, the command is:

gsutil cp -r gs://pubsite_prod_rev_0123456789/earnings/earnings_2014* /your/local/directory

File format

Field Format Optional Example

Description

String

No

1234-1234-1234-12345 (OrderID)

Transation Date

String

No

Nov 30, 2016

Transaction Time 

String

No

12:00:00 PM PDT

Tax Type

String

Yes

third-party tax

Transaction Type

String

No

charge, Google fee, tax, charge refund, Google fee refund

Refund Type

String

Yes

full

Product Title

String

No

coins, subscription item, etc.

Product ID

String

No

com.foo.bar

Product Type

Integer

Yes

0,1

SKU ID

String

No

set on the Play Console

Hardware

String

No

mako

Buyer Country

String

No

US

Buyer State

String

Yes

CA

Buyer Postal Code

String

Yes

94043

Buyer Currency

String

No

USD

Amount (Buyer Currency)

Integer

No

0.99

Currency Conversion Rate

Integer

No

1

Merchant Currency String No USD
Amount (Merchant Currency) Integer No 0.99

 

Commands & file formats for aggregated reports

Statistics

Installs

Command

gs://[developer_bucket_id]/stats/installs/installs_[package_name]_yyyyMM_[dimension].csv

File format

Field Format Optional Example
Date YYYY-mm-dd NO 2014-06-19
Package Name String NO com.my.app
Device (or any other supported dimension) String YES hammerhead
Current Device Installs integer NO  
Installs on active devices integer NO  
Daily Device Installs integer NO  
Daily Device Uninstalls integer NO  
Daily Device Upgrades integer NO  
Current User Installs integer NO  
Total User Installs integer NO  
Daily User Installs integer NO  
Daily User Uninstalls integer NO  

Supported dimensions

Dimension File name
App Version Code ..._app_version.csv
Carrier ..._carrier.csv
Country ..._country.csv
Device ..._device.csv
Language ..._language.csv
Android OS Version ..._os_version.csv

Example

If you want to download all reports generated in 2014 from the report bucket id pubsite_prod_rev_0123456789 for your app with the package name com.example.app, the command is:

gsutil cp -r gs://pubsite_prod_rev_0123456789/stats/installs/installs_com.example.app_2014* /your/local/directory
Crashes

Command

gs://[developer_bucket_id]/stats/crashes/crashes_[package_name]_yyyyMM_[dimension].csv

File format

Field Format Optional Example
Date YYYY-mm-dd NO 2014-06-19
Package Name String NO com.my.app
Device (or any other supported dimension) String YES hammerhead
Daily Crashes integer NO  
Daily ANRs integer NO  

Supported dimensions

Dimension File name
App Version Code ..._app_version.csv
Device ..._device.csv
Android OS Version ..._os_version.csv

Example

If you want to download all reports generated in 2014 from the report bucket id pubsite_prod_rev_0123456789 for your app with the package name com.example.app, the command is:

gsutil cp -r gs://pubsite_prod_rev_0123456789/stats/crashes/crashes_com.example.app_2014* /your/local/directory
Ratings

Command

gs://[developer_bucket_id]/stats/ratings/ratings_[package_name]_yyyyMM_[dimension].csv

File format

Field Format Optional Example
Date YYYY-mm-dd NO 2014-06-19
Package Name String NO com.my.app
Device (or any other supported dimension) String YES hammerhead
Daily Average Rating %.2f YES  
Total Average Rating %.2f Yes 4.16

Supported dimensions

Dimension File name
App Version Code ..._app_version.csv
Carrier ..._carrier.csv
Country ..._country.csv
Device ..._device.csv
Language ..._language.csv
Android OS Version ..._os_version.csv

Example

If you want to download all reports generated in 2014 from the report bucket id pubsite_prod_rev_0123456789 for your app with the package name com.example.app, the command is:

gsutil cp -r gs://pubsite_prod_rev_0123456789/stats/ratings/ratings_com.example.app_2014* /your/local/directory
Firebase Cloud Messaging (FCM)

Command

gs://[developer_bucket_id]/stats/gcm/gcm_[package_name]_yyyyMM_[dimension].csv

File format

Field Format Optional Example
Date YYYY-mm-dd NO 2014-06-19
Package Name String NO  
Sender ID integer NO  
Device (or any other supported dimension) String YES hammerhead
FCM Messages integer NO  
FCM Registrations integer NO  

Note: If a Sender ID field displays -1 with an error code, this indicates an unknown or invalid sender ID. To help understand these messages, use the "Response code" dimension listed below.

Supported dimensions

Dimension File name
App Version Code ..._app_version.csv
Carrier ..._carrier.csv
Country ..._country.csv
Device ..._device.csv
Language ..._language.csv
Android OS Version ..._os_version.csv
FCM Message Status ..._message_status.csv
Response code ..._response_code.csv

Example

If you want to download all reports generated in 2014 from the report bucket id pubsite_prod_rev_0123456789 for your app with the package name com.example.app, the command is:

gsutil cp -r gs://pubsite_prod_rev_0123456789/stats/gcm/gcm_com.example.app_2014* /your/local/directory

Subscriptions

Command

gs://[developer_bucket_id]/financial-stats/subscriptions/subscriptions_[package_name]_[product_id]_yyyyMM_[dimension].csv

File format

Field Format Optional Example
Date YYYY-mm-dd NO 2016-03-28
Package Name String NO com.my.app
Product ID String NO monthly.subscription
Country or Device String NO Must include either country or device
New subscriptions Integer NO  
Canceled subscriptions Integer NO  
Active subscriptions Integer NO  

Note: For more information on new, canceled, and active subscription statistics, go to review your app's revenue & buyer data.

Supported dimensions

Dimension File name
Country ..._country.csv
Device ..._device.csv

 

User Acquisition

Learn more about Google Play acquisition sources and metrics.

Retained Installers

Command

gs://[developer_bucket_id]/acquisition/retained_installers/retained_installers_[package_name]_yyyyMM_[dimension].csv

File format

Field Format Optional Examples & Notes
Date YYYY-mm-dd NO

Date the user visited your store listing

Acquisition Channel String YES

Organic, AdWords, UTM-Tagged

Present for "Acquisition channel" dimension

Country String YES Present for "Country" and "Country (Play Store organic)" dimensions
UTM source/campaign String YES

Present for "Tracked channels (UTM)" dimension

Keyword String YES

e.g. "games"

Present for "Google Search (organic)" dimension

Store Listing Visitors Integer NO  
Installers Integer NO  
Visitor-to-Installer conversion rate Decimal NO  
Median Visitor to Installer conversion rate benchmark Decimal YES Present for "Acquisition channel" and "Country (Play Store organic)" dimensions
Installers retained for 1 day Integer NO  
Installer-to-1 day retention rate Decimal NO  
Installers retained for 7 days Integer NO  
Installer-to-7 days retention rate Decimal NO  
Installers retained for 15 days Integer NO  
Installer-to-15 days retention rate Decimal NO  
Installers retained for 30 days Integer NO  
Installer-to-30 days retention rate Decimal NO  

Supported dimensions

Dimension File name
Acquisition channel ..._channel.csv
Country ..._country.csv
Country (Play Store organic) ..._play_country.csv
Tracked channels (UTM) ..._utm_tagged.csv
Google Search (organic) ..._google.csv

 

Buyers (7 days after install)

Command

gs://[developer_bucket_id]/acquisition/buyers_7d/buyers_7d_[package_name]_yyyyMM_[dimension].csv

File format

Field Format Optional Examples & Notes
Date YYYY-mm-dd NO

Date the user visited your store listing

Acquisition Channel String YES

Organic, AdWords, UTM-Tagged

Present for "Acquisition channel" dimension

Country String YES Present for "Country" and "Country (Play Store organic)" dimensions
UTM source/campaign String YES Present for "Tracked channels (UTM)" dimension
Keyword String YES

e.g. "games"

Present for "Google Search (organic)" dimension

Store Listing Visitors Integer NO  
Installers Integer NO  
Visitor to Installer conversion rate Decimal NO  
Median Visitor to Installer conversion rate benchmark Decimal YES Present for "Acquisition channel" and "Country (Play Store organic)" dimensions
Buyers Integer NO  
Installer to Buyer conversion rate Decimal NO  
Repeat Buyers Integer NO  
Installer to Repeat Buyer conversion rate Decimal NO  
Buyer to Repeat Buyer conversion rate Integer NO  

Supported dimensions

Dimension File name
Acquisition Channel ..._channel.csv

Country

..._country.csv

Country (Play Store organic)

..._play_country.csv
Tracked channels (UTM) ..._utm_tagged.csv
Google Search (organic) ..._google.csv

 

Subscribers

Command

gs://[developer_bucket_id]/acquisition/subscribers/subscribers_[package_name]_[product_id]_yyyyMM_[dimension].csv

File format

Field Format Optional Examples & Notes
Date YYYY-mm-dd NO

Date the user visited your store listing

Product ID String NO  
Acquisition Channel String YES

Organic, AdWords, UTM-Tagged

Present for "Acquisition channel" dimension

Country String YES Present for "Country" and "Country (Play Store organic)" dimensions
UTM source/campaign String YES Present for "Tracked channels (UTM)" dimension
Keyword String YES

e.g. "games"

Present for "Google Search (organic)" dimension

Total Free Trialists

Integer NO Present when all subscribers in a cohort were offered a free trial.
Matured Free Trialists Integer NO

Present when all subscribers in a cohort were offered a free trial.

A matured free trialist has had a trial subscription long enough to be eligible for a first payment.  
Total First Payments Integer NO  
Free Trialist-to-First Payment conversion rate Decimal NO

Calculated as total first payments divided by the number of matured free trialists. A matured free trialist has had a trial subscription long enough to be eligible for a first payment.

Present when all subscribers in a cohort were offered a free trial
 
Matured First Payments Integer NO  
Total Second Payments Integer NO  
First Purchase-to-Second Payment conversion rate Decimal NO Calculated as total second payments divided by the number of matured first payments.

Supported dimensions

Dimension File name
Acquisition Channel ..._channel.csv

Country

..._country.csv

Country (Play Store organic)

..._play_country.csv
Tracked channels (UTM) ..._utm_tagged.csv
Google Search (organic) ..._google.csv

 

Was this article helpful?
How can we improve it?