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

App revenue to Snowflake

Netice sends Apple App Store and Google Play app revenue data into customer-owned Snowflake tables. The important part is not only moving rows into a warehouse. It is preserving the difference between daily app-sales analytics, monthly platform finance output, and provider-native raw reports so Snowflake users do not treat every app-store number as the same kind of revenue fact.

What Netice sends to Snowflake

Netice app revenue workflows can write managed Snowflake outputs for app-store reporting. Daily App Sales uses the default Snowflake table APP_SALES_DAILY. Finance Unified, when enabled for a workspace or task, uses a separate default Snowflake table named FINANCE_UNIFIED.

Those two tables should not be merged mentally. Daily App Sales is for operational daily app revenue analytics. It uses Apple App Store Sales and Trends / Summary Sales style reporting and Google Play Estimated Sales style reporting. Finance Unified is the monthly platform finance layer for Apple financeReports and Google Play Earnings where configured. Raw reports are a third category: provider-native file custody, not the managed daily or finance Snowflake table.

Output family Default Snowflake table Primary use Critical boundary
Daily App Sales APP_SALES_DAILY Daily operational analytics for Apple App Store and Google Play sales-style reporting. Not final payout, settlement, accounting close, tax, audit, or bank reconciliation data.
Finance Unified FINANCE_UNIFIED Monthly platform finance output where configured. Separate from Daily App Sales and not a full accounting system.
Raw Reports Separate raw-report archival path Provider-native raw report custody. Raw reports are handled separately from the managed daily and finance Snowflake tables.

What this Snowflake output is not

Daily app revenue in Snowflake is not final payout, settlement, audited revenue, GAAP, IFRS, ASC 606, tax advice, bank reconciliation, or accounting close. The daily table is designed for operational analytics: trends by day, product, country, platform, source report, lifecycle state, and report currency.

Finance Unified is closer to monthly platform finance reporting, but it still should not be described as a complete accounting system, an audit opinion, or a replacement for the customer’s finance close process. It preserves platform finance semantics where configured, but accounting treatment remains the customer’s process.

Daily App Sales table: APP_SALES_DAILY

The main Snowflake table for daily app-sales analytics is APP_SALES_DAILY. It is produced by the google_apple_app_sales workflow and uses the current daily app-sales field contract. Apple and Google rows can coexist in the same daily table, but the table keeps source fields visible so downstream users can tell which provider and report family produced each row.

That source context matters. Apple daily rows are based on Sales and Trends / Summary Sales style reporting, not Apple financeReports. Google daily rows are based on Estimated Sales and subscription reporting, not Google Play Earnings. The daily table uses source_kind = 'SALES', not FINANCE.

Daily field group Representative fields Why it matters in Snowflake
Source identity platform, source, source_kind, source_report Prevents Apple Summary Sales, Google Estimated Sales, and lifecycle rows from being treated as anonymous revenue.
Date and readiness revenue_date, data_completeness, ingested_at Supports daily reporting and freshness checks. data_completeness is not settlement finality.
Product and geography app_id, item_id, item_name, country, subscription_period, transaction_type Supports app, product, subscription, country, and transaction-type analysis.
Report-currency amounts report_currency, estimated_gross, estimated_net, estimated_tax, estimated_fee Useful for BI reporting, but still daily analytics, not final finance truth.
Native and local values native_currency, gross_local, net_local, tax_local, fee_local, apple_proceeds_native Preserves provider/source currency context and Apple-specific proceeds where applicable.
Method and FX context gross_fx, net_fx, tax_fx, fee_fx, net_method, fee_method, tax_method Explains how daily analytical values were converted or derived.
Lineage source_file_uri, source_row_number, source_row_hash, meta_json Supports safe provenance and duplicate/source-change analysis without exposing raw provider rows.

Finance Unified table: FINANCE_UNIFIED

Finance Unified is a separate Snowflake output for monthly platform finance data where configured. Its default Snowflake table is FINANCE_UNIFIED. It is not a daily app-sales table and it should not be used as a replacement for daily product analytics.

Finance Unified uses monthly finance report families: Apple App Store Connect financeReports and Google Play monthly Earnings. Those are different from Apple Summary Sales and Google Play Estimated Sales. The finance table uses source_kind = 'FINANCE', period fields such as fiscal_period, native/report-currency finance fields, event types, and derived finance-finality context.

Finance concept Snowflake table behavior Boundary
Default table FINANCE_UNIFIED Separate from APP_SALES_DAILY.
Source kind FINANCE Not daily SALES rows.
Source reports Apple financeReports and Google Play Earnings where configured. Not Apple Summary Sales or Google Estimated Sales.
Refresh scope Finance-period/source scoped replacement. Not daily revenue_date refresh semantics.
Unknown values Finance unknowns remain null. Null is not zero.

