Paid visits have no campaign

Area: Ad accounts · Updated: 2 Nov 2026 · Auf Deutsch · All articles

Symptoms

  • Sources & campaigns shows „… Werbebesuche haben keine Kampagne“ (paid visits have no campaign) on top.
  • Visits came through Google Ads (click id gclid, wbraid or gbraid) but match no campaign; ads_unmatched reports no_params.
  • Task „Werbebesuche ohne Kampagne“: „… % of the paid visits from Google Ads without a campaign“.

Cause

  • Click sync pending: the click ids are there, but Google reports clicks with a short delay. X3 fetches days with waiting click ids every hour (today included) and then matches the visits automatically.
  • The ad account was connected (or reconnected) after the visits. X3 fetches the clicks retroactively, up to 90 days, and matches them afterwards.
  • The link lacks URL parameters: Google reveals no campaign for iPhone clicks (wbraid/gbraid), and clicks without any click id carry nothing X3 could recognize the campaign by. The fix is the platform's URL suffix or URL parameters; it applies to new clicks.
  • The platform's ad account is not connected, or its connection expired.
  • The link names a campaign X3 does not know (for example a boosted post from another ad account).

How to fix it

1. Look at the cause

  • In the dashboard: Quellen & Kampagnen › hint „… Werbebesuche haben keine Kampagne“
  • With Claude (MCP): ads_unmatched_diagnosis {"project":"my-shop","filter":{"preset":"today"}}

Each group names its cause (kind), the number of visits and the one action. pending counts the visits a sync will still match.

2. For „Wird automatisch zugeordnet“ or „Nachzuordnung läuft automatisch“ just wait

  • In the dashboard: Quellen & Kampagnen › hint › „Du musst nichts tun.“
  • With Claude (MCP): ads_sync_status {"project":"my-shop","platform":"google_ads"}

The hint names the expected time. To not wait, fetch the day's clicks right away: ads_sync_run with job clicks and from/to of the day (read-only, changes nothing in Google Ads).

3. Google Ads, URL parameters missing, set the URL suffix with one click

  • In the dashboard: Quellen & Kampagnen › hint › URL-Suffix in Google Ads setzen › Ja, so in Google Ads setzen
  • With Claude (MCP): ads_url_suffix_set {"project":"my-shop","account_id":"1234567","dry_run":true}
  • Since the X3 update of 2 Nov 2026.

Show the preview (dry_run) first: current suffix, what will be set, campaigns with their own suffix. An existing suffix is merged, never overwritten. After the user confirmed, call with confirm = state.merged; X3 then reads the setting back from Google Ads (verified). Only the tracking setting changes: no campaign, budget or ad. Needs the right to manage ad accounts.

4. Meta, LinkedIn or TikTok, copy the URL parameters and enter them

  • In the dashboard: Quellen & Kampagnen › hint › URL-Parameter kopieren › Text kopieren
  • With Claude (MCP): ads_utm_templates {"project":"my-shop"}

These platforms have no account-level suffix in their API, and X3 never changes ads there. The hint says where the text goes (Meta: Ads Manager › Ad › Tracking › URL parameters).

5. Connect the ad account

  • In the dashboard: Einstellungen › Werbekonten & Budget › connect the platform
  • With Claude (MCP): ads_connections_list {"project":"my-shop"}

After connecting, X3 fetches costs 90 days and clicks up to 90 days back and matches the visits.

6. Name the unknown campaign

  • In the dashboard: Einstellungen › Werbekonten & Budget › Unbekannte Kampagnen
  • With Claude (MCP): ads_unknown_campaigns_list {"project":"my-shop"}

Or connect the account the campaign comes from. Naming works with ads_manual_entities_upsert.

How to tell it worked

  • The hint on Sources & campaigns disappears or only shows „Wird automatisch zugeordnet“.
  • ads_unmatched_diagnosis reports visits 0 or only click_sync_pending / connected_after.
  • After the URL suffix, new paid visits carry utm_id and belong to their campaign.

The click id gclid is enough for X3 to tie a Google click to its campaign. But Google only reveals that once the click is in its click data (usually after 15 to 60 minutes). So X3 queries days with waiting click ids every hour, the current day included, and re-matches the affected visits right afterwards. For iPhone clicks (wbraid, gbraid) Google reveals no campaign; only URL parameters in the link help there. Meta (fbclid), LinkedIn (li_fat_id) and TikTok (ttclid) have no API that ties a click id to a campaign: there X3 recognizes the campaign by the URL parameters only.

The task „Werbebesuche ohne Kampagne“ opens when on one day at least 20 % of a platform's paid visits (from 10 visits) have no campaign and no sync is pending any more, and closes by itself below 10 %.