google_ads_get_landing_page_report
Get Landing Page Performance Report
GoogleDescription
Landing page performance report from the landing_page_view resource. Preferred tool for all landing page analysis — do not use google_ads_get_insights or google_ads_list_ads for landing page data. Returns clicks, impressions, cost, conversions and speed_score grouped by landing page URL, with per-conversion-action breakdowns included automatically. speed_score is Google's mobile landing page speed score, 1–10 with 10 fastest, measured from mobile ad clicks. It is on every row and is null when Google has no measurement for that row, which is common on rows with little mobile traffic, such as desktop and Demand Gen rows; null means not measured, not slow. It is the only landing page quality signal Google Ads still reports: Google no longer reports the mobile-friendly click rate or the valid AMP click rate, so they are not available from this or any other tool. Use url_contains to filter by URL pattern. Paginated: \
Usage
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "google_ads_get_landing_page_report",
"arguments": {
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"reason": "Landing page analysis"
}
}
}
hopkin google landing-page-report 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 |
--date-preset | string | Optional | Predefined date range: TODAY, YESTERDAY, LAST_7_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTH. LAST_7_DAYS / LAST_30_DAYS are the 7 / 30 complete days ending yesterday (account time zone), as in Google Ads; THIS_MONTH runs through today. |
--date-range | object | Optional | Custom date range {start_date, end_date} in YYYY-MM-DD |
--segments | array | Optional | Additional segments: date, device, ad_network_type. Rows and conversion breakdowns are totals over the date window unless "date" is included, which returns one row per day (breakdown keys become url|date). Conversion breakdowns are always included automatically via a separate query. |
--campaign | string | Optional | Filter to a specific campaign ID |
--ad-group-id | string | Optional | Filter to a specific ad group ID |
--url-contains | string | Optional | Filter landing pages where URL contains this string (case-insensitive) |
--limit | integer | Optional | Page size: rows per page (1-1000, default 25). The response `count` is the total across all pages. To get more rows, pass `nextCursor` back as `cursor` rather than raising `limit`: pages much larger than the default can exceed what an MCP client accepts. |
--cursor | string | Optional | Opaque pagination cursor: pass the `nextCursor` value from the previous response unchanged, with the same filters, segments and order_by, to fetch the next page. Omit for the first page. Never construct one. Each page carries the conversion breakdown only of the URLs it introduces, so a full crawl adds up rather than double-counting. Pages are positions in a ranking by `order_by` that is re-read live on every call, so a row near a page boundary can move between pages if its metric changes — with order_by="conversions" that happens even for a window that ended days ago, because Google keeps revising past days as conversions are attributed. Order by clicks, impressions or cost for the steadiest crawl. |
--order-by | string | Optional | Sort results by this metric (default: clicks, descending) |
--include-all-conversions | boolean | Optional | When true, includes an additional all-conversions breakdown (all_conversions, all_conversions_value) segmented by conversion_action_name. |
--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"
}
}
}
- Top landing pages by clicks
- Daily landing page trend
- Landing pages for a campaign
- Filter by URL pattern
- Next page
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 (12)
| Name | Type | Required | Description |
|---|---|---|---|
login_customer_id |
string |
Optional | MCC (Manager) Customer ID; required for managed accountsmaxLength: 20, pattern: ^[\d-]+$ |
date_preset |
string |
Optional | Predefined date range: TODAY, YESTERDAY, LAST_7_DAYS, LAST_30_DAYS, THIS_MONTH, LAST_MONTH. LAST_7_DAYS / LAST_30_DAYS are the 7 / 30 complete days ending yesterday (account time zone), as in Google Ads; THIS_MONTH runs through today.TODAY YESTERDAY LAST_7_DAYS LAST_30_DAYS THIS_MONTH LAST_MONTH |
date_range |
object |
Optional | Custom date range {start_date, end_date} in YYYY-MM-DD |
segments |
array |
Optional | Additional segments: date, device, ad_network_type. Rows and conversion breakdowns are totals over the date window unless "date" is included, which returns one row per day (breakdown keys become url|date). Conversion breakdowns are always included automatically via a separate query. |
campaign_id |
string |
Optional | Filter to a specific campaign IDmaxLength: 20, pattern: ^\d+$ |
ad_group_id |
string |
Optional | Filter to a specific ad group IDmaxLength: 20, pattern: ^\d+$ |
url_contains |
string |
Optional | Filter landing pages where URL contains this string (case-insensitive) |
limit |
integer |
Optional | Page size: rows per page (1-1000, default 25). The response `count` is the total across all pages. To get more rows, pass `nextCursor` back as `cursor` rather than raising `limit`: pages much larger than the default can exceed what an MCP client accepts.min: 1, max: 1000 |
cursor |
string |
Optional | Opaque pagination cursor: pass the `nextCursor` value from the previous response unchanged, with the same filters, segments and order_by, to fetch the next page. Omit for the first page. Never construct one. Each page carries the conversion breakdown only of the URLs it introduces, so a full crawl adds up rather than double-counting. Pages are positions in a ranking by `order_by` that is re-read live on every call, so a row near a page boundary can move between pages if its metric changes — with order_by="conversions" that happens even for a window that ended days ago, because Google keeps revising past days as conversions are attributed. Order by clicks, impressions or cost for the steadiest crawl. |
order_by |
string |
Optional | Sort results by this metric (default: clicks, descending)impressions clicks cost conversions ctr |
include_all_conversions |
boolean |
Optional | When true, includes an additional all-conversions breakdown (all_conversions, all_conversions_value) segmented by conversion_action_name. |
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
Top landing pages by clicks
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"reason": "Landing page analysis"
}
hopkin google landing-page-report get --customer-id 1234567890 --date-preset LAST_30_DAYS
Daily landing page trend
{
"customer_id": "1234567890",
"date_preset": "LAST_7_DAYS",
"segments": [
"date"
],
"reason": "Daily landing page trend"
}
hopkin google landing-page-report get --customer-id 1234567890 --date-preset LAST_7_DAYS --segments date
Landing pages for a campaign
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"campaign_id": "9876543210",
"reason": "Campaign landing page review"
}
hopkin google landing-page-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --campaign 9876543210
Filter by URL pattern
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"url_contains": "/products/",
"reason": "Product page performance"
}
hopkin google landing-page-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --url-contains /products/
Next page
{
"customer_id": "1234567890",
"date_preset": "LAST_30_DAYS",
"cursor": "<nextCursor from the previous response>",
"reason": "Walk every landing page in the account"
}
hopkin google landing-page-report get --customer-id 1234567890 --date-preset LAST_30_DAYS --cursor <nextCursor from the previous response>