Use Finance Unified when it is enabled for the relevant workspace and task. Keep it separate from Daily App Sales, and do not treat it as a general ledger, audit opinion, bank reconciliation product, or accounting-close system.

Snowflake destination setup

Snowflake destination access is separate from Apple or Google source access. Apple App Store Connect access lets Netice read Apple reporting inputs. Google Play access lets Netice read selected Play Console reporting inputs. Snowflake destination access lets Netice write managed output tables to a customer-owned Snowflake target.

Netice uses key-pair authentication as the preferred Snowflake setup path for app revenue workflows. Snowflake setup includes account, user, warehouse, database, schema, table, role, and stage context. Customer Snowflake credential material is encrypted and handled through Netice secret management, and saved connection summaries do not display raw private keys or passphrases. High-privilege administrative roles should not be used; Snowflake destination access should follow least-privilege principles.

Setup area What it does Safe synthetic example
Snowflake account Identifies the Snowflake account target. EXAMPLE_ACCOUNT
Warehouse Provides compute for loading and writing the table. EXAMPLE_WAREHOUSE
Database and schema Contain the managed app revenue tables. EXAMPLE_DATABASE.EXAMPLE_SCHEMA
Daily table Stores daily app-sales analytics. APP_SALES_DAILY
Finance table Stores Finance Unified rows where configured. FINANCE_UNIFIED
Stage Supports Snowflake loading. NETICE_STAGE

Customer-facing examples use synthetic values rather than real Snowflake accounts, users, roles, warehouses, databases, schemas, tables, stages, private keys, passphrases, query IDs, task IDs, logs, or customer identifiers.

Credential encryption and secret management

Snowflake private-key material, passphrases and destination credentials are sensitive customer secret material. Netice encrypts customer secrets and handles credential material through secret management instead of storing raw credentials in task text, article examples, support snippets or browser-visible summaries.

Saved Snowflake connections reduce repeated setup, but they are not a credential viewer. After saving, the interface shows safe status and connection metadata, not raw private keys, passphrases, secret references, internal credential IDs, task IDs, query IDs or logs.

Security concept Customer-facing meaning Boundary
Encrypted secret handling Credential material is protected through Netice secret management. Do not expose secret refs, private keys or passphrases in documentation or summaries.
Saved Snowflake connection Reusable destination access for configured tasks. Not a way to view or recover raw credential material.
Least-privilege role Use a Snowflake role appropriate for the target database, schema, table and stage. Do not use broad administrative roles for routine app revenue writes.
Source/destination separation Snowflake access writes to Snowflake; Apple/Google access reads provider reports. One credential type does not replace the other.

How Netice refreshes Snowflake tables

The customer-facing model is a stable managed table, not a new public table on every run. For Daily App Sales, Netice keeps the selected APP_SALES_DAILY table current. For Finance Unified, Netice keeps a separate finance table current where that workflow is configured.

The Snowflake daily write path is designed around managed loading and scoped refresh behavior for selected windows. Candidate rows can be checked before the managed table is updated. Replacement is scoped by the relevant reporting window and source context rather than being an unbounded table wipe.

Refresh behavior Why it matters What this does not mean
Staged load Candidate rows can be checked before being treated as usable table output. Rows are blindly appended.
Scoped replacement Selected date/source windows can be refreshed without describing a full-table destructive rewrite. The whole table is erased on every run.
Duplicate checks Duplicate candidate rows can be blocked before they enter the managed table. Customers must manually deduplicate every rerun.
Zero-row guard Empty or invalid candidate output should not silently erase useful data. Missing provider data means zero revenue.
Schema alignment The managed table stays aligned with the current field contract. Snowflake output is an untyped raw string dump.

Backfills, reruns, and provider-late data

App stores can publish or update recent data after the first time a date is processed. That is why Snowflake output should support first runs, backfills, recurring refreshes, and reruns of selected windows. Daily app-sales workflows refresh recent completed days. Finance output follows finance periods rather than daily revenue dates.

Provider-late data is not automatically a destination failure. A Google Play report can be late or unavailable while Snowflake destination access is valid. A Snowflake write failure can happen while Apple or Google source access is valid. A good Snowflake article must keep those failure classes separate.

Condition Likely category How to interpret safely
Provider report not available yet Source availability / provider-late data Do not write fake zero revenue.
Apple or Google credentials rejected Source access failure Snowflake destination setup does not fix provider permissions.
Snowflake role lacks write access Destination access failure Provider source access may still be valid.
Candidate rows duplicate unexpectedly Output quality / refresh safety Block and review rather than silently append.
Finance FX missing Finance/report-currency quality Keep report fields null; do not invent rates.

Raw reports and Snowflake

