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 revenue to Snowflake

Netice sends Google Play daily app-sales analytics into Snowflake as a managed, source-aware table. If you also enable Apple App Store, Google Play and Apple daily app-sales rows can land in one clean Snowflake table for cross-platform analytics. The main distinction is two-fold: Daily App Sales is for analytics teams and dashboards, while Finance Unified is monthly platform finance output for finance teams.

What Google Play revenue to Snowflake means in Netice

In Netice, Google Play revenue to Snowflake means loading Google Play daily app-sales analytics into a customer-owned Snowflake table. The workflow belongs to Daily App Sales, using the source mode google_apple_app_sales with Google Play selected as the provider.

Google Play can be used by itself, or combined with Apple App Store if the customer wants one clean daily revenue table across both major app stores. In a combined setup, Apple and Google Play rows share the same Daily App Sales table, while fields such as source, platform, source_kind and source_report keep the providers and report families distinct.

The resulting Snowflake output is not a raw Google Play report archive and not the monthly Google Play Earnings finance report. It is the managed daily app-sales table APP_SALES_DAILY, with fields for revenue date, platform, source report, product identifiers, report currency, native values, method fields, data completeness and source lineage.

Netice workflow Google Play report family Snowflake / output behavior Use case
Daily App Sales Estimated Sales and subscription lifecycle rows APP_SALES_DAILY; can include Google Play only or Apple + Google Play together Daily app revenue analytics for product, finance-ops and data teams.
Finance Unified Google Play Earnings FINANCE_UNIFIED where configured Monthly platform finance review for finance teams.
Raw Reports Provider-native Google Play report files Separate provider-native raw report workflow Source-native artifact custody, normally handled as a separate raw-report output.

The two-fold revenue distinction

Netice separates app-store revenue reporting into two main business layers. Daily App Sales is the analytics layer: it answers “what happened by day, app, product, country, platform and source report?” Finance Unified is the monthly platform-finance layer: it answers “what did Apple or Google Play report for the finance period?”

Google Play daily revenue can be unified with Apple App Store daily revenue in APP_SALES_DAILY when the customer wants one cross-platform Snowflake table. Google Play Earnings stays separate in FINANCE_UNIFIED where configured. The daily table is not payout reconciliation, final settlement, audited revenue, tax advice, bank reconciliation, GAAP, IFRS, ASC 606 or accounting-close truth.

Google Play by itself, or unified with Apple App Store

A Google Play Snowflake task can be configured for Android-only daily analytics. That is useful when the customer only needs Google Play revenue. But the larger Netice model is cross-platform: when Apple App Store is enabled too, both providers can feed the same Daily App Sales output so the customer gets one clean table for app-store revenue analytics.

The table is unified, but not vague. Apple rows keep Apple source labels, Google Play rows keep Google source labels, and lifecycle rows can be separated from money-impacting rows. That is the difference between a useful unified table and a dangerous blended “revenue” dump.

Setup Snowflake daily table How rows stay explainable
Google Play only APP_SALES_DAILY source = 'GOOGLE_PLAY', platform = 'ANDROID', source_report = 'GP_ESTIMATED_SALES' or lifecycle labels where available.
Apple App Store + Google Play APP_SALES_DAILY Apple and Google rows share one table, but source, platform, source_kind and source_report preserve source meaning.
Monthly finance enabled FINANCE_UNIFIED Finance rows stay separate from daily analytics and use source_kind = 'FINANCE'.

Google Play source mode and provider selection

The Netice source mode for Daily App Sales is google_apple_app_sales. Google Play can be selected without Apple where only Android daily app-sales output is needed. Apple App Store can be added when the customer wants unified Apple + Google Play daily revenue analytics.

For a Google-focused Snowflake article, the important source labels are Android-specific. Google Play daily revenue rows use source = 'GOOGLE_PLAY', platform = 'ANDROID', source_kind = 'SALES', and source_report = 'GP_ESTIMATED_SALES'. Google Play subscription lifecycle rows can use source_report = 'GP_SUBSCRIPTIONS'.

