google_ads_get_landing_page_report

Get Landing Page Performance Report

Google

Description

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: \

Read-onlyIdempotentOpen-world

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"
    }
  }
}

Parameters

NameTypeRequiredDescription
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)
NameTypeRequiredDescription
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>