Google Search Console Integration — Setup, Permissions, and Revenue Attribution

TL;DR: Verify your domain in Google Search Console, then connect it to Admaxxer with a read-only OAuth (webmasters.readonly). We pull daily query/page/country/device data via the Search Analytics API, tie organic clicks back to first-party sessions and revenue, and surface organic search as a first-class channel alongside paid in MMM, cohort LTV, and the cannibalization view. Setup takes about three minutes; first sync runs within five minutes; daily syncs at 02:00 UTC after that.

What is Google Search Console?

Google Search Console (GSC) is Google's free tool for tracking how your site performs in organic Google search. For any verified domain or site property, you get aggregate metrics on:

GSC is free, official, and the only authoritative source of organic Google data. Every team that cares about SEO already has it set up. The catch: GSC stops at clicks. It cannot tell you which of those organic queries drove a purchase, a subscription, a 30-day cohort revenue uplift — or whether they cannibalized a paid search term you were already winning.

Why connect GSC to Admaxxer?

Connecting GSC to Admaxxer adds five capabilities GSC alone cannot provide:

1. See organic queries that drive revenue, not just clicks

GSC counts clicks. Admaxxer counts revenue. By matching organic landing-page sessions to your pixel and revenue connectors (Stripe, Shopify, WooCommerce, etc.), we calculate revenue-per-keyword the same way paid search ads expose cost-per-conversion. The "buy [brand] online" query that drove twelve clicks last month? You'll see the seven orders, $4,200 in attributed revenue, and 90-day cohort LTV that came from it.

2. Cohort-LTV by entry keyword

Not all organic visitors are equal. A user who lands via "[brand] reviews" is researching; a user who lands via "buy [brand] online" is converting. Admaxxer lets you filter cohort-LTV by the GSC query that drove the first session — so you can see whether high-intent queries actually retain better at 30, 60, and 90 days, or whether brand-research traffic eventually becomes the higher-LTV cohort. This is a view DTC teams have wanted for years and is impossible without joining GSC clicks to first-party session and revenue data.

3. Feed organic search into your Marketing Mix Model

Most MMM tools treat organic search as an afterthought — a residual channel computed by subtraction after every paid line is fit. With GSC connected, Admaxxer feeds organic-search clicks (and the keyword-cohort revenue tied to them) into the MMM as a first-class channel. You get a contribution estimate for organic search alongside Meta, Google Ads, TikTok, and email — and a cleaner picture of which paid channels are genuinely incremental versus which are skimming credit from organic.

4. Detect keyword cannibalization across paid and organic

If you're bidding on "[brand]" in Google Ads while ranking #1 for the same term organically, you're often paying for clicks you would have earned for free. Admaxxer cross-references your GSC organic query data against your Google Ads search-term data and flags overlapping queries where paid clicks are likely cannibalizing organic. The view shows: query, organic position, paid CPC, paid spend on the term, organic clicks at that position, and an estimated cannibalization rate. Pause the paid keyword if the math doesn't justify it; keep it if defending against a competitor's brand bid is worth the spend. Either way, you're making the call with data instead of intuition.

5. Attribute landing pages to organic, not "(direct)"

Without GSC connected, organic Google clicks land on your site with no UTM parameters. Many analytics tools mis-bucket them as "direct" or "(not set)" once the referrer header is dropped (which it is, for HTTPS-to-HTTPS handoffs in many browsers). Admaxxer's pixel does its best to detect organic via referrer + landing-page heuristics, but the GSC integration is the only way to get authoritative organic-query attribution from Google itself.

How the connection works

