Try Netice Own your app revenue data App Store and Google Play revenue, delivered to your warehouse or storage. Try free for 30 days No credit card required

Netice app revenue data infrastructure

Google Play Earnings to BigQuery

Netice structures Google Play monthly Earnings data for BigQuery through Finance Unified. This is a finance-period workflow, not the daily Google Play Estimated Sales pipeline. The default BigQuery table for this output is finance_unified, with source-aware rows, event types, native and report-currency fields, FX context, null-not-zero handling and finance-period boundaries.

What Google Play Earnings to BigQuery means in Netice

In Netice, Google Play Earnings to BigQuery means using Finance Unified to normalize monthly Google Play Earnings rows into a customer-owned BigQuery table. The default table is finance_unified. Rows are identified with source = 'GOOGLE_PLAY', platform = 'ANDROID', source_kind = 'FINANCE', and source_report = 'GOOGLE_PLAY_EARNINGS'.

This is not the same workflow as daily Google Play revenue to BigQuery. Daily Google Play app-sales analytics uses Google Play Estimated Sales and lands in a daily table such as app_sales_daily. Google Play Earnings is monthly finance reporting and belongs to Finance Unified. A correct warehouse model keeps those outputs separate.

This page is written for finance operations teams, analytics engineers and data platform owners who want to understand what the BigQuery finance table represents, which fields matter, how null values should be interpreted and why this output should not be treated as accounting close, audit proof, tax advice or final payout truth.

QuestionDaily Google Play analyticsGoogle Play Earnings to BigQuery
Netice source modegoogle_apple_app_salesfinance_unified
Provider report familyGoogle Play Estimated SalesGoogle Play monthly Earnings
Source kindSALESFINANCE
Default BigQuery tableapp_sales_dailyfinance_unified
Main date conceptrevenue_datefiscal_period and finance-period fields

What this BigQuery table is not

finance_unified is not the daily Google Play Estimated Sales table. It is not raw Google Play report archiving. It is not accounting close, audited revenue, GAAP, IFRS, ASC 606, tax advice, bank reconciliation or a full finance system.

Finance Unified can provide a structured monthly platform-finance input where configured, but final accounting treatment, booked revenue, payout reconciliation and audit conclusions remain the customer’s own finance process.

Google Play Earnings source behavior

Google Play Earnings is a monthly finance report family. In Netice Finance Unified, Google Play Earnings rows are normalized as event-grain finance rows. The source report family is distinct from daily sales reports, and the normalized source report label is GOOGLE_PLAY_EARNINGS.

Google Play Earnings access is also different from destination access. Source access allows Netice to read the monthly Play Console Earnings report. BigQuery destination access allows Netice to write the managed finance_unified table. A valid source connection does not automatically grant BigQuery write permissions, and a valid BigQuery destination does not prove Google Play Earnings access.

Source conceptValue or behaviorPublic interpretation
Source modefinance_unifiedMonthly platform finance workflow.
Source kindFINANCEFinance rows, not daily app-sales rows.
Source reportGOOGLE_PLAY_EARNINGSGoogle Play monthly Earnings report family.
Platform/sourceANDROID / GOOGLE_PLAYAndroid Google Play finance data.
Availability timingFinance months become available according to provider reporting behavior.Not a Google SLA or exact public guarantee.

The finance_unified BigQuery table

The default Finance Unified BigQuery table is finance_unified. Public examples use a synthetic fully qualified table such as example_project.example_dataset.finance_unified. Real projects, datasets, tables, staging buckets, job IDs, task IDs, source paths and customer identifiers should stay out of public examples.

Finance Unified is an event-grain schema. It is not one row per app per month. Google Play Earnings rows can represent sales, refunds, platform fees, fee reversals, tax and adjustments where those event types are present in the source. The event type is part of the meaning of the row and should remain visible in downstream SQL.

Field groupRepresentative fieldsWhy it matters
Source identityplatform, source, source_kind, source_report, source_schema_versionKeeps Google Play Earnings separate from daily Estimated Sales.
Source lineagesource_file_name, source_file_uri, source_row_number, source_row_hash, raw_metadataSupports traceability without exposing raw provider files or rows in documentation or summaries.
Finance periodfiscal_period, calendar_period, period_start, period_end, period_calendar_typeFrames the row as monthly finance data, not daily revenue_date analytics.
Date basistransaction_date, settlement_date, effective_revenue_date, effective_revenue_date_basisPreserves finance date semantics.
Event taxonomyevent_type, event_category, event_subtype, refund_type, commission_disclosedPrevents fee, tax and adjustment rows from being treated as ordinary sales.
Amounts and currencynative_currency, native_net_proceeds, native_customer_charge, report_currency, report_net_proceeds, report_customer_charge, fx_rateKeeps native platform amounts separate from report-currency presentation fields.
Finality and ingestionis_final, ingested_at, source_available_atSupports finance-period status context; not audit or accounting-close proof.

