Creative analytics for Meta and TikTok ads
See which creatives, hooks, creators and formats sell. Ad-level spend and video stats from Meta and TikTok are joined with the orders ROASaurus tracked on your store.
Creative cards
Thumbnail, spend, revenue, ROAS, CTR, hook rate and hold rate for every creative.
Hook and hold rate
How many viewers the first seconds keep, and how many watch to the end.
Fatigue flags
Creatives whose click-through rate fell by a quarter or more week over week.
Compare three
A trend chart puts up to three creatives side by side over time.
Hooks, creators, formats
Group results by what you put in the ad name.
Pulse
19 headline metrics against the previous period, by channel.
What you can group by
Results can be grouped by creative, ad, hook, creator, format or campaign. Each row shows spend, impressions, clicks, CTR, hook rate, hold rate, tracked orders, revenue, ROAS, CPA and the week-over-week change in CTR. The trend chart compares up to three of them on spend, ROAS, CTR, hook rate or impressions.
Metrics and formulas
| Metric | Meta | TikTok |
|---|---|---|
| Hook rate | 3-second video views ÷ video impressions | 2-second views ÷ video impressions |
| Hold rate | ThruPlays ÷ video impressions | 6-second views ÷ video impressions |
| CTR | Link clicks ÷ impressions | Clicks ÷ impressions |
| ROAS | Tracked revenue ÷ spend | |
| CPA | Spend ÷ tracked orders | |
| Fatigue | CTR in the last 7 days is 25% or more below the 7 days before, with at least 1,000 impressions in each week | |
Hook rate and hold rate only count video impressions, so static images show no value for them.
Where revenue comes from
Revenue is not copied from Ads Manager. It comes from orders ROASaurus tracked on your store, credited by last click within your lookback window to the ad named in utm_content, or to the ad id. For Meta, set the URL parameters to utm_source=facebook&utm_medium=paid&utm_campaign={{campaign.name}}&utm_id={{campaign.id}}&utm_term={{adset.name}}&utm_content={{ad.name}}. The Meta guide walks through it.
A naming convention for hooks, creators and formats
To compare hooks, creators and formats, put them in the ad name:
hook: Problem | creator: Anna | format: UGC
The form hook=Problem_creator=Anna_format=UGC works too. ROASaurus reads the values from the ad name on Meta and TikTok, and adds up every ad with the same hook, creator or format. Ads without a value are grouped as "(not in ad name)". More in the creative analytics guide.
Pulse
Pulse shows 19 headline metrics compared with the previous period: ROAS, ad efficiency ratio, spend, revenue, AOV, CPA, purchases, clicks, impressions, page views, CTR, CPM, frequency, conversion rate, add to cart, cost per add to cart, checkouts, and the view-through purchases and value the ad platforms report. Filter by channel and drill into campaign, ad set and ad tables.
Who it is for and setup
Brands and creative teams that run video on Meta and TikTok and test many hooks and creators. Connect the Meta ad account with Facebook login or a token with ads_read, and add the TikTok advertiser id and a token. See Meta and TikTok. Revenue needs tracking installed, so orders can be tied to ads.
Limits
- Only Meta and TikTok ad stats are synced. Google, Snapchat, Pinterest, Reddit, X and Microsoft creatives are not covered.
- Creative revenue is last click. For other models, use attribution at campaign level.
- Fatigue needs at least 1,000 impressions in both weeks, so small ads are never flagged.
- Spend in another currency is converted to the store currency at ECB rates.
Built on the same first-party data
Questions, answered
What is hook rate?
The share of video impressions that watched at least 3 seconds on Meta, or 2 seconds on TikTok. It shows how well the opening of a video stops the scroll.
How is hold rate calculated?
ThruPlays divided by video impressions on Meta. On TikTok, 6-second views divided by video impressions.
How does ROASaurus detect creative fatigue?
It flags a creative when its click-through rate in the last 7 days is 25% or more below the 7 days before, as long as both weeks have at least 1,000 impressions.
Why is creative revenue different from Ads Manager?
ROASaurus counts orders it tracked on your store, credited by last click to the ad in utm_content. Ads Manager also counts view-through conversions and uses its own attribution windows.
Every sale, traced to the ad that earned it
Server-side tracking, profit and lifetime value in one app. 14-day free trial, no credit card.
Start your free trial →