Skip to content
NeticeStart free

NETICE DOCUMENTATION

App Store and Google Play revenue in BigQuery

Reviewed

Netice delivers Apple App Store and Google Play revenue reporting into a customer-owned BigQuery dataset. Daily App Sales and Platform Finance use separate managed tables, with different fields and refresh scopes. Start by choosing the reporting family; then configure the dataset, staging bucket and destination access.

Output Default table Refresh scope Primary measure
Daily App Sales app_sales_daily revenue_date window estimated_net, an operational estimate
Platform Finance finance_unified Fiscal/report period and source report_net_proceeds, across relevant events

Preview BigQuery example rows and queries, then switch the reporting layer to inspect the separate Platform Finance contract.

Prepare the destination

  1. Choose the Google Cloud project and dataset that will own the output. Use a dedicated reporting dataset when you want a clear boundary between managed source output and your models.
  2. Prepare the Google Cloud Storage staging bucket required by the warehouse workflow. Check its location against BigQuery’s load requirements.
  3. Configure destination credentials with access to submit BigQuery jobs and write the selected dataset and staging location. Source access is a separate connection.
  4. Choose the output table names and reporting currency in the task. Keep daily and finance table names distinct.
  5. Run a limited historical scope first and inspect the results before extending history or scheduling downstream jobs.

For store-specific prerequisites, follow Apple App Store to BigQuery or Google Play to BigQuery. For exact destination grants, use the setup instructions shown for your connection rather than granting project-wide administrator access.

Grant access at the correct resource scope

Netice’s guided setup for an existing dataset uses roles/bigquery.jobUser on the project where jobs run, and roles/bigquery.dataEditor on the selected dataset. Job access alone does not grant table access. Keep Data Editor scoped to the dedicated dataset; it includes table lifecycle permissions, not just inserting rows. See Google’s BigQuery role definitions.

Daily App Sales and Platform Finance also need object access to the GCS staging bucket shown in setup. The guided path uses Storage Object User on the selected bucket; for a shared bucket, restrict access to the task’s staging scope with an appropriate managed folder or IAM condition. Precreate the dataset and bucket when you want to avoid resource-creation grants. Letting Netice create a dataset requires separate dataset-creation permission.

Google Play report access remains a separate Play Console grant. If you explicitly reuse an uploaded service account for both source and destination, that identity needs both permission sets. For a new managed daily table, choose an unused table name; keep an existing task on its established target.

Managed output is refreshed in place

Daily runs stage the new data and replace the selected reporting window in the managed output. A rerun does not require a new destination table for each execution. History outside the replacement scope remains part of the output.

Finance replacements use report period plus source scope. A monthly finance refresh therefore must not be modeled as an arbitrary daily-date overwrite. See refresh and backfill semantics for the operational boundary.

Put your transformations in separate views or downstream tables. Treat direct edits to managed rows as temporary: a later refresh can replace them. If you need a record of what your report showed at an earlier point in time, maintain snapshots in your own data model.

Validate the first delivery

  • Compare dates and source coverage with the requested window.
  • Check report_currency before summing converted measures.
  • Inspect daily net_method, tax_method, fee_method and data_completeness.
  • For finance, check missing proceeds and aggregate signed events, including fees and adjustments.
  • Use lineage fields to trace a surprising result back to its source report context.

Choose the right contract for SQL

The 38-field daily schema and 49-field finance schema document the exact columns. The SQL cookbook includes totals, quality checks and native-currency analysis.

Provider-native Raw Reports is documented separately for GCS and S3 delivery; do not assume a raw file shares the normalized BigQuery contract.