Google Earnings event taxonomy

Google Play Earnings rows should be analyzed as finance ledger events. A sale row is different from a platform fee row. A tax row is different from a refund. Adjustments are not automatically the same thing as customer purchases. Finance queries that hide event_type can produce misleading totals.

Netice Finance Unified keeps event types such as SALE, REFUND, PLATFORM_FEE, PLATFORM_FEE_REVERSAL, TAX and ADJUSTMENT visible when they are present in the Google Play Earnings source data. This article does not claim support for additional event families beyond the product’s Finance Unified taxonomy.

Finance event typeTypical interpretationImportant caveat
SALERevenue event.Can populate customer-charge context where source provides it.
REFUNDReversal/refund event.Do not mix with daily Estimated Sales corrections without context.
PLATFORM_FEEGoogle/platform fee deduction event.Not a customer charge row; customer-charge fields can be null.
PLATFORM_FEE_REVERSALReversal of platform fee.Keep separate from sale/refund rows.
TAXTax ledger row where source provides it.Not the same as daily estimated tax method fields.
ADJUSTMENTFinance adjustment row.Can be positive or negative depending on source semantics.

Currency, FX and null-not-zero behavior

Finance Unified keeps source-native amounts and report-currency presentation fields separate. Native values remain native. Report-currency fields such as report_net_proceeds and report_customer_charge are populated where the conversion is available and valid.

Same-currency rows can use fx_rate = 1. Missing cross-currency FX should not silently become rate 1, and unknown finance values should not become zero. This is the null-not-zero policy: null means unknown, unsupported, unavailable, not disclosed, or not applicable; zero means known zero.

SituationCorrect Finance Unified behaviorUnsafe shortcut
Native currency equals report currency.Use fx_rate = 1.Treat same-currency rows as missing FX.
Cross-currency FX is missing.Keep report-currency fields null or surface quality issues.Default missing FX to 1.
Finance amount is unknown.Keep null.Convert unknown to 0.
Finance amount is real zero.Keep zero.Treat zero as missing.
Fee/tax row has no customer charge.Keep native_customer_charge null.Fill customer charge with zero and hide row semantics.

Google Earnings limitations to preserve

Google Play Earnings should not be expanded beyond what the source and Finance Unified workflow provide. Google Play Earnings should not be described as chargeback coverage, and Google finance rows should not be used to infer daily units when the finance schema leaves quantity null.

TopicHow to interpret itBoundary
ChargebacksGoogle Play Earnings is not a chargeback source in this workflow.Do not claim chargeback coverage.
QuantityGoogle Earnings finance rows can have null quantity.Do not infer units from finance rows.
Fee/tax rowsCustomer-charge fields can be null.Null is expected and does not mean zero customer charge.
Finalityis_final is a derived finance-period status field.Not provider-guaranteed accounting finality.

BigQuery write and refresh behavior

Finance Unified BigQuery behavior should be described at the product-contract level. Netice writes a managed finance table for the configured customer-owned BigQuery destination. Replacement and refresh behavior is finance-period/source based, not daily revenue-date based.

For Google Play Earnings, the managed BigQuery table is refreshed by finance-period and source context such as platform, source_kind, source, source_report and fiscal_period. Public documentation should not expose internal BigQuery SQL, staging object names, job IDs, target hashes, logs or operational runbooks.

Write conceptFinance Unified behaviorBoundary
Default tablefinance_unifiedNot app_sales_daily.
Replacement scopeFinance period and source context.Not daily revenue_date windows.
Managed destinationCustomer-owned BigQuery table configured for the task.Do not expose customer project, dataset or table names.
VerificationDestination writes are reported through safe task status and summaries.No SLA, warranty or audit claim.
Period statusSupports finality/stability context.Not accounting-close proof.

Setup, access and secret handling

Google Play Earnings source access and BigQuery destination access are separate. Google Play Earnings access lets Netice read the monthly finance source. BigQuery destination access lets Netice write the managed table to a customer-owned warehouse.

Netice encrypts customer secret material and handles credentials through secret management. Saved source and destination connections reduce repeated credential entry, but saved credential values are write-only after saving and are not shown back in the product interface. Public documentation should not include service-account JSON, private keys, service-account emails, report bucket IDs, package names, app IDs, payment profile details, source files, source rows, task IDs, run IDs, logs, credentials, secret references or customer data.

