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 requests and set ATRIA_API_KEY.
  • Choose an advertiser industry tag, such as electronics, for the initial search.

Workflow

StepRequestWhat it returns
Find videosGET /open/v1/ad-library/searchAds matching the video-duration buckets and industry.
Choose an adReview data.itemsUse an ad's id for the detail request.
Inspect mediaGET /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 industry uses advertiser tags; do not substitute Inspo brand-search industries values.
  • To research a followed competitor, add its unified_brand_id to every search request. See Competitor Research.
  • most_active helps prioritize review. It does not establish conversion performance.

Did this page help you?