tagmanager.readonly). AdLoop cannot change, create or publish anything in a container.
Connect
- AdLoop Cloud
- Self-hosted
When you connect Google, leave Tag Manager ticked under Access for your AI (“Read containers — for tracking audits”). Then pick the Tag Manager account and the container, either during onboarding or later under Settings → Google & accounts → Change. With a single GTM account, the account step is skipped.Choosing a container is optional. Without one, the dashboard shows “Not selected — GTM tools ask per call”, and your AI passes the IDs on each call (it finds them with
list_gtm_accounts and list_gtm_containers). Agencies pick a container per client under Settings → Clients.If the page says Permission missing — reconnect Google to enable Tag Manager, your Google connection was made without this permission (deselected, or from an earlier version). Click Reconnect and approve it; your other selections stay as they are.What it reads
- The live container. Tags, triggers and the event-coverage audit look at the published version, which is what actually runs on your site. Trigger conditions are turned into readable text, such as
{{Page Path}} matches RegExp ^/pricing/. - Unpublished drafts.
get_gtm_workspace_difflists what was added, changed or deleted in a workspace but never published, plus merge conflicts. This is the usual cause of “I fixed the tag and nothing happened”. - History.
list_gtm_versionsandget_gtm_versionshow who published what and when, so a drop in conversions can be matched to a specific publish. - Variables. Custom variables plus the enabled built-ins. A trigger that uses
{{Form ID}}never fires if that built-in isn’t enabled.
The event coverage audit
audit_event_coverage compares three sources: the events your website code sends, the GA4 event tags in the live container, and the events GA4 actually receives. Each event gets a status, for example ok, tag_paused, tag_active_but_not_firing, gtm_paused_but_firing or ga4_only. It is the GTM half of the tracking audit, which explains the workflow. The audit also needs a GA4 property.
Tools
list_gtm_accounts,list_gtm_containers: find account and container IDslist_gtm_tags,get_gtm_tag: tag inventory, or the full configuration of one taglist_gtm_triggers,get_gtm_trigger: trigger inventory with readable conditions, or one trigger with every tag that uses itlist_gtm_variables: custom and enabled built-in variableslist_gtm_workspaces,get_gtm_workspace_diff: drafts and their unpublished changeslist_gtm_versions,get_gtm_version: publish history and the contents of one versionaudit_event_coverage: code ↔ GTM ↔ GA4 comparison per event
gtm (toolsets).
Limits
- Dynamic-event tags (an event name taken from
{{Event}}) and Custom HTML tags can’t be interpreted automatically. The audit lists them separately for a manual look. - On AdLoop Cloud, Tag Manager calls are unmetered on every plan; see plans and limits.
- On a solo plan or a client-scoped key, calls for a container other than the selected one are refused.
What AdLoop stores
On AdLoop Cloud: the selected GTM account ID, container ID and container name, next to your encrypted Google token. Container contents pass through and are never stored. Self-hosted: only the IDs you put inconfig.yaml.