Field Google Play daily value Meaning
source GOOGLE_PLAY The provider/source category.
platform ANDROID The app platform context.
source_kind SALES Daily app-sales analytics, not monthly finance.
source_report GP_ESTIMATED_SALES Google Play daily Estimated Sales source family.
source_report GP_SUBSCRIPTIONS Google Play subscription lifecycle source family where available.

The APP_SALES_DAILY Snowflake table

The default Snowflake table for daily Google Play app-sales output is APP_SALES_DAILY. It is a managed enriched analytics table, not a raw provider file dump. In public examples, use synthetic fully qualified names such as EXAMPLE_DATABASE.EXAMPLE_SCHEMA.APP_SALES_DAILY.

The table carries the Daily App Sales field groups. It includes source identity, report currency, native/local values, method fields, lifecycle flags, data completeness and provenance. Daily rows use source-readiness context, not a public daily is_final accounting-finality field.

Field group Representative fields Google Play interpretation
Date and source revenue_date, source, platform, source_kind, source_report Use these fields to separate Google Play daily sales rows from finance and lifecycle rows.
App/product context app_id, country, item_id, item_name, subscription_period, transaction_type Supports app, product, country and subscription analysis with synthetic examples only.
Report-currency estimates report_currency, estimated_gross, estimated_net, estimated_tax, estimated_fee Useful for daily BI reporting, but not final payout or monthly Earnings truth.
Native/local values native_currency, gross_local, net_local, tax_local, fee_local Preserves source/native context where available or estimated.
Method and FX context gross_fx, net_fx, tax_fx, fee_fx, net_method, fee_method, tax_method Explains how daily values were derived or converted.
Freshness and lifecycle data_completeness, event_has_revenue Helps separate source-readiness and lifecycle rows from money-impacting rows.
Provenance source_file_uri, source_row_number, source_row_hash, ingested_at, meta_json Supports safe traceability without exposing raw Google Play report contents.

Report currency, native values and method fields

Google Play daily Snowflake rows include both report-currency analytics fields and native/source currency context. report_currency is the configured reporting currency for the task. Native/local fields preserve source context where available. FX fields and method fields explain how daily analytical values were derived or converted.

Method fields are especially important for Google Play. Google Play Estimated Sales does not itemize the Google service fee as a monthly finance ledger row. Daily fee and net values can therefore be method-coded or estimated. Tax values are interpreted together with method context instead of treated as unexplained final finance facts.

Concept Field examples Safe interpretation
Report-currency net estimated_net, report_currency Daily analytics value in the configured reporting currency.
Native/source context native_currency, gross_local, net_local Preserves local/source-side context where available or derived.
Fee method fee_method Required context because Estimated Sales does not itemize service fee like monthly Earnings.
Tax method tax_method Shows how daily tax values are interpreted.
Lifecycle flag event_has_revenue Prevents lifecycle-only subscription rows from being summed as revenue.

Snowflake destination setup and secret handling

Google Play source access and Snowflake destination access are separate. Google Play access lets Netice read selected Play Console reporting inputs. Snowflake destination access lets Netice write the managed output table in the customer’s Snowflake environment. A valid Google Play source connection does not mean Snowflake can be written, and a valid Snowflake connection does not mean Google Play reports are accessible.

Snowflake destination setup is designed around key-pair access for these app revenue workflows. Snowflake private-key material, passphrases and destination credential material are encrypted and handled through Netice secret management. Saved Snowflake destination connections reduce repeated setup, but they are not credential viewers and they remain separate from Google Play source access.

Setup area Purpose Public-safe example
Google Play source access Read Google Play Estimated Sales / subscription reporting inputs. example_google_play_reporting
Snowflake account Identify the destination account. EXAMPLE_ACCOUNT
Warehouse Provide compute for loading/writing. EXAMPLE_WAREHOUSE
Database and schema Contain the managed table. EXAMPLE_DATABASE.EXAMPLE_SCHEMA
Daily table Store Google Play daily analytics rows. APP_SALES_DAILY
Stage Support staged Snowflake loading. NETICE_STAGE

Public examples use synthetic Snowflake identifiers. Real account names, users, roles, warehouses, database/schema/table names, private keys, passphrases, stage paths, query IDs, logs, task IDs, saved connection IDs and customer identifiers remain private.

