Acquisition
Set up GA4 and BigQuery attribution
Connect Shopify App Store GA4 tracking to BigQuery and map the export dataset in Fusionmetrics.
Last updated
Fusionmetrics joins Shopify App Store acquisition activity from Google Analytics 4 with app revenue data. The reliable path is Shopify App Store tracking to GA4, GA4 daily export to BigQuery, then an app-level dataset mapping in Fusionmetrics.
Create the GA4 property and web data stream
Create a dedicated GA4 property for the app or choose an existing property whose governance and event scope are appropriate. Add a web data stream and copy its Measurement ID, which starts with G-.
In GA4, create a Measurement Protocol API secret for that stream. Treat the secret as a credential: enter it directly in Shopify and never place it in documentation screenshots or source control.
Configure Shopify App Store tracking
Open the app's distribution or listing settings in the Shopify Partner Dashboard and enter the GA4 Measurement ID and Measurement Protocol API secret.

Shopify sends listing activity to the configured GA4 property. Follow the current Shopify App Store GA4 tracking guide because the Partner Dashboard labels can change.
Merchant identity on install events
Fusionmetrics recognizes the install event name shopify_app_install. Send the permanent Merchant shop identity when you control an accompanying event or enrichment flow.
shop_url is the recommended parameter:
{
"name": "shopify_app_install",
"params": {
"shop_url": "merchant-shop.myshopify.com"
}
}
Accepted Merchant identity parameters are shop_url, shopify_domain, myshopify_domain, shop_domain, and shop. Optional shop_id and app_id values can add context, but they do not replace the permanent shop domain.
The absence of a recent shopify_app_install event produces a validation warning rather than blocking all acquisition imports. Confirm the event before relying on install conversion reporting.
Link GA4 to BigQuery
In GA4, open Admin, then Product links → BigQuery links, and create a link to the Google Cloud project that should contain the export.

Choose the appropriate data location and enable the daily event export. Streaming export is optional. Google creates a dataset named:
analytics_<property_id>
Daily tables use the pattern:
analytics_<property_id>.events_YYYYMMDD
Fusionmetrics dataset mappings therefore use the fully qualified form project.analytics_<property_id>, without an events_* table suffix. See Google's GA4 BigQuery export guide for export availability, limits, and timing.
Grant BigQuery access
The principal must be able to read the GA4 dataset and create query jobs in its Google Cloud project.

Use the least broad scope that still supports both operations:
- Grant BigQuery Data Viewer on the
analytics_<property_id>dataset. - Grant BigQuery Job User at project level.

Dataset read access alone is insufficient because the import creates BigQuery query jobs. Refer to the BigQuery IAM role documentation when your organization uses custom roles or IAM Conditions.
Hosted Fusionmetrics
In Attribution connection, copy the Fusionmetrics-managed principal. Add that principal in the Google Cloud project, grant BigQuery Job User at project level, and grant BigQuery Data Viewer on the GA4 export dataset.
You do not need to download or upload a service-account key for the managed connection.
Self-hosted Fusionmetrics
Create a dedicated Google Cloud service account and JSON key. Grant its email BigQuery Job User at project level and BigQuery Data Viewer on each GA4 export dataset. Paste the complete service-account JSON into the self-hosted Attribution connection settings, then validate it.
Keep the JSON credential under the Fusionmetrics runtime data controls. Do not commit it to the repository or include it in screenshots.
Map the dataset in Fusionmetrics
Open Attribution connection, confirm the credential is validated, then open the app settings and enter project.analytics_<property_id> as its GA4 dataset.

Validation checks the credential, dataset, expected events_* tables, recent event data, and required event shape. After validation succeeds, start the first acquisition import. The initial import can take longer than later incremental imports because it scans the configured historical window.
Validate the data flow
Use this sequence to isolate setup issues:
- Confirm GA4 DebugView or Realtime receives listing activity.
- Confirm the BigQuery dataset exists in the expected project.
- Confirm at least one
events_YYYYMMDDtable exists. - Query recent rows for
page_viewandshopify_app_install. - Validate the connection and dataset in Fusionmetrics.
- Run the first import and review the reported table suffix.
Export tables can arrive after GA4 reports show activity. A short delay is normal; repeated missing daily tables needs investigation.
Troubleshoot GA4 and BigQuery
Dataset or tables are missing
Check that the BigQuery link targets the intended Google Cloud project, daily export is enabled, and the GA4 property has collected data since the link was created. GA4 does not necessarily backfill activity from before the link.
Fusionmetrics reports the wrong project
Use the project that owns the analytics_<property_id> dataset, not automatically the project where another app service runs. Enter the mapping as project.dataset.
Events are delayed or excluded
Compare the newest events_YYYYMMDD table with the GA4 reporting date. Review consent settings, internal/developer traffic filters, data retention, and any event exclusions. Confirm page_view exists; then verify shopify_app_install and its Merchant identity parameter separately.
Billing prevents queries
BigQuery query jobs require an active billing arrangement or sufficient sandbox capacity for the query. Review the Google Cloud billing account, quotas, and any project-level restrictions.
IAM validation fails
Confirm BigQuery Job User is granted at project level and BigQuery Data Viewer covers the actual GA4 dataset. Check for IAM Conditions, organization policies, disabled service-account keys, or a managed principal copied from the wrong Fusionmetrics environment.