Skip to main content
Glama
hermoso-ai

Hermoso

Official

Pinterest deep (async) ad report

pinterest_ads_async_report
Read-only

Generate a deep Pinterest ad report covering up to 2.5 years with conversion and ROAS metrics. Use for revenue analysis and campaigns older than 90 days; resume pending jobs with the returned token.

Instructions

The DEEP Pinterest ad report — Pinterest’s ASYNCHRONOUS lane, which reaches 914 DAYS back (2.5 years) where pinterest_ads_report stops at 90, and carries roughly three times the metric columns (conversion, ROAS and cross-device families the quick report does not have). Use it for anything older than three months, and for revenue questions. Levels: ADVERTISER / CAMPAIGN / AD_GROUP / PIN_PROMOTION / KEYWORD / PRODUCT_GROUP / PRODUCT_ITEM plus their *_TARGETING twins. Pinterest generates it asynchronously, so this may come back pending:true with a token — CALL AGAIN WITH THAT TOKEN to pick it up, and never re-submit without it (a second submit generates a second report). Pinterest’s own windows are enforced here with the reason rather than as an opaque 400: 914 days back over at most 186 days; at HOUR granularity 8 days back over 3; at a PRODUCT_ITEM level 92 back over 31. A finished report link is valid five minutes and the report one hour, so an EXPIRED status means run it again, not that anything failed. Read-only, 0 credits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
adIdsNo
levelNoADVERTISER | CAMPAIGN | AD_GROUP | PIN_PROMOTION | KEYWORD | PRODUCT_GROUP | PRODUCT_ITEM (+ _TARGETING variants) — default CAMPAIGN. An unknown level is refused with the list.
sinceNoYYYY-MM-DD (default 30 days ago)
tokenNoRESUME a pending report — pass the token back instead of re-submitting
untilNoYYYY-MM-DD (default today)
columnsNoPinterest async metric columns — omit for the standard spend/impressions/clicks/CTR/conversions set
adGroupIdsNo
adAccountIdNo
campaignIdsNo
granularityNo
reportFormatNo
targetingTypesNoonly valid with a *_TARGETING level
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds significant behavioral context beyond that: the async pending/token mechanism, Pinterest's date windows per granularity/level, the five-minute link validity and one-hour report expiry, and the meaning of EXPIRED status. This is exactly the kind of disclosure an agent needs and is more than what annotations alone provide.

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

Conciseness5/5

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

The description is long but every sentence delivers actionable information: the differentiator, the use cases, the levels, the async flow, the time windows, and the expiry semantics. It is front-loaded with the core purpose and differentiator, then dives into operational details. No fluff or redundancy; it earns its length.

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?

For a tool with 12 parameters, no output schema, and a complex async behavior, the description covers the essential operational aspects: when to use, how the async pending cycle works, token handling, time windows per granularity and level, and the meaning of EXPIRED. It also states read-only and 0 credits, aligning with annotations. The combination of description and schema provides an agent with enough to call the tool correctly, including the non-obvious re-submission rule.

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

Parameters4/5

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

The schema covers 50% of parameters with descriptions, and the description adds crucial semantics for the token parameter (RESUME a pending report) and explains the meaning of the 'since/until' windows in the context of Pinterest's constraints. It also clarifies how the 'level' parameter interacts with targeting twins. Some parameters like adIds, campaignIds are not detailed, but their purpose is self-evident given the ad-report context. The description meaningfully supplements the schema without repeating it.

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 clearly states it is the deep Pinterest ad report that reaches further back (914 days) and carries more metrics than the quick report, explicitly naming the sibling pinterest_ads_report. The verb is implicit but unambiguous ('get the deep report') and the resource is well-defined. It also lists the supported levels, making its scope concrete and distinguishable from other tools.

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

Usage Guidelines5/5

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

Explicitly tells the agent when to use it ('anything older than three months, and for revenue questions') and contrasts with the alternative that stops at 90 days. It also explains the async workflow (call again with token, never re-submit without it), which is essential for correct usage. The description leaves no ambiguity about the intended context.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hermoso-ai/hermoso'

If you have feedback or need assistance with the MCP directory API, please join our Discord server