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
- 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.
- Prepare the Google Cloud Storage staging bucket required by the warehouse workflow. Check its location against BigQuery’s load requirements.
- Configure destination credentials with access to submit BigQuery jobs and write the selected dataset and staging location. Source access is a separate connection.
- Choose the output table names and reporting currency in the task. Keep daily and finance table names distinct.
- 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_currencybefore summing converted measures. - Inspect daily
net_method,tax_method,fee_methodanddata_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.