Raw reports guide for app revenue
Netice raw reports preserve provider-native Apple App Store and Google Play report artifacts in customer-owned storage. Raw mode is useful when your team wants source-native files and safe status metadata beside normalized app revenue outputs, without turning raw files into the unified Daily App Sales table or the monthly Finance Unified table.
google_play_raw_reportsapple_app_store_raw_reportsWhat raw reports are
Raw reports are provider-native report artifacts copied from Apple App Store or Google Play reporting systems into customer-owned storage where the selected raw workflow is enabled. The goal is to preserve the original provider report family and file shape, not to convert the data into Netice’s daily app-sales schema or monthly finance schema.
Google Play raw reports use google_play_raw_reports. Apple App Store raw reports use apple_app_store_raw_reports. They are provider-specific workflows because Apple and Google raw files do not share one universal source schema.
Raw mode is useful for source retention, future reprocessing, provider-format investigation, source custody, and support review. It is not the right mode when the goal is one query-ready daily revenue table or one normalized monthly finance table.
Raw mode in one sentence
Raw reports preserve provider-native files and columns; they do not merge Apple and Google, do not normalize schema, do not apply report currency, and do not calculate FX.
If you want Apple App Store and Google Play revenue unified into one clean daily analytics table, use Daily App Sales. If you want monthly platform-finance rows for finance-team review, use Finance Unified where configured. If you want provider-native source files in GCS or S3, use Raw Reports.
Raw Reports vs Daily App Sales vs Finance Unified
Netice separates app revenue into three output families because app-store reporting has two main normalized revenue needs and one source-custody need. Daily App Sales is the cross-platform analytics layer. Finance Unified is the monthly platform-finance layer. Raw Reports are source-native files.
| Output family | Source key | Primary purpose | How Apple and Google are handled |
|---|---|---|---|
| Raw Reports | google_play_raw_reports, apple_app_store_raw_reports |
Provider-native report custody and safe status metadata. | Apple and Google stay provider-specific, usually as separate raw tasks. |
| Daily App Sales | google_apple_app_sales |
Daily operational app revenue analytics. | Apple App Store and Google Play can be unified in one clean daily table when both providers are enabled. |
| Finance Unified | finance_unified |
Monthly platform-finance output for finance-team review where configured. | Apple financeReports and Google Play Earnings remain monthly finance inputs, not daily analytics rows. |
A raw Google Play Earnings file is not the same thing as normalized Finance Unified Google Play Earnings rows. A raw Apple financeReports file is not automatically a Finance Unified row. A raw Apple Summary Sales file is not automatically the Daily App Sales schema.
When to use raw mode
Raw mode is the right choice when your team needs custody of the provider’s source artifacts. It is especially useful when downstream systems need the original report family, when a data team wants to reprocess source-native files later, or when support/debugging needs a safe way to know which report families were requested, delivered, pending or unavailable.
| Need | Use raw reports? | Why |
|---|---|---|
| Keep provider-native report artifacts in S3 or GCS. | Yes | Raw reports preserve source-native files and columns. |
| Create one daily app-sales analytics table. | No | Use Daily App Sales and the app_sales_daily / APP_SALES_DAILY output family. |
| Create monthly finance-period rows. | No | Use Finance Unified where configured. |
| Convert raw files into a report currency. | No | Raw reports do not apply report currency or FX conversion. |
| Archive Apple and Google source reports separately. | Yes | Configure provider-specific raw tasks for each provider. |
Raw source keys and provider-specific tasks
Netice raw reports are intentionally provider-specific. This prevents a common modeling mistake: treating raw Apple and Google reports as if they were one merged dataset with one stable schema.
| Provider | Raw source key | Setup focus | Boundary |
|---|---|---|---|
| Google Play | google_play_raw_reports |
Google Play reporting source context and Google Play access. | Examples use synthetic bucket, package and report names. |
| Apple App Store Connect | apple_app_store_raw_reports |
App Store Connect reporting access, vendor context and family-specific setup where needed. | Examples use synthetic vendor, app-resource and report-family values. |
Recommended bundle vs custom report families
Raw report selection can start from a recommended bundle or from selected/custom report families. The recommended bundle is the safer starting point because it focuses on supported provider families without implying that every possible provider report is available.
Custom selection is for teams that know exactly which provider-native family they need. Some families can be advanced, setup-required, disabled, unsupported, or unavailable for a given provider account. Netice keeps that visible so raw mode does not become a vague promise of “all reports forever.”
| Selection mode | Meaning | Customer-facing interpretation |
|---|---|---|
| Recommended bundle | Supported default family set for the provider. | Good starting point; not every possible report family. |
| Selected report families | Custom provider-specific family selection. | Advanced/custom; may need extra setup or product support. |
| Unsupported family | Not available as a customer-selectable raw family. | Kept outside the supported raw workflow. |
| Setup-required family | Needs provider-side or task-specific configuration. | Described without exposing real account or app identifiers. |
Google Play raw report families
Google Play raw reports preserve provider-native Play Console reporting artifacts where enabled. A Google raw bundle can include common Play report families such as estimated sales, Earnings, reviews, installs, crashes, ratings and subscription statistics. These families remain raw provider reports; they are not automatically transformed into a unified Netice schema.
| Google Play family | Role in raw mode | Boundary |
|---|---|---|
estimated_sales |
Raw Google Play daily sales-style source artifact. | Not the enriched Daily App Sales table by itself. |
earnings |
Raw Google Play monthly Earnings source artifact. | Not normalized finance_unified rows by itself. |
reviews |
Raw review artifact where enabled. | Review content remains customer/source data and is not used in public examples. |
stats_installs, stats_crashes, stats_ratings |
Provider-native statistics families. | Useful source artifacts, but not app revenue amounts by themselves. |
stats_subscriptions |
Provider-native subscription-statistics artifact. | Not the same as normalized subscription lifecycle rows. |
store_performance |
Advanced/custom family where supported. | Not a default raw bundle assumption. |
Google API-style resources such as Android Vitals API endpoints, voided purchases API resources, review-reply APIs and other unrelated developer APIs stay outside raw report output unless Netice explicitly supports them in the customer-facing raw workflow.
Apple App Store raw report families
Apple App Store raw reports preserve App Store Connect source artifacts where enabled. The Apple raw workflow centers on Sales and Trends / subscription-style source families, while finance and customer-review raw families can require additional setup.
| Apple family | Role in raw mode | Boundary |
|---|---|---|
| Summary sales daily | Daily Sales and Trends raw family. | Sales and Trends source data, not Apple financeReports. |
| Subscription daily / summary | Subscription raw family. | Provider-native artifact, not normalized Daily App Sales rows by itself. |
| Subscription event daily | Event-style subscription raw family. | Lifecycle artifacts may not be revenue rows. |
| Subscriber daily / detailed | Subscription/subscriber source artifact. | Subscriber/source rows are not used as public examples. |
| Apple finance raw families | Advanced/custom source artifacts requiring finance report context. | Not normalized Finance Unified rows by default. |
| Customer reviews JSONL | Advanced/custom review artifact requiring app resource context. | Review content and app resource identifiers remain private customer/source data. |
Apple Sales and Trends and Apple financeReports must remain separate. A raw Apple Summary Sales file is not an Apple financeReports file. A raw Apple financeReports file remains a source-native artifact unless a separate Finance Unified workflow normalizes it.
Provider-native boundary
Raw mode keeps source meaning visible by preserving provider separation, report family identity, period/status context and safe output metadata. It intentionally avoids creating a false “universal raw schema” that would hide Apple and Google differences.
| Raw mode preserves | Raw mode does not do |
|---|---|
| Provider-specific source keys. | Merge Apple and Google into one raw task. |
| Provider-native files and columns where supported. | Normalize into the Daily App Sales schema. |
| Report family and period/status context. | Normalize into Finance Unified rows. |
| Safe status metadata and manifests. | Apply report currency or FX conversion. |
| Stable object-storage outputs where configured. | Expose raw rows, app identifiers, credentials or source paths in public examples. |
Object destinations and warehouse boundary
The natural customer-facing destinations for raw reports are Google Cloud Storage and AWS S3. Raw mode is primarily about source-native file custody, so object storage is the clearest fit.
BigQuery and Snowflake are the primary destinations for normalized daily and finance tables, not the standard raw-report story. Raw warehouse loading is workflow-specific and belongs only in customer-facing copy when explicitly enabled for that workflow.
| Destination | Raw-report posture | Customer-facing guidance |
|---|---|---|
| Google Cloud Storage | Primary raw object-storage destination. | Use synthetic gs://example_bucket/... examples. |
| AWS S3 | Primary raw object-storage destination. | Use synthetic s3://example_bucket/... examples. |
| BigQuery | Normalized warehouse destination, not the standard raw-report path. | Use Daily App Sales or Finance Unified for query-ready tables. |
| Snowflake | Normalized warehouse destination, not the standard raw-report path. | Use APP_SALES_DAILY or FINANCE_UNIFIED for query-ready tables. |
| Other destinations | Workflow-specific. | Confirm support before promising raw output. |
Object path and file behavior
Raw object outputs are designed to be stable and readable under the configured destination root. Netice can write provider/family-style files and a manifest under the same root so teams can see what was delivered without exposing source credentials or private provider paths.
The examples below are synthetic. They use generic file names and destinations to explain the shape of the output. Actual family names and file formats can vary by provider, workflow and selected report family.
Synthetic GCS example
gs://example_bucket/app-revenue/raw/
gs://example_bucket/app-revenue/raw/google_play_estimated_sales.csv.gz
gs://example_bucket/app-revenue/raw/apple_app_store_summary_sales_daily.txt.gz
gs://example_bucket/app-revenue/raw/netice_raw_manifest.json
Synthetic S3 example
s3://example_bucket/app-revenue/raw/
s3://example_bucket/app-revenue/raw/google_play_earnings.csv.gz
s3://example_bucket/app-revenue/raw/apple_app_store_subscription_daily.txt.gz
s3://example_bucket/app-revenue/raw/netice_raw_manifest.json
Manifest and safe status metadata
Raw report manifests and status summaries describe sync outcomes without exposing raw report contents. Safe status metadata can include provider, report family, period, status, requested/delivered/pending ranges, file counts, source file counts, reason categories and customer-action flags.
| Manifest can show | Manifest excludes |
|---|---|
| Provider and report family. | Real provider source filenames or source object paths. |
| Requested, delivered and pending ranges. | Raw source rows or report contents. |
| Safe status and reason category. | Credentials, signed URLs, private keys or service-account JSON. |
| File counts and safe booleans. | App IDs, package names, SKUs, vendor numbers or app resource IDs. |
| Customer-action-required flag. | Task IDs, run IDs, logs or operational URLs. |
Synthetic manifest row shape
{
"report_id": "estimated_sales",
"provider": "google_play",
"report_family": "revenue_sales",
"period": "2026-04",
"status": "synced_changed",
"requested_range": {"start": "2026-04", "end": "2026-04"},
"delivered_range": {"start": "2026-04", "end": "2026-04"},
"files_written": 1,
"source_file_count": 1,
"safe_reason_code": "SYNTHETIC_RAW_SYNC_OK",
"customer_action_required": false
}
This JSON is a synthetic documentation fragment for explaining manifest meaning. It is not a customer record, source API response or operational log.
Security, encrypted secrets and redaction boundaries
Raw report workflows involve sensitive source access and destination access. Netice encrypts customer secret material and handles credentials through secret management. Saved connections are designed to reduce repeated credential entry while keeping raw credential values write-only after saving.
Examples and user-facing summaries can describe credential categories, destination type, provider family, status and safe metadata while excluding service-account JSON, private keys, App Store Connect key material, issuer IDs, key IDs, vendor numbers, app resource IDs, report bucket IDs, saved connection identifiers, secret references, task IDs, run IDs, logs, source rows and customer-specific object paths.
| Safe to describe | Kept out of public examples and summaries |
|---|---|
| Source access category and provider family. | Raw credentials, private keys, service-account JSON and App Store Connect key material. |
| Destination type such as GCS or S3. | Real bucket names, prefixes, signed URLs and customer object paths. |
| Saved connection concept. | Saved connection IDs, credential references and secret-management paths. |
| Safe status categories. | Stack traces, raw provider responses, task IDs, run IDs and worker URLs. |
| Synthetic report-family examples. | Real app IDs, package names, SKUs, vendor numbers, app resource IDs and review contents. |
Backfill, refresh and provider availability
Raw reports can be requested for historical windows and refreshed for recent eligible provider periods. The exact model differs by provider and report family. Google Play raw history is often month-oriented. Apple raw history can combine daily report windows and monthly report windows depending on the selected family.
Provider availability is not the same thing as customer failure. A report can be pending, not generated yet, outside the selected period, unavailable to the provider account, blocked by source permissions, or blocked by destination write permissions. Netice keeps those cases as safe status categories instead of turning them into raw error dumps.
| Behavior | Google Play raw reports | Apple App Store raw reports |
|---|---|---|
| Initial history | Month-based source windows for monthly Play report families. | Daily-day and monthly-period windows depending on the family. |
| Recurring refresh | Re-checks recent eligible report months. | Re-checks recent daily windows and monthly eligible periods. |
| Provider-not-ready | Can be pending rather than failed. | Can be pending rather than failed. |
| Unchanged artifact | Refresh can detect no change. | Refresh can detect no change. |
Failure states and diagnostics
A raw reports guide helps users interpret status without leaking sensitive details. The most useful distinction is between provider availability, source access, setup requirements and destination write behavior.
| Status category | Meaning | Sensitive details kept out |
|---|---|---|
synced / synced_changed |
A selected artifact was written or refreshed. | Source file names, raw rows and real object keys. |
synced_unchanged / skipped_unchanged |
Source artifact did not require a new copy. | Source identifiers or checksums from customer files. |
pending_provider_availability |
Provider report is not generated or available yet. | Provider raw response bodies. |
permission_denied |
Source or destination permission issue. | Credentials, access keys, service-account JSON and private keys. |
setup_required |
Selected family needs additional configuration. | Real vendor numbers, app resource IDs and bucket IDs. |
failed |
Safe failure status for an unsuccessful artifact or family. | Stack traces, logs, operational URLs and task IDs. |
Safe source selection examples
The examples below are synthetic and simplified. They show safe configuration shapes without real provider identifiers, destination paths or task metadata.
Google Play raw source example
source_key: google_play_raw_reports
selection_mode: recommended_bundle
included_family_examples: estimated_sales, earnings, reviews, stats_installs
destination: google_cloud_storage
destination_root: gs://example_bucket/app-revenue/raw/
Apple raw source example
source_key: apple_app_store_raw_reports
selection_mode: selected_report_families
selected_family_examples: summary_sales_daily, subscription_event_daily
destination: aws_s3
destination_root: s3://example_bucket/app-revenue/raw/
Decision checklist
Need source-native files? Use raw provider-specific tasks.
Need one daily analytics table? Use Daily App Sales, not raw mode.
Need Apple and Google revenue in one clean daily table? Enable both providers in Daily App Sales.
Need monthly finance rows? Use Finance Unified, not raw mode.
Need both Apple and Google raw files? Create separate provider-specific raw tasks.
Need raw warehouse output? Confirm the workflow explicitly before treating it as available.
FAQ
What are raw reports in Netice?
Raw reports are provider-native Apple App Store or Google Play report artifacts copied into customer-owned storage where supported. They preserve provider-specific shape rather than applying Netice’s daily app-sales or finance schema.
Are raw reports normalized?
No. Raw reports do not normalize schemas, currencies or FX. They preserve provider-native report files and columns where supported.
Are Apple and Google raw reports merged into one task?
No. Apple and Google raw report modes are provider-specific. Use separate provider-specific raw tasks when both raw source families are needed.
Can Apple and Google revenue be unified in one clean table?
Yes. That is a Daily App Sales use case, not a raw reports use case. Daily App Sales can unify Apple App Store and Google Play daily revenue into one clean analytics table when both providers are enabled.
What is the difference between Daily App Sales and Finance Unified?
Daily App Sales is the daily analytics layer for app revenue analysis. Finance Unified is the monthly platform-finance layer for finance-team review where configured.
What is the recommended raw bundle?
The recommended bundle is the supported default family set for a provider. It is a starting point, not a claim that every possible provider report is available.
Which Google Play raw report families can raw mode preserve?
Google Play raw mode can preserve provider-native families such as estimated sales, Earnings, reviews, installs, crashes, ratings and subscription statistics where enabled.
Which Apple raw report families can raw mode preserve?
Apple raw mode can preserve Sales and Trends and subscription report families where enabled. Apple finance and customer review raw families are more advanced and can require extra setup.
Can raw reports go to BigQuery or Snowflake?
BigQuery and Snowflake are primarily for normalized Daily App Sales and Finance Unified outputs. Raw warehouse output is workflow-specific rather than the standard raw-report path.
What does the raw manifest contain?
A safe raw manifest can describe provider, report family, period, status, requested/delivered/pending ranges, file counts and reason categories. It excludes raw rows, credentials, source paths and customer identifiers.
How are credentials handled for raw reports?
Netice encrypts customer secret material and handles credentials through secret management. Saved connections reduce repeated credential entry while keeping raw credential values write-only after saving.
Why might a raw report be pending or unavailable?
A provider report can be late, not generated, outside the selected window, blocked by permissions, setup-required or unsupported. Those states stay distinct.
Related guides
- Product overview
- Product documentation
- Raw App Store and Google Play reports to S3 and GCS
- App revenue export files to GCS and S3
- Unified daily app sales schema
- Google Play revenue to BigQuery
- App Store Connect reports to BigQuery
- Daily app sales vs platform finance reports
- Finance Unified monthly platform finance
- Monthly platform finance schema
- Saved connections for app revenue pipelines
- App revenue data security and access model
- Security policy
- Pricing
Preserve provider-native app revenue reports safely
Netice raw report mode helps app teams keep Apple App Store and Google Play source artifacts in customer-owned storage while preserving the boundaries between raw files, unified daily analytics and monthly finance output.