Six related data models for creative A/B testing — each slicing performance by a different element of the ad (text copy, visual asset, or full creative package). Pick the one matching the element you’re testing.Documentation Index
Fetch the complete documentation index at: https://docs.ocular.dev/llms.txt
Use this file to discover all available pages before exploring further.
Pick an asset to test
Body Asset
Primary ad copy. Slice by
body_text.Title Asset
Headlines. Slice by
title_text.Description Asset
Description text. Slice by
description_text.Image Asset
Individual images. Slice by
image_hash.Video Asset
Videos. Only one with native Video Views.
Creative Asset
Full ad as one unit. Slice by
asset_id.What they all share
Every asset breakdown carries the same near-complete metric set. The per-asset sections below cover only the slice-by dimensions and per-asset quirks. Metrics, grouped by category — every number you can compute, across all six asset types. Expand below for examples in each.Show sample metrics in each category
Show sample metrics in each category
Show sample dimensions in each category
Show sample dimensions in each category
Common metrics
Need a metric not listed? See the Meta Ads metric availability matrix.| Metric | Formula |
|---|---|
| Spend & revenue | |
| Ad Spend | Sum of daily spend |
| Conversion Value | Sum of reported revenue (see naming note below) |
| ROAS | Conversion Value ÷ Ad Spend |
| Conversions | Sum of reported orders |
| AOV | Conversion Value ÷ Conversions |
| Clicks & impressions | |
| Clicks (All) | Sum of clicks (inline + outbound) |
| Impressions | Sum of impressions |
| CTR (All) | Clicks ÷ Impressions × 100 |
| Link Clicks | Sum of inline link clicks (website-bound) |
| Link Click-Through Rate | Link Clicks ÷ Impressions × 100 |
| Cost efficiency | |
| CPC (All) | Ad Spend ÷ Clicks |
| CPM | Ad Spend ÷ Impressions × 1,000 |
| CPA | Ad Spend ÷ Conversions |
| Cost Per Link Click | Ad Spend ÷ Link Clicks |
| Engagement | |
| Landing Page Views | Sum |
| Post Engagement | Sum (reactions + comments + shares + clicks) |
| Page Engagement | Sum (Facebook Page likes, follows) |
| Post Reactions | Sum (Like, Love, Haha, Wow, Sad, Angry) |
| Cost Per Landing Page View | Ad Spend ÷ Landing Page Views |
| Conversion funnel | |
| View Content | Sum |
| Add to Cart | Sum |
| Checkouts Initiated | Sum |
| Add Payment Info | Sum |
| Searches | Sum (on-site search actions) |
| Cost Per View Content | Ad Spend ÷ View Content |
| Cost Per Add to Cart | Ad Spend ÷ Add to Cart |
| Cost Per Checkout Initiated | Ad Spend ÷ Checkouts Initiated |
| Cost Per Add Payment Info | Ad Spend ÷ Add Payment Info |
Common dimensions
Standard campaign hierarchy, time, account, and attribution dimensions — documented once on the Meta Ads Overview.Body Asset
Grain: one row perdate × ad × body_text.
Slice by:
| Dimension | Type | Description |
|---|---|---|
body_text | String | Full body copy text |
body_asset_id | String | Unique ID for the body text asset |
- Which messaging approach wins — benefit, feature, or urgency framing?
- Which copy gets clicks but no conversions? (clickbait detection)
- Does longer or shorter copy convert better per campaign objective?
Title Asset
Grain: one row perdate × ad × title_text.
Slice by:
| Dimension | Type | Description |
|---|---|---|
title_text | String | Headline text |
title_asset_id | String | Unique ID for the title asset |
ad_title | String | Ad title (from creative data) |
- Which headline patterns drive CTR — questions, numbers, urgency?
- What’s the right title length for each placement?
- Which titles convert vs. which just attract clicks?
Uses Channel Reported naming for revenue metrics.
Channel Reported ROAS here = ROAS everywhere else.Description Asset
Grain: one row perdate × ad × description_text.
Slice by:
| Dimension | Type | Description |
|---|---|---|
description_text | String | Description text content |
description_asset_id | String | Unique ID for the description asset |
- Do longer descriptions with more detail outperform shorter ones?
- Does benefit-focused or feature-focused framing convert better?
- How does description copy affect funnel conversion rates?
Image Asset
Grain: one row perdate × ad × image_hash.
Slice by:
| Dimension | Type | Description |
|---|---|---|
asset_id | String | Unique asset identifier |
image_hash | String | Content hash — tracks the same image across multiple ads |
image_asset_url | String | Image file URL |
image_asset_name | String | Image file name |
asset_type | String | IMAGE, CAROUSEL_IMAGE, STATIC_CARD |
- Which images perform best regardless of how they’re packaged? (use
image_hash) - Which image style wins — lifestyle, product-shot, or promotional?
- Where is creative fatigue setting in? (CTR decay by image over time)
Uses Channel Reported naming for revenue metrics.
image_hash is the key thing here — it tracks the same source image across multiple ads.Video Asset
Grain: one row perdate × ad × video_id.
Slice by:
| Dimension | Type | Description |
|---|---|---|
video_id | String | Video asset identifier |
video_url | String | Video file URL |
thumbnail_url | String | Video thumbnail URL |
- Which video creatives drive view-through and conversion?
- What’s the winning video length and style?
- Where does the View Content → Add to Cart funnel break for a given video?
Creative Asset
Grain: one row perdate × ad × asset_id.
Slice by:
| Dimension | Type | Description |
|---|---|---|
asset_id | String | Combined creative asset identifier |
image_asset_url | String | Image URL for the creative |
video_id | String | Video ID if the creative uses video |
- Which full creative packages win? (image + copy + headline + CTA + format as one unit)
- Which creative format scales best — single image, carousel, video, or collection?
- What combinations should be promoted to top performers across campaigns?
Channel-reported naming
Three asset breakdowns expose revenue metrics under a different name due to source-schema convention. Values are identical — only the field name differs.| Standard name (used in Body, Description, Creative) | Channel Reported name (used in Title, Image, Video) |
|---|---|
Conversion Value | Channel Reported Conversion Value |
ROAS | Channel Reported ROAS |
Conversions | Channel Reported Conversions |
AOV | Channel Reported AOV |
Raw fields (for custom calculations)
Raw fields (for custom calculations)
All asset breakdowns expose:
ad_spend · clicks · impressions · link_clicks · reported_orders · reported_revenue · landing_page_views · add_to_cart · checkouts_initiated · view_content · add_payment_info · post_engagement · page_engagement · post_reaction · searchesVideo Asset additionally exposes: video_views_total · cost_per_video_view