Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.upstackdata.com/llms.txt

Use this file to discover all available pages before exploring further.

Data direction: This is a source — data flows into Upstack from this platform for analytics, reporting, and enrichment.
Connecting Google Ads as a source brings campaign cost data into Upstack, enabling cost-per-acquisition (CPA) reporting, return on ad spend (ROAS) calculations, and unified attribution across Google Search, Shopping, Display, and YouTube campaigns.

Prerequisites

Prerequisites:
  • An Upstack Data account (sign up for free)
  • Access to your workspace in the Upstack dashboard
You’ll also need:
  • A Google Ads account with active or historical campaigns
  • Admin or Standard access to the Google Ads account you want to connect
  • If you use a Google Ads Manager Account (MCC), you’ll need access to the specific sub-accounts you want to sync

Setup

1

Authenticate with Google

In the Upstack dashboard, navigate to Integrations → Sources and click Connect Google Ads.Click Sign in with Google to begin the OAuth flow. Log in with the Google account that has access to your Google Ads account and grant Upstack permission to read your advertising data.
Upstack requests read-only access to your Google Ads data. No permissions to create, modify, or spend on campaigns are requested.
2

Select ad accounts

After authentication, Upstack lists all Google Ads accounts (including sub-accounts under an MCC) accessible to your Google account. Select the account(s) you want to sync.Each selected account appears as a separate data source in the Upstack dashboard with its own sync status and metrics.
Match accounts to your store. Select only the Google Ads accounts that drive traffic to the Shopify store connected to Upstack. Connecting unrelated accounts will skew your ROAS and CPA metrics.
3

Confirm and start sync

Review the data access summary and click Confirm. Upstack begins syncing your Google Ads data immediately.The initial sync imports the last 90 days of campaign performance data. After the initial sync, Upstack pulls updated metrics every 6 hours.

What Data Flows In

MetricDescriptionGranularity
SpendTotal cost per campaign/ad group/adDaily
ClicksTotal clicks on adsDaily
ImpressionsNumber of times ads were shownDaily
ConversionsGoogle-reported conversions (for comparison)Daily
CPCCost per clickDaily (calculated)
CPMCost per thousand impressionsDaily (calculated)
CTRClick-through rateDaily (calculated)

Campaign Structure

Upstack imports the full Google Ads hierarchy:
  • Campaigns — name, type (Search, Shopping, Display, Video, Performance Max), status, budget
  • Ad Groups — name, targeting, bid strategy
  • Ads — name, type, status
Google Ads data is synced at the ad group level and aggregated up. Performance Max campaigns are reported at the campaign level since Google doesn’t expose ad group details for pMax.

Click ID Tracking

When visitors arrive at your store from Google Ads, the gclid (Google Click ID) parameter is captured by the Upstack Pixel and stored in the visitor’s session. This gclid links the ad click to any subsequent conversion events, enabling deterministic click-to-conversion attribution.

You’ll Know It’s Working When…

Verification checklist: Complete all items below to confirm your setup is working correctly. If any check fails, see the troubleshooting section below or the relevant troubleshooting guide.
  • Your Google Ads source shows Connected status in the Upstack dashboard under Integrations → Sources
  • Campaign data appears in the Sources → Google Ads detail page within 30 minutes of initial connection
  • Spend metrics are visible in Analytics → Attribution reports alongside your conversion data
  • ROAS calculations populate for campaigns that have both spend data and attributed conversions

Troubleshooting

Check the sync status in Integrations → Sources → Google Ads. The initial 90-day backfill can take up to 30 minutes.If no data appears after 1 hour:
  1. Verify the connected account has campaigns with spend in the last 90 days
  2. Confirm you selected the correct account (check the Account ID matches what you see in Google Ads)
  3. If using an MCC, ensure you selected the sub-account, not the manager account itself
  4. Try disconnecting and reconnecting the source
Small discrepancies (under 5%) are normal due to timezone normalization and Google’s post-click adjustments.Common causes of larger discrepancies:
  • Timezone mismatch — Upstack normalizes spend to UTC. Google Ads accounts may use a different timezone, causing daily totals to shift between days.
  • Currency conversion — if your Google Ads account bills in a different currency than your Shopify store, exchange rate timing can cause minor differences.
  • Invalid clicks — Google periodically removes invalid click charges. These adjustments may not be reflected in Upstack’s data until the next sync cycle.
Google OAuth tokens can expire if you change your Google account password, revoke third-party access, or if the token’s refresh cycle fails.To fix:
  1. Go to Integrations → Sources → Google Ads
  2. Click Reconnect to re-authenticate with Google
  3. Re-select your ad accounts and confirm
Data sync resumes immediately. Any data missed during the disconnection is backfilled during the next sync.

Still stuck? Contact support@upstackdata.com with your Pixel ID and a description of the issue. We typically respond within a few hours.

Google Analytics 4 Destination

Send server-side conversion events to GA4 — the outbound counterpart to this inbound source.

Attribution and Reporting

How Upstack blends ad spend data with conversion events to calculate ROAS and CPA.

Connect Facebook Ads

Import Facebook Ads spend data for a complete view of paid media performance.

Integration Catalog

Browse all available sources and destinations.