Staged loads and scoped refresh behavior

Netice is not a blind append-only dump. The customer-facing model is a managed Snowflake table that can be refreshed for selected windows and source scopes. Candidate rows can be staged, checked and then used to update the managed table.

This matters because Google Play data can arrive or change after an initial run. Reruns and recurring refreshes update selected windows without turning every run into a duplicate append or a destructive full-table rewrite.

Behavior Snowflake purpose Customer-facing boundary
Managed table Keep APP_SALES_DAILY current. Every run does not need to create a new public table.
Staged load Prepare candidate rows before table refresh. Internal stage files and SQL are not public examples.
Scoped replacement Refresh selected date/source windows. Recent windows can be updated without describing unbounded full-table deletes.
Duplicate checks Block duplicate candidate groups before usable output. Customers avoid manual deduplication for every rerun.
Zero-row guard Prevent empty/invalid candidates from silently replacing output. Missing provider rows are not treated as zero revenue.

Backfills, reruns and Google Play provider-late data

Daily app-sales pipelines need refresh behavior because recent Google Play data may not be fully stable the first time it is fetched. Netice supports recurring refresh behavior for recent completed windows, plus explicit backfills and reruns within supported source availability.

It is also important to keep failure categories separate. A Google Play provider-late condition is different from a Google Play source permission failure. Both are different from a Snowflake write permission failure. Clear operational messaging keeps those categories distinct.

Situation Correct category Wrong interpretation
Recent Google Play report data is not available yet. Provider-late or provider availability state. Snowflake is broken or revenue is zero.
Google Play source access fails. Source access problem. Snowflake destination access caused it.
Snowflake role cannot write the table. Destination access problem. Google Play source reports are missing.
Subscription lifecycle rows have no revenue impact. Lifecycle semantics. Every subscription event is revenue.

Google Play Earnings and raw reports stay separate

A Google Play Snowflake destination page can mention Finance Unified and raw reports while keeping them out of the daily table.

Google Play Earnings belongs to Finance Unified. It uses monthly finance semantics and a finance source report such as GOOGLE_PLAY_EARNINGS. It belongs outside APP_SALES_DAILY.

Raw Google Play reports use a separate source mode. Raw reports preserve provider-native files rather than applying the Daily App Sales schema, report currency, FX conversion or method fields. Raw reports are separate from the daily Snowflake analytics table.

Question Daily Snowflake answer Separate workflow
Where do Google Play daily analytics rows go? APP_SALES_DAILY Daily App Sales
Where do Apple + Google daily analytics rows go? APP_SALES_DAILY Unified Daily App Sales when both providers are enabled
Where do monthly Google Play Earnings belong? Not in the daily table Finance Unified / FINANCE_UNIFIED where configured
Where do raw Google Play provider files belong? Not the daily schema Raw Reports, separate from daily and finance outputs

Safe synthetic examples

The examples below are synthetic. They are designed to show safe shape and interpretation only. Real Snowflake identifiers, Google Play report bucket IDs, package names, source paths, row hashes, task IDs, logs, credentials and customer values remain private.

Safe Snowflake target

Account: EXAMPLE_ACCOUNT
Warehouse: EXAMPLE_WAREHOUSE
Database: EXAMPLE_DATABASE
Schema: EXAMPLE_SCHEMA
Daily table: APP_SALES_DAILY
Fully qualified table: EXAMPLE_DATABASE.EXAMPLE_SCHEMA.APP_SALES_DAILY
Stage: NETICE_STAGE
Source provider: Google Play
Optional second provider: Apple App Store
Report currency: EUR

Google-only daily Snowflake query

SELECT
  revenue_date,
  source_report,
  item_id,
  report_currency,
  SUM(estimated_net) AS estimated_net_report_currency,
  SUM(units) AS units
FROM EXAMPLE_DATABASE.EXAMPLE_SCHEMA.APP_SALES_DAILY
WHERE source = 'GOOGLE_PLAY'
  AND platform = 'ANDROID'
  AND source_kind = 'SALES'
  AND event_has_revenue = TRUE
  AND revenue_date BETWEEN DATE '2026-02-01' AND DATE '2026-02-29'
