meta_ads_get_competitor_ad
Get Competitor Ad
Description
Fetch one competitor ad in full detail from the scraped corpus: complete copy (headline, primary text, description, CTA), landing URL, run dates, and every media asset with its permanent CDN \
Read-onlyIdempotent
Usage
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "meta_ads_get_competitor_ad",
"arguments": {
"ad_id": "ad-uuid-from-list",
"reason": "Read the full copy and media for this ad"
}
}
}
hopkin meta competitor-ad get
| Flag | Type | Required | Description |
|---|---|---|---|
--ad | string | Required | The library ad ID from meta_ads_list_competitor_ads |
--include-frames | boolean | Optional | Optional, no effect: frame URLs are always listed. Use stride/start/end to choose which frames. |
--stride | integer | Optional | List every Nth extracted frame. Defaults to a stride that fits each video into its share of 120 frame URLs per ad (split evenly between the ad's videos). |
--start | number | Optional | Only frames at or after this offset into the video, in seconds |
--end | number | Optional | Only frames at or before this offset into the video, in seconds |
--include-raw | boolean | Optional | Also return raw_data, the scraped Meta Ad Library payload behind the normalized fields. Off by default. A carousel or dynamic (dco, dpa) ad's real copy is per card: its normalized headline and primary_text hold only the ad-level copy, often a catalog template such as '{{product.name}}'. Such ads carry `cards`, one per card in order, with its title, body, link_url, cta_text (plus caption and link_description when present) and an image and/or video link: our mirror, or the card's own Meta CDN URL marked short_lived (it expires) when not mirrored yet. include_raw adds only the full scraped payload behind them. A raw row is large (~9.7 KB per ad on average and up to 268 KB). |
{
"mcpServers": {
"meta-ads": {
"url": "https://meta.mcp.hopkin.ai",
"transport": "sse"
}
}
}
- Inspect one ad
- Frame URLs for the first 10 seconds
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
ad_id |
string |
Required | The library ad ID from meta_ads_list_competitor_adsminLength: 1 |
reason |
string |
Required | Why this tool call is neededminLength: 1, maxLength: 500 |
Optional parameters (5)
| Name | Type | Required | Description |
|---|---|---|---|
include_frames |
boolean |
Optional | Optional, no effect: frame URLs are always listed. Use stride/start/end to choose which frames. |
stride |
integer |
Optional | List every Nth extracted frame. Defaults to a stride that fits each video into its share of 120 frame URLs per ad (split evenly between the ad's videos).min: 1 |
start |
number |
Optional | Only frames at or after this offset into the video, in secondsmin: 0 |
end |
number |
Optional | Only frames at or before this offset into the video, in secondsmin: 0 |
include_raw |
boolean |
Optional | Also return raw_data, the scraped Meta Ad Library payload behind the normalized fields. Off by default. A carousel or dynamic (dco, dpa) ad's real copy is per card: its normalized headline and primary_text hold only the ad-level copy, often a catalog template such as '{{product.name}}'. Such ads carry `cards`, one per card in order, with its title, body, link_url, cta_text (plus caption and link_description when present) and an image and/or video link: our mirror, or the card's own Meta CDN URL marked short_lived (it expires) when not mirrored yet. include_raw adds only the full scraped payload behind them. A raw row is large (~9.7 KB per ad on average and up to 268 KB). |
Examples
Inspect one ad
{
"ad_id": "ad-uuid-from-list",
"reason": "Read the full copy and media for this ad"
}
hopkin meta competitor-ad get --ad ad-uuid-from-list
Frame URLs for the first 10 seconds
{
"ad_id": "ad-uuid-from-list",
"start": 0,
"end": 10,
"reason": "List the opening frames of the video creative"
}
hopkin meta competitor-ad get --ad ad-uuid-from-list --start 0 --end 10