Skip to main content
Glama

Get Ad Preview

adsap_get_ad_preview

Render a pixel-accurate visual preview of an existing Meta ad (real Meta render; video ads also get an animated clip in the interactive card). The card is SELF-CONTAINED: Facebook Feed + Instagram Reels tabs and an 'All placements on Meta' button are built in. AFTER THE CARD RENDERS, reply with ONE short confirmation sentence and stop. NEVER mention, list, or offer any other placement (no 'Desktop Feed', 'Stories', 'right column', etc.) and never describe the card's tabs or buttons — the user can see them. Only if the user themselves asks about another placement: answer that the card's 'All placements on Meta' button opens every placement in Ads Manager, and only pass a non-default ad_format when the user explicitly names one.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ad_idYesThe ID of the existing ad to render a preview for.
ad_formatNoPlacement to render. Use MOBILE_FEED_STANDARD (default) or INSTAGRAM_REELS — the two the interactive card presents. Other values exist only for when the user explicitly names that placement; otherwise direct them to the card's 'All placements on Meta' button.MOBILE_FEED_STANDARD
ad_account_idYesAd account ID (act_xxx). Required — scopes the request to the workspace that owns this ad account.
include_video_sourceNoAlso resolve the ad's raw video file URL (2 extra Meta reads, page-token lane). Default false — the bare file is NOT the preview experience (no ad chrome, placement-customized assets differ); kept for data/debug use. The upcoming animated placement preview replaces it (scope doc §8b).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full disclosure burden and delivers: it reveals the output form (interactive card with Facebook Feed + Instagram Reels tabs), the animated clip behavior for video ads, and the expected agent behavior after rendering. The schema complements this by disclosing that include_video_source costs '2 extra Meta reads'. No annotation contradiction exists since no annotations are present.

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 core function, then a compact sequence of behavioral rules. Every sentence earns its place given the need to encode post-call agent behavior, though it is denser than strictly necessary and slightly repetitive about the 'All placements on Meta' button.

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 no output schema and no annotations, the description covers the output experience, interaction rules, parameter selection conditions, and side effects. An agent has everything needed to invoke it correctly and behave appropriately before and after rendering.

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%, and the schema entries are unusually rich — ad_format explains which enum values the card presents and when to deviate, include_video_source discloses cost and intent, ad_account_id explains the act_xxx scoping. The main description adds only the reinforcing rule about non-default ad_format, which largely duplicates the schema. Baseline 3 applies when the schema does the heavy lifting.

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 opening sentence names a specific verb ('Render') and resource ('an existing Meta ad'), and characterizes the output precisely ('pixel-accurate visual preview', 'real Meta render'). It distinguishes itself from related siblings like adsap_get_preview_clip by emphasizing the real Meta render and the self-contained interactive card rather than a bare clip.

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?

Exceptionally prescriptive: it specifies the exact post-call behavior ('AFTER THE CARD RENDERS, reply with ONE short confirmation sentence and stop'), explicit prohibitions ('NEVER mention, list, or offer any other placement... never describe the card's tabs or buttons'), and a conditional rule for ad_format ('only pass a non-default ad_format when the user explicitly names one'). It also provides an alternative path — directing the user to the card's 'All placements on Meta' button — rather than enumerating placements.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources