google_ads_get_url_tracking_config
Get URL & UTM Tracking Configuration
GoogleDescription
Complete URL and UTM tracking configuration across every Google Ads hierarchy level — account, campaign, ad group, ad, keyword and asset — in one call. Preferred tool for any UTM or tracking audit; do not chain list_campaigns + list_ad_groups + list_ads + get_account_summary for this. Returns each entity's own tracking template, final URL suffix, custom parameters and final URLs, plus the effective value resolved through Google's precedence chain (account → campaign → ad group → ad → keyword) and labelled with the level that set it. Every field is always present: a field that is not set is null, never omitted — so "no tracking template here" is verifiable rather than merely unobserved. The coverage block reports how many entities were scanned at each level across the whole account, not just the returned page; observed: true with entities_with_own_values: 0 is a verified pass, not a coverage gap. scope defaults to "all" (every entity, paginated on large accounts); pass scope: "overrides" for an audit — it returns only entities that set a value at their own level and usually fits in one page. ValueTrack macros such as {lpurl} and {campaignid} are returned verbatim and are never parsed or expanded.
Usage
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "google_ads_get_url_tracking_config",
"arguments": {
"customer_id": "1234567890",
"scope": "overrides",
"reason": "UTM tracking audit"
}
}
}
hopkin google url-tracking-config get
| Flag | Type | Required | Description |
|---|---|---|---|
--customer-id | string | Required | The Google Ads Customer ID (10 digits, with or without dashes) |
--login-customer-id | string | Optional | MCC (Manager) Customer ID; required for managed accounts |
--levels | array | Optional | Hierarchy levels to scan. Defaults to all six. ACCOUNT is always included regardless, because it is the root of every effective-value chain. |
--scope | string | Optional | "all" (default) returns every entity at the requested levels with its effective config — complete, and paginated on large accounts. "overrides" returns only entities that set at least one URL field at their own level: the compact answer to "what is configured where", and the right choice for an audit. The coverage block is identical in both modes and always describes the full scan. |
--campaign-ids | array | Optional | Restrict the scan to these campaigns and their descendants |
--ad-group-ids | array | Optional | Restrict the scan to these ad groups and their descendants |
--status | array | Optional | Entity status filter. Defaults to ["ENABLED"] — a removed campaign cannot serve a mistagged URL. |
--limit | integer | Optional | Maximum rows in `data` per page (default 200, max 1000) |
--cursor | string | Optional | Opaque pagination cursor from a previous response nextCursor |
--connection-id | string | Optional | Optional ID of a specific connection to use for this call. Omit to use the actor's default connection for this network. Call <platform>_list_connections to discover available connection IDs. |
{
"mcpServers": {
"google-ads": {
"url": "https://google.mcp.hopkin.ai",
"transport": "sse"
}
}
}
- Audit what is configured where (compact)
- Every entity with its effective config
- Drill into one campaign and its descendants
- Sitelinks and other assets only
- Keyword-level overrides in one ad group
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
customer_id |
string |
Required | The Google Ads Customer ID (10 digits, with or without dashes)maxLength: 20, pattern: ^[\d-]+$ |
reason |
string |
Required | Why this tool call is neededminLength: 1, maxLength: 500 |
Optional parameters (9)
| Name | Type | Required | Description |
|---|---|---|---|
login_customer_id |
string |
Optional | MCC (Manager) Customer ID; required for managed accountsmaxLength: 20, pattern: ^[\d-]+$ |
levels |
array |
Optional | Hierarchy levels to scan. Defaults to all six. ACCOUNT is always included regardless, because it is the root of every effective-value chain. |
scope |
string |
Optional | "all" (default) returns every entity at the requested levels with its effective config — complete, and paginated on large accounts. "overrides" returns only entities that set at least one URL field at their own level: the compact answer to "what is configured where", and the right choice for an audit. The coverage block is identical in both modes and always describes the full scan.all overrides |
campaign_ids |
array |
Optional | Restrict the scan to these campaigns and their descendants |
ad_group_ids |
array |
Optional | Restrict the scan to these ad groups and their descendants |
status |
array |
Optional | Entity status filter. Defaults to ["ENABLED"] — a removed campaign cannot serve a mistagged URL. |
limit |
integer |
Optional | Maximum rows in `data` per page (default 200, max 1000)min: 1, max: 1000 |
cursor |
string |
Optional | Opaque pagination cursor from a previous response nextCursor |
connection_id |
string |
Optional | Optional ID of a specific connection to use for this call. Omit to use the actor's default connection for this network. Call <platform>_list_connections to discover available connection IDs. |
Examples
Audit what is configured where (compact)
{
"customer_id": "1234567890",
"scope": "overrides",
"reason": "UTM tracking audit"
}
hopkin google url-tracking-config get --customer-id 1234567890 --scope overrides
Every entity with its effective config
{
"customer_id": "1234567890",
"reason": "Full URL tracking enumeration"
}
hopkin google url-tracking-config get --customer-id 1234567890
Drill into one campaign and its descendants
{
"customer_id": "1234567890",
"campaign_ids": [
"9876543210"
],
"reason": "Campaign tracking template review"
}
hopkin google url-tracking-config get --customer-id 1234567890 --campaign-ids 9876543210
Sitelinks and other assets only
{
"customer_id": "1234567890",
"levels": [
"ASSET"
],
"scope": "overrides",
"reason": "Check asset-level tracking overrides"
}
hopkin google url-tracking-config get --customer-id 1234567890 --levels ASSET --scope overrides
Keyword-level overrides in one ad group
{
"customer_id": "1234567890",
"levels": [
"KEYWORD"
],
"ad_group_ids": [
"5555555555"
],
"scope": "overrides",
"reason": "Check keyword final URL suffixes"
}
hopkin google url-tracking-config get --customer-id 1234567890 --levels KEYWORD --ad-group-ids 5555555555 --scope overrides