GROUP BY revenue_date, source_report, item_id, report_currency
ORDER BY revenue_date, source_report, item_id, report_currency;

Unified Apple + Google daily Snowflake query

SELECT
  revenue_date,
  source,
  platform,
  source_report,
  report_currency,
  SUM(estimated_net) AS estimated_net_report_currency,
  SUM(units) AS units
FROM EXAMPLE_DATABASE.EXAMPLE_SCHEMA.APP_SALES_DAILY
WHERE source_kind = 'SALES'
  AND event_has_revenue = TRUE
  AND revenue_date BETWEEN DATE '2026-02-01' AND DATE '2026-02-29'
GROUP BY revenue_date, source, platform, source_report, report_currency
ORDER BY revenue_date, source, platform, source_report;

Subscription lifecycle rows

SELECT
  revenue_date,
  transaction_type,
  COUNT(*) AS lifecycle_events
FROM EXAMPLE_DATABASE.EXAMPLE_SCHEMA.APP_SALES_DAILY
WHERE source = 'GOOGLE_PLAY'
  AND source_report = 'GP_SUBSCRIPTIONS'
  AND event_has_revenue = FALSE
GROUP BY revenue_date, transaction_type
ORDER BY revenue_date, transaction_type;

These queries are for daily analytics. They are not Google Play Earnings queries, finance-close queries, payout reconciliation queries or internal Netice merge SQL.

FAQ

What is Google Play revenue to Snowflake in Netice?

It is the Daily App Sales workflow for sending Google Play daily app-sales analytics into a customer-owned Snowflake table, normally APP_SALES_DAILY.

Can Google Play be unified with Apple App Store revenue in Snowflake?

Yes. When both providers are enabled, Google Play and Apple App Store daily app-sales rows can share the same APP_SALES_DAILY table. Source fields such as source, platform and source_report keep the providers distinct.

Can I select Google Play without Apple App Store?

Yes. Google Play can be configured by itself when the customer only wants Android daily app-sales output.

Which Snowflake table does Netice use for daily Google Play revenue?

The default daily Snowflake table is APP_SALES_DAILY.

Is APP_SALES_DAILY Google Play Earnings?

No. APP_SALES_DAILY is daily app-sales analytics. Google Play Earnings belongs to Finance Unified where configured.

What is the two-fold revenue distinction in Netice?

Daily App Sales is the analytics layer for daily Apple and Google Play app revenue. Finance Unified is the monthly platform-finance layer for finance teams where configured.

What is GP_ESTIMATED_SALES?

GP_ESTIMATED_SALES is the Netice source-report label for Google Play daily Estimated Sales style rows in Daily App Sales.

What is GP_SUBSCRIPTIONS?

GP_SUBSCRIPTIONS identifies Google Play subscription lifecycle rows where available. These rows are interpreted with event_has_revenue and amount fields, not blindly summed as revenue.

Does the daily Snowflake table show final payout or settlement revenue?

No. It is operational analytics, not final payout, settlement, audit, accounting close, GAAP, IFRS, ASC 606, tax advice or bank reconciliation.

How does report currency differ from native currency?

Report currency is the configured analytics/presentation currency. Native and local fields preserve source-side currency context where available or derived.

Does Netice load raw Google Play reports to Snowflake?

Raw Google Play reports are a separate provider-native workflow, not the daily APP_SALES_DAILY analytics table.

What Snowflake access does Netice need?

Snowflake destination setup uses key-pair access with account, user, warehouse, database, schema, role, table and stage context. Source access to Google Play is configured separately.

How does Netice protect Snowflake and Google Play credential material?

Netice encrypts customer secret material and handles it through secret management. Saved connections reduce repeated setup, but raw credential values are not shown back as credential viewers.

Query Google Play daily revenue in Snowflake without losing source context

Netice helps app teams move Google Play daily app-sales analytics into Snowflake, optionally unify it with Apple App Store daily app sales, and keep Estimated Sales, subscription lifecycle rows, monthly Earnings and raw reports clearly separated.

Review pricing Review security