Access categoryControlsDoes not control
Google Play Earnings source accessReading monthly Google Play Earnings.Writing to BigQuery.
BigQuery destination accessWriting finance_unified to a BigQuery dataset/table.Reading Google Play source reports.
Report currency settingPresentation fields such as report_net_proceeds.Replacing source-native amounts or accounting policy.
Safe diagnosticsReason categories, counts, statuses and hashes.Raw provider rows, credentials or report contents.

Safe synthetic examples

The examples below are synthetic and simplified. They show table and query shape only. They are not real Google Play rows, not accounting examples and not proof of payout reconciliation.

Safe BigQuery target

Project: example_project
Dataset: example_dataset
Table: finance_unified
Fully qualified table: example_project.example_dataset.finance_unified
Source mode: finance_unified
Provider selected: Google Play Earnings
Source report label: GOOGLE_PLAY_EARNINGS
Schema version: finance_unified_v3_event_grain

Safe finance-period query

SELECT
  fiscal_period,
  event_type,
  native_currency,
  report_currency,
  SUM(native_net_proceeds) AS native_net_proceeds,
  SUM(report_net_proceeds) AS report_net_proceeds
FROM `example_project.example_dataset.finance_unified`
WHERE source = 'GOOGLE_PLAY'
  AND source_kind = 'FINANCE'
  AND source_report = 'GOOGLE_PLAY_EARNINGS'
  AND fiscal_period BETWEEN DATE '2026-02-01' AND DATE '2026-04-01'
GROUP BY fiscal_period, event_type, native_currency, report_currency
ORDER BY fiscal_period, event_type, native_currency;

Safe null coverage query

SELECT
  fiscal_period,
  event_type,
  COUNT(*) AS rows_total,
  COUNTIF(report_net_proceeds IS NULL) AS rows_missing_report_net,
  COUNTIF(report_net_proceeds = 0) AS rows_known_zero_report_net,
  COUNTIF(native_customer_charge IS NULL) AS rows_without_customer_charge
FROM `example_project.example_dataset.finance_unified`
WHERE source = 'GOOGLE_PLAY'
  AND source_kind = 'FINANCE'
  AND source_report = 'GOOGLE_PLAY_EARNINGS'
  AND fiscal_period = DATE '2026-02-01'
GROUP BY fiscal_period, event_type
ORDER BY event_type;

The null coverage query intentionally keeps null and zero separate. Do not rewrite it into a finance-close query that hides unknown values with blanket COALESCE.

FAQ

What is Google Play Earnings to BigQuery in Netice?

It is the Finance Unified workflow for writing monthly Google Play Earnings rows into a customer-owned BigQuery table, normally finance_unified.

Is Google Play Earnings the same as Google Play Estimated Sales?

No. Estimated Sales is daily app-sales analytics. Google Play Earnings is monthly finance reporting and belongs to Finance Unified.

What BigQuery table does Finance Unified use by default?

The default BigQuery table is finance_unified.

What is source_report = 'GOOGLE_PLAY_EARNINGS'?

It is the Finance Unified source-report label for Google Play monthly Earnings rows.

Why are Google Earnings rows event-grain?

Google Earnings can contain sales, refunds, platform fees, fee reversals, tax and adjustments. Keeping event type visible prevents those rows from being flattened into misleading totals.

Does Google Earnings include chargebacks?

This workflow should not be described as chargeback coverage. Do not infer chargebacks from Google Play Earnings rows.

Why can quantity be null for Google Earnings?

Google Earnings finance rows can leave quantity null. Do not infer units from finance rows.

Why are customer-charge fields null on fee and tax rows?

Fee and tax rows are ledger component rows, not customer charge events. Null customer-charge fields can be correct and should not be filled with fake zeros.

What does is_final mean in Finance Unified?

is_final is a derived Finance Unified finality/status field. It is not provider-guaranteed audit truth, accounting close, GAAP, IFRS, ASC 606, tax advice or bank reconciliation.

Does Netice encrypt Google Play credential material?

Yes. Netice encrypts customer secret material and handles credentials through secret management. Saved credential values are write-only after saving and are not shown back in the product interface.

Can I use this table for accounting close or bank reconciliation?

This table can support monthly platform finance review where configured, but it is not a complete accounting system, audit proof, tax system or bank reconciliation product.

Keep Google Play Earnings separate from daily app-sales analytics

Netice Finance Unified helps teams structure Google Play monthly Earnings in BigQuery while preserving source report, event type, finance period, native/report currency and null-not-zero boundaries.

Review pricing Review security