Skip to main content

First move: the health check

Ask your AI to run health_check. It tests the OAuth token, GA4, and Ads connectivity and returns actionable guidance per service. GA4 is checked on two surfaces: ga4_admin (listing properties) and ga4_data (every report). ga4_data: "error" with SERVICE_DISABLED means the Google Analytics Data API isn’t enabled in your Google Cloud project (self-hosted); enable it there. It isn’t a permissions problem.

”This app isn’t verified” (self-hosted)

Your own Google Cloud project has not been through Google’s app review, so Google warns about it on the consent screen. Click Advanced, then continue to your project. This is expected for a project only you and your team use. AdLoop Cloud is verified by Google and shows no such warning.

Authorization errors after an AdLoop update (self-hosted)

When new Google services are added, stored tokens don’t cover the new scopes.
  • AdLoop discards outdated tokens automatically and re-runs consent on the next tool call. Approve all permissions in one go: partially granted consents are rejected with an error naming the missing scopes, because a partial token would break every other service.
  • If you see invalid_scope errors, delete ~/.adloop/token.json and run any tool to re-authorize.

Token expires every 7 days (self-hosted)

Your Google Cloud consent screen is in “Testing” status. Publish it to In production (Google Cloud Console → APIs & Services → OAuth consent screen).

GTM or Search Console tools return permission errors

  • The Tag Manager API / Search Console API must be enabled in your Google Cloud project (self-hosted).
  • Your Google account needs at least read access to the GTM container / GSC property.
  • Tokens created before these toolsets existed must re-consent once (see above).

”This API key is limited to the toolsets…” (Cloud)

The key was created with a toolset restriction and the AI called a tool outside it. Use a key that includes the toolset, or create one in Settings → API keys. Retrying with the same key won’t help.

New tools don’t show up in claude.ai (Cloud)

claude.ai lists a connector’s tools once and caches them. After AdLoop adds tools (for example when you connect Reddit Ads), refresh the list under Settings → Connectors → AdLoop; Claude Code and Cursor pick new tools up on their next start. There is no server-side push for this: the MCP endpoint is stateless, so clients only re-list when they reconnect.

”This workspace is on the solo plan…” (Cloud)

Not a permissions problem. Solo workspaces manage exactly one account pairing (one Ads account, one GA4 property, one Reddit ad account), and a call naming any other account is refused before it reaches Google or Reddit. Either change the workspace selection under Settings → Google / Settings → Reddit, or move to the agency plan, which adds client profiles and per-call account overrides so several accounts can be analyzed side by side.

Ads clicks don’t match GA4 sessions

Almost always EU consent behavior, not broken tracking. Read Consent and data gaps before changing anything.

A write was refused

That’s usually the safety model doing its job: budget above max_daily_budget, a bid raised beyond max_bid_increase_pct, broad match on manual CPC, missing geo/language targeting, or a read-only key hitting a write tool. The refusal message names the reason and where to change the setting.

DRY_RUN_FAILED

The dry run checked the change with the ad platform and the platform rejected it. For Google Ads the error is Google’s own, for example [mutate_error=RESOURCE_NOT_FOUND] Resource was not found. when the ad group no longer exists. The real apply would fail the same way, so fix the cause and draft the change again. On AdLoop Cloud (and self-hosted with two_phase_apply), a plan whose dry run failed can’t be applied.

”Your workspace reached its daily ad platform operation limit” (Cloud)

Google Ads and Reddit Ads calls count together against a daily limit that resets at midnight UTC. Analytics, Tag Manager, Search Console and Merchant Center keep working, and so does health_check. See plans and limits for what counts and how much each plan includes.

”Your workspace used its monthly ad platform operations” (Cloud)

On the Free plan, Google Ads and Reddit Ads calls also count against 250 operations per calendar month, reset on the 1st (UTC). The rest works as with the daily limit above; Pro has no monthly limit.