Skip to workflow explorer
NeticeStart free

APP REVENUE DATA INFRASTRUCTURE

App Revenue
Warehouse Explorer

See the reporting layer before you choose the pipeline.

Inspect what Netice delivers from Apple App Store and Google Play into your own warehouse: source reports, schema fields, example rows, SQL and refresh behavior.

Daily sales and monthly finance stay separateNo signup needed to explore
Choose your workflow

SELECTED WORKFLOW

Apple + Google · Daily App Sales → BigQuery

Netice delivers Apple App Store and Google Play daily sales reporting into a customer-owned BigQuery table using the 38-field Daily App Sales schema. Use estimated_net for operational trends, retaining the report currency and method fields with the amount.

Source reports

Apple App Store Summary Sales

Google Play Estimated Sales

Reporting layer

Daily App Sales

Operational estimates

Your warehouse

BigQuery

app_sales_daily

INSPECT THE OUTPUT

app_sales_daily

Read field meanings →

Default table name; replace the fictional project and dataset with your destination. The full BigQuery table path is enclosed in backticks.

Example rows

11 selected fields from the 38-field Daily App Sales contract.

revenue_datesourceapp_idsource_reportreport_currencyestimated_netnet_methoddata_completenessunitstransaction_typeevent_has_revenue
2026-08-14APPLE_APP_STORE1234567890ASC_SUMMARY_SALESEUR14APPLE_PROCEEDST_PLUS_2_STABILIZED2PURCHASEtrue
2026-08-15APPLE_APP_STORE1234567890ASC_SUMMARY_SALESEUR-7APPLE_PROCEEDST_PLUS_2_STABILIZED-1REFUNDtrue
2026-08-15APPLE_APP_STORE1234567890ASC_SUMMARY_SALESEUR21APPLE_PROCEEDST_PLUS_2_STABILIZED3RENEWALtrue
2026-08-14GOOGLE_PLAYcom.example.orbitGP_ESTIMATED_SALESEUR8GOOGLE_ESTIMATED_NET_FROM_CHARGED_AMOUNT_MINUS_ESTIMATED_FEET_PLUS_2_STABILIZED1PURCHASEtrue
2026-08-15GOOGLE_PLAYcom.example.orbitGP_ESTIMATED_SALESEUR-8GOOGLE_ESTIMATED_NET_FROM_CHARGED_AMOUNT_MINUS_ESTIMATED_FEET_PLUS_2_STABILIZED-1REFUNDtrue
2026-08-15GOOGLE_PLAYcom.example.orbitGP_ESTIMATED_SALESEUR0GOOGLE_NET_UNAVAILABLE_ASSUMED_ZEROT_PLUS_2_STABILIZED1PURCHASEtrue
  • The example report currency is EUR; it is configurable.
  • Negative units and amounts represent refunds. A method-labelled zero is an assumption, not a source-reported zero.
  • T_PLUS_2_STABILIZED is an age-based label; it does not certify settlement or complete reporting.
Inspect all 38 fields

Logical output types. See the schema reference for field meanings and source-specific availability.

FieldLogical type
revenue_dateDate
platformText
app_idText
source_kindText
sourceText
countryText
report_currencyText
estimated_grossNumber
estimated_netNumber
estimated_taxNumber
estimated_feeNumber
native_currencyText
gross_localNumber
net_localNumber
tax_localNumber
fee_localNumber
apple_proceeds_currencyText
apple_proceeds_nativeNumber
gross_fxNumber
net_fxNumber
tax_fxNumber
fee_fxNumber
net_methodText
fee_methodText
tax_methodText
data_completenessText
source_reportText
event_has_revenueBoolean
subscription_periodText
unitsNumber
item_idText
item_nameText
transaction_typeText
source_file_uriText
source_row_numberInteger
source_row_hashText
ingested_atTimestamp
meta_jsonJSON text

QUERY THE RESULT

Questions this output can answer

Replace the example project, dataset or database identifiers with your destination.

Daily estimates by app and store

Keep app, report currency and source in the grouping. The assumption count identifies zero fallbacks, not every possible quality issue.

BigQuery Standard SQL
SELECT revenue_date, source, app_id, report_currency,
       SUM(estimated_net) AS estimated_net_total,
       COUNT(*) AS revenue_rows,
       COUNTIF(net_method LIKE '%ASSUMED_ZERO%') AS assumed_zero_net_rows
FROM `example-project.analytics.app_sales_daily`
WHERE revenue_date >= DATE '2026-08-01'
  AND revenue_date < DATE '2026-09-01'
  AND source IN ('APPLE_APP_STORE', 'GOOGLE_PLAY')
  AND event_has_revenue = TRUE
GROUP BY revenue_date, source, app_id, report_currency
ORDER BY revenue_date, source, app_id, report_currency;
See which estimation methods drive the total

Inspect methods and age labels alongside amounts. Numeric values can include calculations and assumptions.

BigQuery Standard SQL
SELECT source, report_currency, net_method, fee_method, tax_method, data_completeness,
       COUNT(*) AS revenue_rows,
       SUM(estimated_net) AS estimated_net_total
FROM `example-project.analytics.app_sales_daily`
WHERE revenue_date >= DATE '2026-08-01'
  AND revenue_date < DATE '2026-09-01'
  AND source IN ('APPLE_APP_STORE', 'GOOGLE_PLAY')
  AND event_has_revenue = TRUE
