Types of reports
Detailed reportsDetailed reports include data on individual events:
- Reviews
- Financial: estimated sales, earnings, rewarded products and Korean Play balance funded
Aggregated reports include consolidated data (averages, daily totals and so on) for app statistics:
- Statistics: installs, crashes, ratings and subscriptions
- User acquisition: retained installers, buyers (7 days after install) and subscribers
Download reports
- Open Play Console.
- Click Download reports , and select Reviews, Statistics or Financial.
- Under 'Select an application', type and select your app's name.
- 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 URI
You can copy your Google Cloud Storage URI by clicking the Copy Cloud Storage URI button next to the corresponding section header on the Download reports pages.
Your Cloud Storage URI begins with pubsite_prod_rev
(For example, pubsite_prod_rev_01234567890987654321
).
- Install the gsutil tool.
- Make sure that you authenticate your account using an account with access to 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.
- Find your reporting bucket ID by clicking the Copy Cloud Storage URI button next to the corresponding section header on the Download reports pages.
- Your Cloud Storage URI begins with:
pubsite_prod_rev
(For example,pubsite_prod_rev_01234567890987654321
).
- Your Cloud Storage URI begins with:
- Use the
gsutil cp
command to download reports.- For additional commands to help you access your reports, go to the gsutil documentation.
Reports are organised 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).
Step 1: Create a service account
- Open Google Developers Console.
- 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.
- Select the Menu icon > Permissions > Service accounts > Create service account.
- Follow the on-screen instructions and select Create.
- Copy the email address listed.
- Example:
[email protected]
- Example:
Step 2: Add the service account on Play Console
- Open Play Console.
- Select Settings > User accounts and rights > Invite new user.
- Paste or type the email address associated with your service account.
- Based on the types of reports needed, select permissions.
- Tip: Read the Add developer account users and manage permissions article to understand the different access levels that users have and the rights that different permissions grant them.
- Click Add user. Your service account will be added to your account.
Step 3: Fetch reports using an API call
- Install the API client library for your preferred code language.
- Configure the code performing the API call to use
OAuth2
server-to-server authentication and to request permission to theOAuth2
scope (https://googleapis.com/auth/devstorage.read_only). - Issue authenticated API calls to fetch reports.
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://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 in Play Console. This means that 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 and file formats for detailed reports
Crashes and ANRs
As of May 2018, you can no longer download detailed reports for crashes and ANRs.
Reviews
Command
gs://[developer_bucket_id]/reviews/reviews_[package_name]_YYYYMM.csv
File format
Field | Format | Optional | Examples and 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-GB |
Device | String | YES | hammerhead |
Review Submit Date and Time | ISO_8601 including time, UTC time zone | 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 time zone | 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 time zone | 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 salesWe recommend that you don’t rely on the number of columns in the CSV files for your automated reports.
About
You can use the estimated sales report to view low latency information about app, in-app product or subscription sales. This report contains the amount paid by buyers and doesn't deduct taxes or Google fees from the totals.
You can use this report for analytics or trend analysis, but it's not recommended for accounting. Instead, see the Earnings report.
You may notice differences between this report and your earnings for a number of reasons. For example, the estimated sales report doesn't take into account withholding taxes or chargebacks. This report contains amounts paid by buyers in their local currency and doesn't contain converted amounts in your payout currency.
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 | Examples and notes |
---|---|---|---|
Order number |
String |
No |
Subscription Order IDs include the renewal cycle number at the end (for example, the first renewal is |
Order charged date |
String |
No |
Date of this order based on the UTC time zone (in YYYY-MM-DD format). |
Order Charged Timestamp |
Integer |
No |
The UNIX timestamp when the order was charged to the user. Measured in seconds since epoch. |
Financial status |
String |
No |
If you fully refund an order after issuing a partial refund:
|
Device model |
String |
No |
Android device model used to make the purchase. For subscription orders, this refers to the device used for the original purchase. |
Product title |
String |
No |
Developer-specified name of the product. Displayed in the buyer's locale. |
Product ID |
String |
No |
Package name of the app where the product was sold. |
Product type |
String |
No |
|
SKU ID |
String |
No |
Developer-specified unique ID of the product. |
Currency of sale |
String |
No |
|
Item price |
Integer |
No |
Shown in the buyer's local currency. With ',' as a thousands separator. |
Taxes collected |
Integer |
Yes |
In the buyer's local currency. With ',' as a thousands separator. |
Charged amount |
Integer |
No |
In the buyer's local currency. This is the sum of the item price and taxes collected. With ',' as a thousands separator. |
City of buyer |
String |
Yes |
Only populated for sales where you are the Merchant of Record. |
State of buyer |
String |
Yes |
|
Postcode of buyer |
String |
Yes |
Only populated for sales where you are the Merchant of Record. |
Country of Buyer |
String |
No |
|
Base plan ID |
String |
Yes |
The base plan ID of the subscription. Only populated for subscriptions. Learn more. |
Offer ID |
String |
Yes |
The offer ID of the subscription. Only populated for subscriptions. Learn more. |
Group ID | Integer | Yes |
Unique ID is given when a developer account group is created. Learn more. |
First USD 1 M eligible | String | Yes |
Populated only when a developer account group is set up. Learn more. |
Promotion ID | String | Yes |
|
Coupon value | Integer | Yes |
Shown in the buyer’s local currency. With ',' as a thousands separator. Only populated for sales related to Play Points coupons. Learn more. |
Discount rate | Integer | Yes |
% discount rate used to specify the saving made by the user by spending Play Points compared to spending money. Only populated for sales related to Play Points. Learn more. |
Featured products ID |
Integer |
Yes |
Unique ID is given when a developer creates a featured product. Learn more. |
Price experiment ID | String | Yes |
Price experiment ID and experiment arm |
We recommend that you don’t rely on the number of columns in the CSV files for your automated reports.
About
You can use the earnings report to understand your payout and transactions. Each line in the report represents a type of transaction, like when you charge a customer money or pay Google a fee, along with the original and converted amounts.
Earnings reports contain transactions from the previous month. You'll receive the payout several weeks after the earnings report becomes available.
The earnings report is generated once a month and is typically available by the fifth of the following month. Occasionally, Google may make adjustments to your earnings to correct miscalculations. If this happens, we'll contact you to inform you of the issue and will create an additional earnings file containing only the adjusted transactions for your records.
Notes:
- Google fees are now visible for all transactions, regardless of whether Google is Merchant of Record for products sold.
- The earnings report does not include chargebacks.
- A single file is generated for the earnings report for transactions each month.
- Taiwan withholding tax is paid out in the prior month to when it’s reported
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 | Examples and notes |
---|---|---|---|
Description |
String |
No |
Subscription order IDs include the renewal cycle number at the end (for example, the first renewal is |
Transaction date |
String |
No |
Date of this order is based on the Pacific Time Zone (in MMM DD, YYYY format). Note that the transaction timestamp may have the following month recorded since reports are generated by issue timestamp. |
Transaction time |
String |
No |
|
Tax Type |
String |
Yes |
Blank for non-tax lines. |
Transaction Type |
String |
No |
|
Refund type |
String |
Yes |
Refunds where the buyer was reimbursed their full spend will be marked as 'Full'. Refunds for part of a user’s payment amount will be marked as 'Partial'. |
Product Title |
String |
No |
Developer-specified name of the product. Shown in the buyer's locale. |
Product ID |
String |
No |
Package name of the app where the product was sold. |
Product type |
Integer |
No |
Used to identify the type of product sold. '0' represents the sale of a paid app, '1' represents the sale of an in-app product or subscription. |
SKU ID |
String |
No |
Developer-specified unique ID of the product. |
Hardware |
String |
No |
Android device model used to make the purchase. For subscription orders, this refers to the model used for the original purchase. |
Buyer country |
String |
No |
|
Buyer state |
String |
Yes |
|
Buyer postal code |
String |
Yes |
|
Buyer currency |
String |
No |
|
Amount (buyer currency) |
Integer |
No |
Total amount for this invoice line before currency conversion. |
Currency Conversion Rate |
Integer |
No |
Exchange rate used when converting buyer amounts to payout amounts in merchant currency. |
Merchant Currency | String | No |
Currency to which the order was converted. This is the local currency you are paid in. |
Amount (Merchant Currency) | Integer | No |
Total amount for this invoice line after currency conversion. |
Base plan ID |
String |
Yes |
The base plan ID of the subscription. Only populated for subscriptions. Learn more. |
Offer ID |
String |
Yes |
The offer ID of the subscription. Only populated for subscriptions. Learn more. |
Group ID | Integer | Yes |
Unique ID is given when a developer account group is created. Learn more. |
First USD 1 M eligible | String | Yes |
Populated only when a developer account group is set up. Learn more. |
Service fee % |
Integer |
Yes |
|
Fee description | String | Yes |
Detail given for the Google service fee calculation. |
Promotion ID | String | Yes |
Only populated for sales related to Play Points and Play Pass. Prefixes 'PP.C' and 'PP.P' define orders involving Play Points coupons and in-app product promotions respectively. Orders where Play Points are spent directly are also shown. Prefix 'pass' defines orders where users applied vouchers that were provided as a part of their Play Pass subscription. |
We recommend that you don’t rely on the number of columns in the CSV files for your automated reports.
About
If you have enrolled in either the alternative billing or external offers programmes and have reported transactions to Google Play, you can use the invoice billing report to understand your transactions and Google service fee dues that are invoiced to you.
The invoice billing report contains transactions from the prior month in a single CSV file. The report provides a per-transaction breakdown of user charge, Google service fee and tax amount if applicable. Information such as service fee percentage and currency conversion rate are included to help understand how the invoice amount of service fees are calculated.
Note:
- The invoice billing report is generated once per month, and is typically available by the fifth of the following month.
- Google fee or tax lines rounded to zero in billing currency are excluded from the report.
Command
gsutil cp -r gs://[developer_bucket_id]/invoice_billing_reports/invoice_billing_report_YYYYMM.zip /your/local/directory
Example
If you want to download all reports generated in 2024 from the report bucket ID pubsite_prod_rev_0123456789
, the command is:
gsutil cp -r gs://pubsite_prod_rev_0123456789/invoice_billing_reports/invoice_billing_report_2024* /your/local/directory
File format
Date of the transaction based on the Pacific time zone.
Field | Format | Optional | Examples and notes |
---|---|---|---|
Invoice ID |
String |
No |
ID that aligns with the number displayed on your invoice. |
Programme |
String |
Yes |
Only set for Google fee lines. |
External transaction ID |
String |
No |
|
Transaction date |
String |
No |
Date of the transaction based on the Pacific time zone. |
Transaction timestamp |
Integer |
No |
The UNIX timestamp of the transaction. Measured in seconds since epoch. |
Transaction type |
String |
No |
User charge, Google fee, Tax, User charge refund, Google fee refund, Tax refund, User charge partial refund, Google fee partial refund, Tax partial refund |
Tax type |
String |
Yes |
Only set for tax lines. |
SKU type |
String |
No |
|
Package ID |
String |
No |
Package name of the app where the product was sold. |
Sale country |
String |
No |
|
Tax-exclusive item price (sale currency) |
Decimal |
Yes |
Price of the product in sale currency excluding tax. Only set for user charge lines. |
Sale currency |
String |
No |
Buyer's local currency. |
Amount due (sale currency) |
Decimal |
Yes |
Amount due in sale currency. Only set for Google fee and tax lines. Positive for charged amount and negative for refund or partial refund amounts. |
Currency conversion rate |
Decimal |
No |
Exchange rate used when converting the amount due from sale currency to billing currency. |
Billing currency |
String |
No |
|
Amount due (billing currency) |
Decimal |
Yes |
Amount due in billing currency. Only set for Google fee and tax lines. Positive for charged amount and negative for refund or partial refund amounts. |
Group ID |
Integer |
Yes |
Unique ID is given when a developer account group is created. Learn more. |
First USD 1 M eligible |
String |
Yes |
Populated only when a developer account group is set up. Learn more. |
Service fee % |
Integer |
Yes |
|
Fee description |
String |
Yes |
Detail given for the Google service fee calculation. |
About
If you are a merchant that is required to issue cash receipts in South Korea under applicable rules and regulations, or if you voluntarily have registered to issue cash receipts, then you must issue cash receipts upon request by app purchasers for a paid app or in-app product purchases made with Google Play gift cards in Korean Won (KRW).
The Korean Play balance funded report contains Play balance sales made in Korean Won, for the purpose of sending a cash receipt to the user.
Note: Users can add to Play balance from multiple sources, including promotional credit from Google or our partners. Before issuing a cash receipt, it's important to ensure that the user added to their balance using a cash equivalent (for example, a gift card).
Command
gs://[developer_bucket_id]/play_balance_krw/play_balance_krw_YYYYMM.zip
Example
If you want to download all reports generated in 2018 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/play_balance_krw/play_balance_krw_2018* /your/local/directory
File format
Field | Format | Optional | Examples and notes |
---|---|---|---|
Order number |
Integer |
No |
Subscription order IDs include the renewal cycle number at the end (for example, the first renewal is |
Order charged date |
String |
No |
Date of this order based on the UTC time zone (in YYYY-MM-DD format). |
Financial status |
String |
No |
|
Play balance funding amount |
String |
No |
Amount of the transaction. |
Play Balance Currency | String | No | KRW For Korean Play balance funded reports, this is always Korean Won (KRW). |
Order Charged Timestamp | Integer | No | 1480507200
The UNIX timestamp when the order was charged to the user. Measured in seconds since epoch. |
Subscriptions
Cancellation survey responsesCommand
gs://[developer_bucket_id]/subscriptions/cancellations/freeform_[package_name].csv
File format
Field | Format | Optional | Examples and notes |
---|---|---|---|
Cancellation date | String | No | 2016-11-30 |
SKU ID | String | Yes | treasure_chest_for_new_users Developer-specified unique ID of the product. |
Country | String | No | US, CA, etc. |
Response | String | No |
Commands and file formats for aggregated reports
Statistics
InstallsCommand
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 Uninstallations | 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 |
Operator | ..._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
Note: As of January 2018, exports include data from the new data source and match the information on your app's Statistics page. Exports from before January 2018 are only available for data collected from the previous data source.
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
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 |
Operator | ..._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
Command
gs://[developer_bucket_id]/financial-stats/subscriptions/subscriptions_[package_name]_[product_id]_yyyyMM_[dimension].csv
File format
Field | Format | Optional | Examples and notes |
---|---|---|---|
Date | YYYY-MM-DD | NO |
Date of this order based on the UTC time zone (in YYYY-MM-DD format) |
Package name | String | NO | com.example.app |
Product ID | String | NO | Premium access |
Country | String | NO |
|
New subscriptions | Number | NO | 1234 |
Cancelled subscriptions | Number | NO | 1234 |
Active subscriptions | Number | NO | 1234 |
Base plan ID | String | NO | weekly |
Offer ID | String | NO | spring-offer |
Note: For more information on new, cancelled and active subscription statistics, go to review your app's revenue and buyer data.
Supported dimensions
Dimension | File name |
---|---|
Country | …_country.csv |
User acquisition
The retained installers and buyers reports provide programmatic access to data for the old acquisition report. This export has been replaced by a new programmatic export, which includes data for the Shop analysis and Conversion analysis pages in Play Console. It became available in March 2021.
The old reports were removed in October 2021.
Make sure that you read How do I download acquisition data? to know more.
Note: The subscribers report is no longer supported as of November 2019. To find out more, make sure that you read about acquisition sources and metrics.
Retained Installers (old export – available until August 2021)Command
gs://[developer_bucket_id]/acquisition/retained_installers/retained_installers_[package_name]_yyyyMM_[dimension].csv
File format
Field | Format | Optional | Examples and notes |
---|---|---|---|
Date | YYYY-mm-dd | NO |
Date the user visited your Store Listing Note: Adding unique Store Listing Visitors across several days will result in a higher number of Store Listing Visitors than what you see in weekly or monthly cohort views. Weekly and monthly cohort views count each visitor once, even if they visit multiple times. |
Acquisition channel | String | YES |
Present for 'Acquisition channel' dimension Note: 'Play Store (organic)' channel is the sum of 'Play Store (organic) search' and 'Play Store (organic) browse'. To avoid double-counting visitors in this report, ignore either the total 'Play Store (organic)' row or both search and browse rows. |
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 |
Present for 'Play Store Search (organic)' |
Store Listing visitors | Integer | NO | |
Installers | Integer | NO | |
Visitor-to-Installer conversion rate | Decimal | NO | |
Median Visitor to Installer conversion rate benchmark | Decimal | YES |
Not populated as of August 2019. An updated set of benchmarks, using a new calculation, is available on the acquisition reports page. To find out more, make sure that you read Conversion rate peer comparison for Play Store traffic. |
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 |
Play Store (organic) search | ..._play_search.csv |
Tracked channels (UTM) | ..._utm_tagged.csv |
* Note: The 'Play Store (organic)' channel is the sum of 'Play Store (organic) search' and 'Play Store (organic) browse'. To avoid double-counting visitors in this report, ignore either the total 'Play Store (organic)' row or both search and browse rows.
The Google Search (organic) dimension is no longer supported as of June 2019.
CSV names
Each CSV file available contains data for one month and a breakdown. CSVs are given structured names that reflect which year, month and report breakdown they cover, according to the following pattern:
File name format: store_performance_[package_name]_[yyyyMM]_[breakdown].csv
Notes:
- The package name will be included in the file name as is, with any special characters if present ('
.
' or '_
'). yyyyMM
represents the year and month, e.g.202101
.
Command
gs://[developer_bucket_id]/stats/store_performance/store_performance_[package_name]_[yyyyMM]_[breakdown].csv
File format
Field | Format | Optional | Example | Description |
---|---|---|---|---|
Date | YYYY-mm-dd | NO | 2021-01-01 |
Date the user visited your Store Listing |
Package name | String | NO | com.example.app |
The package name owning the report data |
Country/region | String | NO | UK |
The country or region where the user’s Google Account is registered |
Traffic source | String | NO | Google Play search |
How the user got to your Store Listing:
Note: Can be |
Search term | String | YES | app store |
The term that the user searched for before navigating to your Store Listing. Only available for Google Play search. Note: Can be |
UTM source | String | YES | google |
The value of the utm_source URL parameter in deep links to your Store Listing. Only available for third-party referrals Note: Can be |
UTM campaign | String | YES | campaign |
The value of the utm_campaign URL parameter in deep links to your Store Listing. Only available for third-party referrals. Note: Can beOther if this value does not reach certain minimum thresholds |
Store listing acquisitions | Integer | NO | 10 |
The number of users who visited your Store Listing and installed your app, who didn't have it installed on any other devices at the time. |
Store Listing visitors | Integer | NO | 100 |
The number of users that visited your Store Listing who didn't already have your app installed on any of their devices |
Store Listing conversion rate | Decimal | NO | 0.1 |
The percentage of Store Listing visitors who installed your app Note: Does not include visits or installs from users who already have your app installed on another device |
Available breakdown structure
The following breakdowns are available:
Breakdown name | Fields in each CSV (in order): |
---|---|
Example file name:
|
Date, package name, country, Store Listing acquisitions, Store Listing visitors, Store Listing conversion rate |
Example file name:
|
Date, package name, traffic source, search term, UTM source, UTM campaign, Store Listing acquisitions, Store Listing visitors, Store Listing conversion rate |
Escaping scheme
- Double up any double quotes. (
"
->""
) - If a cell contains any tabs, new lines, double quotes or commas, put double quotes around the cell. (
...
->"..."
)
Example
If you want to download all reports generated in 2020 from the report bucket ID pubsite_prod_0123456789
for your app with the package name com.example.app
, the command is
gsutil cp -r gs://pubsite_prod_0123456789/stats/store_performance/store_performance_com.example.app_2020* /your/local/directory
Command
gs://[developer_bucket_id]/acquisition/buyers_7d/buyers_7d_[package_name]_yyyyMM_[dimension].csv
File format
Field | Format | Optional | Examples and notes |
---|---|---|---|
Date | YYYY-mm-dd | NO |
Date the user visited your Store Listing Note: Adding unique Store Listing Visitors across several days will result in a higher number of Store Listing Visitors than what you see in weekly or monthly cohort views. Weekly and monthly cohort views count each visitor once, even if they visit multiple times. |
Acquisition channel | String | YES |
Present for 'Acquisition channel' dimension Note: 'Play Store (organic)' channel is the sum of 'Play Store (organic) search' and 'Play Store (organic) browse'. To avoid double-counting visitors in this report, ignore either the total 'Play Store (organic)' row or both search and browse rows. |
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 |
Present for 'Play Store Search (organic)' |
Store Listing visitors | Integer | NO | |
Installers | Integer | NO | |
Visitor to Installer conversion rate | Decimal | NO | |
Median Visitor to Installer conversion rate benchmark | Decimal | YES |
Not populated as of August 2019. An updated set of benchmarks, using a new calculation, is available on the acquisition reports page. To find out more, make sure that you read Conversion rate peer comparison for Play Store traffic. |
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 |
Play Store (organic) search | ..._play_search.csv |
Tracked channels (UTM) | ..._utm_tagged.csv |
* Note: The 'Play Store (organic)' channel is the sum of 'Play Store (organic) search' and 'Play Store (organic) browse'. To avoid double-counting visitors in this report, ignore either the total 'Play Store (organic)' row or both search and browse rows.
The Google Search (organic) dimension is no longer supported as of June 2019.