Skip to content
NeticeStart free

NETICE DOCUMENTATION

App Store and Google Play revenue in Snowflake

Reviewed

Netice delivers normalized Apple App Store and Google Play reporting into your Snowflake account. Daily App Sales and Platform Finance use separate managed tables. The Snowflake connection uses key-pair authentication and a configured database, schema, warehouse and role.

Workflow Default table Contract
Daily App Sales APP_SALES_DAILY 38 fields; daily operational estimates
Platform Finance FINANCE_UNIFIED 49 fields; monthly source-derived financial events

Prepare Snowflake access

  1. Choose the target database and schema for managed outputs and the warehouse used to execute work.
  2. Prepare a Snowflake user with key-pair authentication and a role scoped to the selected destination.
  3. Provide the connection settings through Netice’s destination setup. Keep private key material out of SQL examples, shared documents and support messages.
  4. Check the role’s access to the warehouse, database and schema, including the objects needed for staging and destination writes.
  5. Connect the Apple or Google source independently, select the reporting family, and run a small reporting window.

The required destination access is more than read-only querying: Netice stages data and updates managed output. A successful login alone does not prove the selected role can complete a delivery.

Scope the loader role to a dedicated schema

The runtime role needs USAGE on the chosen warehouse, database and schema, plus the table and stage operations used by the workflow. Netice’s guided grants include CREATE TABLE and CREATE STAGE on the destination schema, and SELECT, INSERT, UPDATE and DELETE on its managed tables. Platform Finance also creates companion views, requiring CREATE VIEW. Apply table grants to the relevant existing and future objects in a dedicated schema, rather than unrelated tables.

Use an administrator to establish these grants, then run transfers with the dedicated role. For a new Daily App Sales task, choose an unused managed table; editing the existing task should retain its established target. Snowflake’s privilege reference defines the resource scopes.

Netice supports RSA key-pair authentication for Snowflake, not password authentication. Follow the saved-connection setup or provide the encrypted private key and passphrase through the credential fields; Snowflake receives the public key. See Snowflake’s key-pair and rotation guidance.

Apple and Google differ before they reach Snowflake

For Apple daily sales, verify vendor access and separate customer currency from proceeds currency. For Apple finance, preserve fiscal periods. Start with Apple setup and the Apple report-family map.

For Google, verify financial-report access to the Play Console reporting bucket. Estimated Sales is the daily input; Earnings is the finance input. Google Earnings includes separate signed fee and adjustment events that must remain in a proceeds calculation. See Google setup and the Google report-family map.

Refresh behavior and downstream ownership

Daily delivery stages data and replaces the selected reporting-date window with integrity checks. Finance delivery replaces the selected source and report-period scope. Keep transformations in your own views or downstream tables; changes made directly to managed rows can be replaced by a rerun.

Customer-owned storage does not make a managed table an immutable audit archive. If you need historical snapshots, create them in your own Snowflake data model. The refresh guide defines what a backfill or rerun changes.

Use the exact column identifiers

Netice creates contract columns with quoted names. Use quoted lowercase field identifiers in Snowflake SQL. For example, "revenue_date" and "estimated_net" are the daily contract fields; an unquoted identifier can resolve differently.

SELECT "revenue_date", "source", "report_currency",
       SUM("estimated_net") AS estimated_net_total
FROM EXAMPLE_DB.ANALYTICS.APP_SALES_DAILY
GROUP BY "revenue_date", "source", "report_currency"
ORDER BY "revenue_date";

Replace the fictional database and schema with your destination. This is an operational estimate, not a payout total. Inspect method fields using the daily schema; use the separate finance schema for Earnings and Apple finance.

Use the Snowflake output explorer to inspect example rows for both stores and queries with quoted contract identifiers.