Raw reports are intentionally separate from this managed Snowflake destination story. Raw Google Play and Apple App Store reports preserve provider-native files and columns. They do not apply the daily app-sales schema, report currency, method fields, or FX conversion.

Raw reports are normally treated as provider-native object-storage artifacts rather than rows in the managed Snowflake daily or finance tables. Plan raw report custody around GCS or S3 unless a specific raw warehouse workflow has been enabled. Do not describe raw reports as automatically loading into APP_SALES_DAILY or FINANCE_UNIFIED.

Safe synthetic examples

The examples below are synthetic. They show how a Snowflake customer might query Netice-managed outputs without exposing real Snowflake account names, app IDs, SKUs, row hashes, task IDs, logs, credentials, or customer data.

Daily App Sales Snowflake target

Account: EXAMPLE_ACCOUNT
Warehouse: EXAMPLE_WAREHOUSE
Database: EXAMPLE_DATABASE
Schema: EXAMPLE_SCHEMA
Table: APP_SALES_DAILY
Stage: NETICE_STAGE

Finance Unified Snowflake target

Account: EXAMPLE_ACCOUNT
Warehouse: EXAMPLE_WAREHOUSE
Database: EXAMPLE_DATABASE
Schema: EXAMPLE_SCHEMA
Table: FINANCE_UNIFIED
Stage: NETICE_STAGE

Daily App Sales query

SELECT
  revenue_date,
  platform,
  source,
  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 revenue_date BETWEEN DATE '2026-02-01' AND DATE '2026-02-29'
  AND source_kind = 'SALES'
  AND event_has_revenue = TRUE
GROUP BY revenue_date, platform, source, source_report, report_currency
ORDER BY revenue_date, platform, source_report;

Finance Unified query where configured

SELECT
  fiscal_period,
  platform,
  source,
  source_report,
  report_currency,
  SUM(report_net_proceeds) AS report_net_proceeds
FROM EXAMPLE_DATABASE.EXAMPLE_SCHEMA.FINANCE_UNIFIED
WHERE source_kind = 'FINANCE'
  AND fiscal_period BETWEEN DATE '2026-02-01' AND DATE '2026-04-01'
GROUP BY fiscal_period, platform, source, source_report, report_currency
ORDER BY fiscal_period, platform, source_report;

The first query is daily operational analytics. The second query is monthly finance-period analysis where Finance Unified is configured. Neither query is payout reconciliation, audit evidence, tax advice, or accounting close.

FAQ

What is app revenue to Snowflake in Netice?

It is the Netice destination workflow for writing app revenue outputs into customer-owned Snowflake tables. Daily App Sales uses APP_SALES_DAILY. Finance Unified, where configured, uses FINANCE_UNIFIED.

Which Snowflake table does Daily App Sales use?

The default Snowflake table for Daily App Sales is APP_SALES_DAILY.

Which Snowflake table does Finance Unified use?

The default Snowflake table for Finance Unified is FINANCE_UNIFIED, when that workflow is enabled.

Is APP_SALES_DAILY final payout or accounting data?

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

Does Netice load raw App Store or Google Play reports into Snowflake?

Raw reports are a separate provider-native output family and should not be assumed to load into the managed daily or finance Snowflake tables.

Does Snowflake setup use password authentication?

Netice uses key-pair authentication as the preferred Snowflake setup path for app revenue workflows. Snowflake credential material is encrypted and handled through Netice secret management, and saved connection summaries do not display raw private keys or passphrases.

Does Netice encrypt Snowflake credential material?

Yes. Snowflake private-key material, passphrases and destination credentials are encrypted and handled through Netice secret management. Saved connection summaries do not show raw credential material after saving.

Can I use a saved Snowflake connection?

Yes. Saved Snowflake destination connections can be used when configured. Saved destination access is separate from Apple or Google source access, and credential values are not shown back after saving.

What is the difference between source access and Snowflake destination access?

Source access lets Netice read Apple or Google reporting inputs. Snowflake destination access lets Netice write managed tables to the customer’s Snowflake environment. One does not replace the other.

How does Netice refresh the Snowflake table?

Netice uses managed loading, validation, duplicate checks, and scoped refresh behavior for Snowflake output. Customer-facing documentation stays at this level and does not expose internal SQL, stage paths, query IDs, logs, or runbook details.

Can I use Snowflake output for finance close?

Daily App Sales should not be used as finance close. Finance Unified can provide monthly platform finance input where configured, but it is not a complete accounting system, audit proof, or bank reconciliation product.

Put app revenue data in the Snowflake tables your team already queries

Netice helps app teams deliver source-aware Apple App Store and Google Play revenue data into Snowflake while keeping daily analytics, monthly finance output, and raw report custody clearly separated.

Review pricing Review security