The GSC integration is a standard read-only OAuth flow:

  1. You click Connect on the Google Search Console card in Integrations.
  2. Admaxxer redirects you to Google's OAuth consent screen.
  3. Google asks you to approve the webmasters.readonly scope — read-only access to your verified GSC properties' Search Analytics and Sitemaps data.
  4. You approve. Google redirects back to Admaxxer with an authorization code.
  5. Admaxxer exchanges the code for a refresh token, which we store encrypted at rest with AES-256-GCM. The refresh token never leaves Admaxxer's servers.
  6. Admaxxer fetches the list of GSC properties your Google account can access. If you have multiple verified properties (separate site-properties for https://www.example.com and https://shop.example.com, or a domain-property for example.com), you pick which one to connect.
  7. The first sync starts immediately. It pulls the last 16 months of daily aggregates (the maximum GSC retains) for the property, broken out by query, page, country, device, and search type.
  8. From there, a daily sync runs at 02:00 UTC and pulls the previous day's increment.

The data lands in our Tinybird analytics warehouse and is joined to your pixel sessions and revenue events via referrer + landing-page + first-session timestamp. The matching is approximate (because GSC anonymizes individual user data — see the Privacy & GDPR section below), but in practice the join rate for organic clicks ranges 75–95%, depending on traffic mix and pixel deployment.

Setup steps

Step 1 — Verify your domain in Google Search Console

Open https://search.google.com/search-console and verify your site if you haven't already. You have two property options:

If you have a multi-store setup (e.g. a shop. subdomain on a separate platform from your www. marketing site), domain-property is simpler — one verification, all subdomains covered.

Step 2 — Open Admaxxer Integrations

In Admaxxer, navigate to Integrations. Find the Google Search Console card under "Search & SEO" and click Connect.

Step 3 — Approve the OAuth scope

Google's consent screen will appear. The only scope requested is https://www.googleapis.com/auth/webmasters.readonly — read-only access to Search Analytics and Sitemaps. Approve and you'll be redirected back to Admaxxer.

Step 4 — Pick the property to connect

If your Google account has multiple verified GSC properties, you'll see a dropdown listing all of them. Pick the property that matches your storefront. Multi-property orgs can connect more than one (each becomes a separate connection).

Step 5 — Wait for the first sync

The first sync runs within ~5 minutes of connection and pulls the last 16 months. After that, daily incremental syncs run at 02:00 UTC. You'll see a "Last synced" timestamp on the connection card — if it stays empty for more than ~10 minutes, see the troubleshooting section below.

Step 6 — View the data

Open Analytics. The Search Console card surfaces top queries by revenue, clicks, and revenue-per-click, with filters for date range, country, device, and landing page. Switch to channel-breakdown view to see organic search now itemized at the keyword level (paid search has been UTM-itemized since launch — this brings organic to the same level of granularity).

Permissions explained — what we ask for and what we don't

What data we pull

Through the Search Analytics API, Admaxxer pulls daily aggregate data with the following dimensions and metrics:

We do not pull individual user data — GSC doesn't expose it. Queries with low volume are bucketed by Google under the placeholder "(anonymous)" before they reach us, which is normal and outside our control.

Where it shows up in Admaxxer

For deeper context on how revenue flows through the analytics stack, see Revenue data flow.

Clicks ≠ sessions ≠ revenue-attributed visits

One thing every analytics tool struggles to explain to its users is why three numbers that "should" be the same never actually match. Here is the honest version:

You will always see GSC clicks > Admaxxer organic sessions > revenue-attributed visits. Some discrepancy is normal; large discrepancy is a signal.

Why GSC clicks > Admaxxer sessions:

Typical Admaxxer organic sessions land at 75–95% of GSC organic clicks. Below 70% is usually a pixel-coverage gap (see Install the pixel). Above 95% is suspicious and usually means duplicate pixel firing.

For deeper troubleshooting on attribution gaps, see Attribution discrepancies.

Privacy & GDPR

vs Datafast — what Admaxxer adds

Datafast offers a GSC integration that surfaces queries and revenue-per-keyword. The Admaxxer integration goes further on four axes:

The pitch in one line: Datafast tells you which keyword drove the click, Admaxxer tells you which keyword is worth keeping.

Limits & gotchas

Troubleshooting

"I see GSC connected but no data"

The first sync runs within five minutes of connection. If the connection card still shows no data after thirty minutes, check that:

  1. Your Google account has access to a verified GSC property (visit search.google.com/search-console to confirm).
  2. You picked the correct property at connection time — if you accidentally picked an empty property, click Manage property on the connection card to switch.
  3. The property has had clicks in the last 16 months — brand-new sites with zero search traffic will show no data because there is no data to pull.

"Data is days behind"

This is GSC API latency, not a sync bug. GSC data is typically 24–72 hours behind real time. Our daily sync at 02:00 UTC pulls whatever GSC has marked as "finalized" — if the last two days are not yet finalized, they won't appear. This matches what you'd see in the GSC web UI itself.

"Some keywords are missing"

Two causes:

"Organic clicks >> Admaxxer organic sessions"

The pixel isn't firing on enough organic landing pages. Walk through Install the pixel to confirm coverage. If you use a CSP, see CSP troubleshooting.

"Revenue not attached to keywords I expect"

The pixel needs a revenue connector to attach orders to sessions to keywords. If orders aren't flowing, see Missing orders first — the issue is usually upstream of GSC.

Related documentation

Analytics dashboard · Google Ads integration · Google Ads setup · Install the pixel · UTM best practices · Attribution discrepancies · Missing orders · Revenue data flow