Skip to main content
Glama
localseodata

Local SEO Data

Official

local_services_ads

Read-only

Check Google Guaranteed/Screened local services ads for a keyword and location, returning business names, ratings, and reviews from the LSA carousel; retry mobile when desktop shows none.

Instructions

Use when checking Google Guaranteed/Screened ads for service categories (home services, legal, etc.). Returns business names, ratings, and reviews from the LSA carousel on the Google results page; badge, years_in_business, phone and services are filled only when Google shows them there. Retries on the mobile SERP when desktop shows no LSAs; lsa_block_found: false means Google showed none for the query. Costs 2 credits.

Input Schema

NameRequiredDescriptionDefault
keywordYesSearch keyword (e.g. "plumber")
locationYesCity and state (e.g. "Orchard Park, NY")

Output Schema

NameRequiredDescriptionDefault
adsYes
keywordYes
locationYes
total_adsYes
device_usedNo
location_usedNo
lsa_block_foundNo
location_alternativesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.1.0
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "ads": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "badge": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "business_name": {
      +            "type": "string"
      +          },
      +          "phone": {
      +            "type": "string"
      +          },
      +          "rank": {
      +            "type": "number"
      +          },
      +          "rating": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "reviews_count": {
      +            "type": "number"
      +          },
      +          "services": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "years_in_business": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "rank",
      +          "business_name",
      +          "rating",
      +          "reviews_count",
      +          "badge",
      +          "years_in_business",
      +          "phone",
      +          "services"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "device_used": {
      +      "enum": [
      +        "desktop",
      +        "mobile"
      +      ],
      +      "type": "string"
      +    },
      +    "keyword": {
      +      "type": "string"
      +    },
      +    "location": {
      +      "type": "string"
      +    },
      +    "location_alternatives": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "code": {
      +            "type": "number"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "name",
      +          "code",
      +          "type"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "location_used": {
      +      "type": "string"
      +    },
      +    "lsa_block_found": {
      +      "type": "boolean"
      +    },
      +    "total_ads": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "ads",
      +    "total_ads",
      +    "keyword",
      +    "location"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld annotations, the description discloses conditional field population (badge, years_in_business, phone, services only when Google shows them), a mobile-SERP retry fallback, the meaning of lsa_block_found: false, and a 2-credit cost. These are exactly the non-obvious operational facts an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the usage condition, and each subsequent clause (returned fields, fallback, lsa_block_found semantics, cost) adds distinct value. The semicolon-chained single paragraph is dense but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value structure need not be explained, and the description still covers the key behavioral caveats: partial field population, retry fallback, no-LSA signal, and credit cost. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with only two parameters (keyword, location) that already carry examples. The description implies the query/location split only indirectly and adds no format guidance beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (Google Guaranteed/Screened Local Services Ads in the LSA carousel of the SERP) and a specific action (check ads for service categories), and it enumerates the returned fields. This is distinguishable from siblings like local_pack or organic_serp, which cover different SERP elements.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use when checking Google Guaranteed/Screened ads for service categories (home services, legal, etc.)" gives a clear trigger condition with examples. It does not explicitly name an alternative tool or state when not to use it, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.