linkedin_ads_get_competitor_ad
Get Competitor Ad
LinkedinDescription
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": "linkedin_ads_get_competitor_ad",
"arguments": {
"ad_id": "ad-uuid-from-list",
"reason": "Read the full copy and media for this ad"
}
}
}
hopkin linkedin competitor-ad get
| Flag | Type | Required | Description |
|---|---|---|---|
--ad | string | Required | The library ad ID from linkedin_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 LinkedIn Ad Library payload behind the normalized fields. Off by default. raw_data is the only place an ad's EU-DSA transparency data lives, under raw_data.detail: payer (the legal 'Paid for by' identity), total_impressions (an impression range), impressions_by_country, targeting and video_urls. It is there only when the scrape read the ad's detail page, and LinkedIn shows impressions and targeting only for ads delivered in the EU. Set include_raw for who pays for an ad, its impressions or reach by country, or its targeting. A raw row is large (~1.4 KB per ad on average and up to 15 KB). |
{
"mcpServers": {
"linkedin-ads": {
"url": "https://linkedin.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 linkedin_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 LinkedIn Ad Library payload behind the normalized fields. Off by default. raw_data is the only place an ad's EU-DSA transparency data lives, under raw_data.detail: payer (the legal 'Paid for by' identity), total_impressions (an impression range), impressions_by_country, targeting and video_urls. It is there only when the scrape read the ad's detail page, and LinkedIn shows impressions and targeting only for ads delivered in the EU. Set include_raw for who pays for an ad, its impressions or reach by country, or its targeting. A raw row is large (~1.4 KB per ad on average and up to 15 KB). |
Examples
Inspect one ad
{
"ad_id": "ad-uuid-from-list",
"reason": "Read the full copy and media for this ad"
}
hopkin linkedin 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 linkedin competitor-ad get --ad ad-uuid-from-list --start 0 --end 10