Most teams do not have a Facebook video data problem. They have a translation problem. The numbers exist — views, retention, reactions, geography, drop-off points — but they sit in a dashboard nobody opens until a campaign is already finished. The Marketing API changes that, because it lets you pull video performance into your own storage, join it with production metadata, and answer questions the native interface never asks.
This guide covers the whole path: getting access, choosing the right endpoints, pulling data without breaking rate limits, interpreting the metrics that actually matter, and turning all of it into creative briefs your editors and AI video tools can act on immediately.
Start With the Decision, Not the Dashboard
Before you write a single API call, write down the three decisions you need to make this quarter. Not the metrics you find interesting — the decisions. For example: which hook style holds attention past the first five seconds, whether 15-second or 45-second edits earn more completions, and which markets justify localized captions and voiceover.
That framing matters because the API returns a firehose. A single request can return dozens of metrics sliced by age, gender, country, region, placement, and platform. Without a decision attached to each metric, you end up building a dashboard that nobody reads and a pipeline that costs maintenance time for nothing.
A useful exercise is to write your questions as sentences with a blank in them: We should invest more in ___ format because ___. Every field you request should fill one of those blanks. If it does not, drop it. You can always add fields later — removing them from a live pipeline is harder.
What the Marketing API Actually Exposes for Video
Video performance on Facebook flows through two separate pipelines, and confusing them is the most common early mistake.
Ads video metrics versus organic Page video metrics
Ad-level video data arrives through the Insights edge on ad objects inside an ad account. You get delivery context — spend, reach, frequency, placement — alongside video-specific fields. Organic Page video data arrives through the video node itself, with permissions tied to Pages rather than ad accounts.
If you are running both paid and organic video, you will need both paths, and you will need a shared key to join them. The video ID is usually the cleanest join key, but it only survives if the same asset was used for both. Otherwise join on campaign plus publish date.
Endpoints worth knowing
A working shortlist looks like this:
- The video insights endpoint on an individual video object, which returns per-video performance and retention data.
- The ad account insights endpoint filtered to video metrics, which returns delivery and audience breakdowns.
- Page-level video insights, which aggregate everything published by a Page over a window.
- Breakdown parameters for age, gender, country, region, and platform position.
- Time-based breakdowns for live broadcasts, which return performance in short intervals across the stream.
Large date ranges typically return an asynchronous job rather than an immediate response. You submit the request, receive a job identifier, and poll until the report is ready. Build that polling into your code from day one; bolting it on later usually means rewriting your whole fetch layer.
Setting Up Access Without Losing a Day
Access configuration is where most schedules slip. The sequence below is the shortest reliable path.
App, business, and verification
Create a developer app, connect it to the Business Manager that owns the Pages and ad accounts you care about, and complete business verification. Verification is not optional for production access to most video fields, and it takes the longest of any step, so start it first and do other work while it processes.
Permission checklist
Request the narrowest set that covers your use case. Typical video analytics needs include:
- Ads read access for ad account data.
- Insights read access for Page and video metrics.
- Page engagement read access for organic video performance.
- Business management access only if you genuinely need to read across assets.
Request standard access while building and testing. Upgrade to advanced access only when you are ready to run against accounts you do not own personally.
Token strategy
Use a short-lived user token for exploration in the Graph API explorer. Use a Page token when you are calling Page and video endpoints. For anything scheduled, use a long-lived system user token tied to the business. Rotate it on a calendar reminder rather than waiting for a failed job at 3 a.m.
A Step-by-Step Workflow for Your First Report
Here is a workflow that scales from a single Page to a multi-brand portfolio.
Step 1: Fix your date range and granularity
Decide whether you need daily, weekly, or campaign-total numbers. Daily data is essential for diagnosing publishing cadence. Weekly data is better for creative comparison, because it smooths out weekend dips and one-off spikes.
Step 2: Choose metrics and breakdowns deliberately
Start with a small core: views at your chosen threshold, average watch time, completion count, reactions, comments, shares, and reach. Add demographic breakdowns only after the core is stable. Breakdowns multiply row counts quickly and can triple your storage needs.
Step 3: Request, paginate, and retry
Every list response is paginated. Follow the cursor until it is empty rather than hardcoding page counts. Wrap the call in exponential backoff so a transient throttle does not kill a nightly job. Batch independent requests where the API supports it, and cache anything that will not change — a video published six months ago does not need fresh metadata every hour.
Step 4: Store the raw response before transforming it
Save the untouched JSON alongside your cleaned table. When a metric definition shifts or a field is renamed, you can reprocess history instead of losing it. This one habit saves more time than any dashboard trick.
Step 5: Transform into a flat table
Flatten nested breakdown objects into columns: date, video ID, metric, breakdown dimension, breakdown value, value. A long, narrow schema survives new breakdown types far better than a wide one.
Step 6: Visualize around questions, not metrics
Build views around the decisions from step zero. One chart per question. If a chart does not change what someone does on Monday, delete it.
The Metrics That Actually Drive Creative Decisions
Metric literacy separates teams that improve from teams that just report.
Views, ThruPlay, and completions
A view at the shortest threshold counts the moment playback begins, which makes it excellent for measuring reach and terrible for measuring quality. ThruPlay counts watches past a longer threshold, so it correlates better with genuine interest. Completions tell you who stayed to the end. Track all three but judge creative on the middle and last ones.
Retention relative to length
Retention data shows how attention decays across the runtime. The first drop is usually the largest and least interesting — viewers scroll past. The second drop, wherever it lands, is your craft problem: a slow transition, a redundant line, an unanswered question.
Plot retention as a percentage of the audience still watching, and compare videos of similar length. Comparing a 12-second clip to a 90-second one on absolute retention flatters the short one every time.
Engagement signals
Shares and saves are stronger intent signals than reactions. A high reaction count with almost no shares often means the video was pleasant but not useful. Comments are noisier but reveal language you can reuse in your next hook.
Demographics and geography
Age and gender breakdowns help you decide casting, pacing, and music. Country and region breakdowns decide whether you localize captions, swap a currency reference, or cut a market-specific joke. Watch for audience overlap between campaigns before you conclude that one creative is winning — frequency inflation can make a mediocre video look efficient.
Turning Analytics Into Creative Briefs
Data that stays in a chart is expensive trivia. Here is how to push it back into production.
Diagnosing the first three seconds
If reach is healthy but retention collapses early, the problem is the opening frame, not the story. Check whether the first visual matches the promise in the caption. Mismatch here is the single most common cause of early drop-off.
Matching format to placement
Vertical, sound-off, in-feed placements reward immediate visual clarity and on-screen text. Feed placements with sound reward opening audio cues. Pull placement-level data before you decide a creative failed — sometimes the same video wins in one position and dies in another.
Sample size and testing windows
Do not declare a winner from two days of data. Aim for enough impressions per variant that a normal day's variance cannot explain the gap, and hold creative constant for a full weekly cycle so you are not measuring the calendar.
Feeding insights into AI video tools
Analytics gives you constraints: a hook length that works, a pacing curve that holds, a tone that lands with a specific age band. Those constraints are excellent inputs when you generate variants with AI video tools. Instead of asking for a generic version of an ad, you ask for a variant that opens with a visual claim, holds a steady pace, and targets the audience segment your retention curve says is strongest.
Building a Reporting Layer That Survives Platform Changes
Platform APIs change. A reporting layer that assumes stability will break loudly.
Naming conventions and versioning
Pin your API version explicitly rather than relying on a default. Name your stored tables with the version and the metric family so migration is a matter of adding a table, not rewriting queries.
Automated quality checks
Add a few cheap assertions: row count is greater than zero, no date gaps in the last seven days, no metric exceeds a plausible ceiling, and every video ID in your table exists in your asset library. These catch broken jobs before anyone presents a wrong number.
Alerts that mean something
Alert on job failure and on data staleness, not on metric movement. Movement alerts generate noise and train people to ignore them.
Common Mistakes That Waste Weeks
- Treating short-threshold views as a quality metric. It measures exposure, not interest.
- Requesting every breakdown by default. Row counts explode and queries slow to a crawl.
- Skipping raw storage. Without it, history is lost the first time a field changes.
- Hardcoding pagination. Lists grow; your loop should follow the cursor.
- Comparing videos of different lengths on absolute retention.
- Ignoring placement. A format verdict based on blended data is often wrong.
- Running on a personal token in production. Scheduled jobs will fail when it expires.
- Building dashboards before defining decisions. You get charts, not answers.
FAQ
How far back does video insight data go?
Availability depends on the object and the metric. Plan on recent history being reliable and treat older windows as best-effort. If historical comparison matters to you, start storing raw responses now — that archive becomes your long-term memory.
Why did my request return a job instead of data?
Large date ranges, many breakdowns, and broad metric sets are processed asynchronously. Save the job identifier, poll with backoff, and store the finished result. Do not re-submit the same request on every poll.
Do I need the same permissions for paid and organic video?
No. Ad account data and Page video data use different permission sets and different endpoints. Plan for two integrations even if the final report merges them into one table.
How often should I refresh?
Daily is enough for most content teams. Refresh hourly only if you are actively managing a live campaign and need intraday pacing. More frequent refreshes cost processing time without improving creative decisions.
Can I trust demographic breakdowns on small audiences?
Not really. Small samples produce unstable percentages that swing wildly week to week. Aggregate to a coarser dimension — age brackets, regions — before drawing conclusions.
What is the fastest way to find a failing creative?
Compare reach against completion rate for each video over the same window. High reach with low completion points at the opening seconds. Low reach with normal completion is a distribution problem, not a creative one.
A Repeatable Weekly Routine
Monday: refresh the pipeline and run quality checks. Confirm last week's data landed without gaps.
Tuesday: review retention curves for every asset published in the previous week and flag the two largest unexpected drops.
Wednesday: pull placement and demographic breakdowns for the top and bottom three videos. Note whether the gap is creative or distribution.
Thursday: translate findings into two concrete briefs — one to repeat a winning pattern, one to test a counter-hypothesis.
Friday: publish the test versions, log the hypothesis in your asset library, and set the review date. A hypothesis written down is a hypothesis you can actually settle.
Repeat weekly. Within a quarter you will have a library of tested patterns and a retention benchmark specific to your audience — which is far more valuable than any single report the API can return.


