Long-Form Video Research
Discover which brands are investing in 60s+ video creatives — and what those ads look like.
Find longer video creatives in a category, then inspect the full record of one selected ad.
Before you start
- Install
requestsand setATRIA_API_KEY. - Choose an advertiser industry tag, such as
electronics, for the initial search.
Workflow
| Step | Request | What it returns |
|---|---|---|
| Find videos | GET /open/v1/ad-library/search | Ads matching the video-duration buckets and industry. |
| Choose an ad | Review data.items | Use an ad's id for the detail request. |
| Inspect media | GET /open/v1/ad-library/{ad_id} | Ad copy and available media URLs, durations, and dimensions. |
Search for longer videos
Combine the 60-120 and 120- buckets to cover videos of at least 60 seconds. The script prints every matching page.
import os
import requests
BASE = "https://api.tryatria.com/open/v1"
HEADERS = {"X-API-Key": os.environ["ATRIA_API_KEY"]}
def call(method, path, **kwargs):
response = requests.request(
method,
BASE + path,
headers=HEADERS,
timeout=30,
**kwargs,
)
response.raise_for_status()
payload = response.json()
if payload.get("code") != 0:
raise RuntimeError(
f"API error {payload.get('code')}: {payload.get('message')}"
)
return payload["data"]
params = [
("display_format", "video"),
("video_length", "60-120"),
("video_length", "120-"),
("industry", "electronics"),
("order", "most_active"),
("page_size", 20),
]
while True:
page = call("GET", "/ad-library/search", params=params)
for ad in page["items"]:
video = ad["videos"][0] if ad["videos"] else {}
print(
ad["id"],
video.get("duration"),
ad.get("brand_name") or "",
ad.get("title") or "",
)
cursor = page.get("cursor")
if not cursor:
break
params = [(key, value) for key, value in params if key != "cursor"]
params.append(("cursor", cursor))Inspect one ad
Set ATRIA_AD_ID to an ID returned above. Run this in the same Python session:
ad_id = os.environ["ATRIA_AD_ID"]
ad = call("GET", f"/ad-library/{ad_id}")
print("Headline:", ad.get("title") or "")
print("Copy:", ad.get("body") or "")
print("Destination:", ad.get("link_url") or "")
for video in ad["videos"]:
print(
"Video:", video.get("url"),
"Duration:", video.get("duration"),
"Size:", video.get("width"), video.get("height"),
"Preview:", video.get("preview_image_url"),
)Notes
- A media URL may be null. When available, the video URL prefers HD and falls back to SD.
- Ad-search
industryuses advertiser tags; do not substitute Inspo brand-searchindustriesvalues. - To research a followed competitor, add its
unified_brand_idto every search request. See Competitor Research. most_activehelps prioritize review. It does not establish conversion performance.
Updated 11 days ago
Did this page help you?
