Connect Google Analytics 4
You create a Google service account, give it Viewer access to your GA4 property, and paste the property id and the key file into MarqIQ. GA4 is an early-access data source, so connecting it registers the property and its reporting fields — it does not yet pull sessions, users or conversions into MarqIQ. If what you want today is source data on the people who fill in your forms, install the tracking script and connect your CRM instead.
Before you start
GA4 data does not arrive yet
The connect page carries a banner headed Data sync for Google Analytics 4 is in early access. It says that connecting stores and validates your credentials, that automated data sync for this source is not live yet, and that GA4 data will not appear in your reports until it ships. Connect GA4 to register the property and its fields, not to fill a report this week.
Plan required
GA4 connects on Starter and above. It is not exempt the way Google Tag Manager is, so it consumes a tool slot: Starter includes one tool besides Google Tag Manager, Pro two, Business four, and Enterprise sets no ceiling. A Starter workspace that connects GA4 cannot also connect a CRM until it disconnects one or moves up a plan.
Permissions required
You need a Google Cloud project where you can create a service account and download a JSON key, and enough access in Google Analytics to grant that service account the Viewer role on the property. These are usually two different people, so ask for both before you start.
- Your GA4 Property ID — the numeric id, in Google Analytics under Admin then Property Settings. The field on the connect screen shows `123456789` as its example.
- Your Service Account JSON — the whole key file, starting `{ "type": "service_account", ...`
Get the credentials from Google
MarqIQ does not run a Google sign-in flow for GA4. You create the service account yourself and paste its key in.
Open Google Analytics and go to Admin.
Open Property Settings.
Copy the Property ID.
It is the numeric id for the property, not the name of the property and not an account id. Copy it now — you paste it into MarqIQ in the next section.
Create a service account in your Google Cloud project.
Use a project you are happy to keep. The service account is the identity MarqIQ reads the property as, so name it something a colleague will recognise a year from now.
Create a JSON key for that service account.
Google downloads the key file once. Store it where your team keeps secrets; MarqIQ encrypts it, but it cannot hand it back to you.
Copy the service account’s email address from the key file.
It is the `client_email` value. Google Analytics asks for it by email address, not by id.
Go back to Admin in Google Analytics.
Add that email address to the property with the Viewer role.
Viewer is what the connect screen asks for: the hint under Service Account JSON reads "A service account with Viewer access to the property". MarqIQ never needs Editor or Administrator on a GA4 property, because it never writes to one.
Connect it in MarqIQ
Open Connected Tools in MarqIQ.
The page is headed Integrations.
Click Add more.
That opens Explore Integrations, the full catalogue. GA4 is not on your Integrations page until you add it there.
Type Google Analytics into Search integrations…
Click Connect on the Google Analytics 4 card.
The card sits under Analytics and carries a Popular label. If your plan or your tool allowance blocks it, the button reads Upgrade to connect and the reason is printed underneath in words.
Paste the numeric id into GA4 Property ID.
Paste the whole key file into Service Account JSON.
Paste the entire file, braces included. Both fields are marked required with a red asterisk.
Click Connect.
MarqIQ checks that both fields have a value and that the JSON parses, then encrypts the pair and saves them. It does not call Google at this point, so a property id that belongs to another property, or a service account that was never granted Viewer, is accepted here and would only show up once sync ships.
The button reads Connecting… while it saves. An error appears in red under the two fields.
Click the + on the GA4 card in Explore Integrations.
Its tooltip reads Add to workspace. This pins GA4 to your Integrations page so you can reach it without searching. Connecting and adding to the workspace are separate actions.
What you see once it is connected
- A green Connected badge on the GA4 page, next to an amber Early access badge.
- A Connection active card listing GA4 Property ID in full and Service Account JSON masked to its last four characters.
- The connection named Google Analytics 4 — <your property id> wherever connections are listed.
- No sync date. MarqIQ deliberately leaves the last-sync stamp empty on connect, so the card cannot read "Connected · today" as though records had arrived.
- On Data Sources, a GA4 row under Advertising & Analytics, marked Mapping only · no record sync yet where a syncing tool shows a Sync button.
What comes across, and what MarqIQ writes back
Nothing comes across yet. GA4 has no sync engine in MarqIQ, so there are no sessions, users, conversions or events in your workspace after you connect, and there is nothing to sync or audit from it.
MarqIQ writes nothing to Google Analytics. There is no write path for GA4: no property setting is changed, no event is sent, no audience is created. The service account only ever needs to read.
What the connection is for today
Connecting registers the property and declares its fields to the reporting layer, so a report built on GA4 has its dimensions and measures ready the day sync ships. MarqIQ enables your connection on its own when that happens.
The fields GA4 declares
The Available in Reporting panel on the GA4 page lists what this source contributes to reporting.
| Dimensions | Metrics |
|---|---|
| Source | Sessions |
| Medium | Users |
| Campaign | Conversions |
| Channel Group | Engagement Rate |
| Landing Page | Events |
| Country | — |
What the GA4 page shows under Available in Reporting.
The Unified field catalog carries a longer list for the same source: Session Source, Session Medium, Session Campaign, First User Source, First User Medium, Device Type and Event Name on top of the six above. It names one of the six differently — the dimension the GA4 page calls Channel Group is Traffic Channel in the catalogue. It also carries GA4 First User Source in the Unified (Cross-System) source, which is how a GA4 first touch is compared against a HubSpot, Salesforce or Marketo one.
Note
Every GA4 field in the catalogue is badged Connected rather than Synced, because Synced means records have arrived and none have. The Unified field catalog itself needs Pro or above, so a Starter workspace does not see that screen.
What connecting GA4 does not unlock
- None of the nine analyses. Source truth, Field discipline, Forecast accuracy, Audience health, Lead scoring, Funnel, Form fills, Email and Automations all read the records MarqIQ syncs, and GA4 syncs none.
- The Integration Audit Report. It runs on a connected CRM or marketing tool, never on an analytics source.
- Field mapping. UTM fields are mapped onto tools that store contact records, which is CRM and marketing automation only. GA4 has no contact properties to map, so it never appears under Tool Operations › Field Mapping.
- Hidden form fields, the Source Tracking workflow and the first-touch backfill. Those are HubSpot and Marketo only.
- Change sets. There is nothing to write back to GA4.
Tip
If you connected GA4 hoping to see where your traffic comes from, the tracking script is the part that does that today. It captures the source on every form fill and writes it into your CRM, and it installs on every paid plan.
If it did not work
"Missing required field: GA4 Property ID"
Why: One of the two fields was left blank or holds only spaces. With both blank the message is plural and names both: "Missing required fields: GA4 Property ID, Service Account JSON".
Fix: Fill in the named field and click Connect again. The message quotes the label as it appears on screen, so it tells you exactly which box to go back to.
"Service Account JSON is not valid JSON"
Why: What you pasted into Service Account JSON does not parse. Usually the paste was cut short, or the service account’s email address was pasted instead of the key file.
Fix: Open the downloaded key file, copy all of it including the opening and closing braces, and paste it again. This is the only content check MarqIQ makes on the key — it does not test it against Google.
The connect is refused and the message names your plan and your connected tools
Why: The tool allowance is enforced on the route, not only in the interface. The refusal is worded for the person clicking Connect — for example, "Starter includes 1 tool besides Google Tag Manager, and this workspace has connected 1 (HubSpot). Disconnect one, or move up a plan."
Fix: Disconnect the tool you no longer need, or move up a plan. Google Tag Manager never counts, and neither do your AI engine keys, so the number in the message is real connected tools only.
"This workspace is read-only. Renew the subscription to connect tools."
Why: The subscription has expired. An expired workspace can read what it already has and connect nothing new.
Fix: Renew from Billing. Your existing connections and data are untouched by the lapse.
The + button on the GA4 card is greyed out and says Limit reached
Why: That button adds GA4 to your Integrations page, and the shortlist is held to the same tool count as the connections themselves.
Fix: Remove a tool you are not using from the shortlist with its own − button, then add GA4. Nothing is disconnected by removing it from the shortlist — it only changes which cards your Integrations page shows.
GA4 shows as connected but no GA4 numbers appear anywhere
Why: This is the early-access limit, not a fault in your credentials. There is no GA4 sync engine, so no records are pulled and no report can be filled from GA4 yet.
Fix: Nothing to fix. Leave the connection in place — MarqIQ enables it automatically when sync ships. Build the report you want on a source that syncs today, and add the GA4 fields to it later.
The page answers "Unauthorized"
Why: Your session ended before the form was submitted, so the request arrived without a workspace.
Fix: Reload the page, sign in again, and paste the two values again. Nothing was saved, so nothing is half-connected.
You need to remove the connection
Why: A disconnect purges the stored credentials immediately and flips the connection to disconnected. It is not a delete.
Fix: Click Disconnect on the GA4 page and confirm Disconnect Google Analytics 4?. Your credentials are removed and any field mappings are kept, so reconnecting later needs the two values again and nothing else. The disconnect is written to your activity log.
Next steps
Related articles
Was this article helpful?