GROUP BY source, report_currency, net_method, fee_method, tax_method, data_completeness
ORDER BY source, report_currency, net_method, fee_method, tax_method, data_completeness;
Inspect signed refunds

Refund rows carry signed units and amounts. This query isolates refunds; it is not a total-revenue calculation.

BigQuery Standard SQL
SELECT revenue_date, source, report_currency,
       COUNT(*) AS refund_rows,
       SUM(units) AS signed_refund_units,
       SUM(estimated_net) AS estimated_refund_net
FROM `example-project.analytics.app_sales_daily`
WHERE revenue_date >= DATE '2026-08-01'
  AND revenue_date < DATE '2026-09-01'
  AND source IN ('APPLE_APP_STORE', 'GOOGLE_PLAY')
  AND event_has_revenue = TRUE
  AND transaction_type = 'REFUND'
GROUP BY revenue_date, source, report_currency
ORDER BY revenue_date, source, report_currency;

REFRESH AND HISTORY

What a rerun changes

A recent 7-day reporting window by default

  • The recurring daily window supports 1–70 days.
  • Reruns replace the relevant source and reporting-date scope; managed history outside that scope is retained.
  • Backfills depend on reports still available from the provider. A refresh window cannot guarantee every future correction.
Refresh and backfill reference →

BEFORE YOUR FIRST RUN

Setup requirements

Apple App Store

  • Use an App Store Connect team API key with its issuer ID, key ID and private key; individual keys cannot access Sales and Finance endpoints.
  • Provide the vendor number for Sales and Trends reporting.
Open Apple App Store setup

Google Play

  • Use the Play Console reporting bucket beginning with pubsite_prod_rev, not your destination or staging bucket.
  • Grant the reporting service account account-level bulk-report read access and financial-data access in Play Console.
  • Choose a saved connection or the access path shown in setup; managed Google Play access is source-only.
Open Google Play setup

BigQuery

  • Prepare the customer-owned project and dataset, plus a GCS staging bucket in a compatible location.
  • Grant roles/bigquery.jobUser on the job project and roles/bigquery.dataEditor on the selected dataset. Data Editor includes table lifecycle permissions; keep it scoped to a dedicated dataset.
  • The guided setup uses Storage Object User on the staging bucket. Restrict a shared bucket to the task's staging scope; precreate resources to avoid unnecessary resource-creation grants.
  • Configure source access separately, choose reporting currency and run a small available reporting window.
  • For a new managed daily table, choose an unused name; keep an existing task on its established target.
Open BigQuery setup

Source and destination access · Security policy

Keep these boundaries in your model

  • Daily estimates are separate from monthly Platform Finance; adding both outputs double-counts overlapping activity.
  • Missing daily report-currency amounts can be derived or assigned zero under an explicit method label. Finance uses a different null contract.
  • Apple customer and proceeds currencies can differ. A null net_local can coexist with apple_proceeds_native; read it with apple_proceeds_currency.
  • Google Estimated Sales is a changing monthly source file containing daily activity. Recently charged or refunded transactions can appear later.

Raw Reports delivers provider-native rows and columns in managed GCS or S3 files. It is a separate workflow from these normalized warehouse outputs. View Raw Reports →

WHO OPERATES THE PIPELINE?

Build it yourself, or run it with Netice.

A capable data team can build this internally. Netice exists for teams that prefer not to own this integration and maintenance surface.

Compare the operating responsibilities
ResponsibilityBuild internallyRun with Netice
ConnectImplement provider authentication, destination access and credential-rotation paths.Configure source and destination connections. Your team grants access and rotates provider credentials.
InterpretSelect report families; retrieve and parse reports; maintain Apple/Google mappings, source provenance, currencies and missing-value rules.Use the maintained Daily App Sales or Platform Finance contract, with source context and layer-specific amount semantics.
RefreshOperate scheduling, late-arriving reports, historical backfills, retries and repeatable writes without accumulating duplicate loads.Configure recurring refreshes and backfills. Netice updates the managed output for the selected reporting scope.
MaintainTrack provider/schema changes and maintain the warehouse merge or replacement behavior.Use Netice's supported source transformations and managed destination updates. Keep downstream models aligned with the documented schema.
DiagnoseBuild monitoring, run status and failure diagnostics for source, transformation and destination errors.Review task status, check the failing access/reporting boundary and use support when needed.

Your team retains control of access grants, destination costs, downstream models, snapshots and financial interpretation in either approach.

Build internally

Use the report-family references, schema dictionaries and SQL examples to define the data model your team needs.

Review the implementation surface

Run it with Netice

Connect the stores, choose your destination and configure the reporting workflow.

View current pricing

RUN THE EXAMPLES

Take the schemas and SQL into your own warehouse.

Download the complete field contracts, example data, BigQuery and Snowflake DDL, and 12 SQL recipes. The package includes executable checks and loading instructions.

Daily App Sales JSON Schema · Platform Finance JSON Schema · Daily CSV · Finance CSV

Apple Summary Sales and Google Estimated Sales feed Daily App Sales; Apple finance reports and Google Earnings feed Platform Finance. Both layers can land in BigQuery or Snowflake.
Download the architecture diagram

Compare Netice with building and maintaining your own pipeline.