> ## 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.

# Platform & Device

> Meta Ads performance across Facebook, Instagram platforms, placements, and devices — the richest breakdown in Ocular for cross-channel ad analysis.

Cross-platform and device performance — for comparing Facebook, Instagram, Messenger, and Audience Network across placements and devices.

<Tip>
  This is the **richest** Meta Ads data model. It carries nearly every available metric, plus exclusives like **Reach**, **Frequency**, **Hook Rate**, **Hold Rate**, and per-funnel-step cost. Start here when you don't know which data model to pick.
</Tip>

## What this data model represents

**Grain:** one row per `date × ad_account × campaign × adset × ad × ad_platform × placement × impression_device`.

**Metrics, grouped by category** — every number you can compute on this data model. Expand below for examples in each.

```mermaid theme={null}
flowchart LR
    R1["Spend & revenue"]:::cat --- S
    R2["Clicks & impressions"]:::cat --- S
    R3["Cost efficiency"]:::cat --- S
    R4[Engagement]:::cat --- S

    S(["Metrics"]):::root

    S --- R5["Conversion funnel"]:::cat
    S --- R6[Video]:::cat
    S --- R7["Reach & frequency"]:::cat

    classDef root fill:#0f172a,color:#f8fafc,stroke:#0f172a,stroke-width:2px
    classDef cat fill:#2563eb,color:#fff,stroke:#1d4ed8,stroke-width:1.5px
```

<Accordion title="Show sample metrics in each category">
  ```mermaid theme={null}
  flowchart LR
    sr1[Ad Spend]:::leaf --- SR["Spend & revenue"]
    sr2[Conversion Value]:::leaf --- SR
    sr3[ROAS]:::leaf --- SR
    sr4[AOV]:::leaf --- SR

    ci1[Clicks All]:::leaf --- CI["Clicks & impressions"]
    ci2[Impressions]:::leaf --- CI
    ci3[CTR All]:::leaf --- CI

    ce1[CPC]:::leaf --- CE["Cost efficiency"]
    ce2[CPM]:::leaf --- CE
    ce3[CPA]:::leaf --- CE

    en1[Landing Page Views]:::leaf --- En[Engagement]
    en2[Post Engagement]:::leaf --- En

    SR:::cat --- S
    CI:::cat --- S
    CE:::cat --- S
    En:::cat --- S

    S(["Metrics"]):::root

    S --- CF["Conversion funnel"]:::cat
    S --- Vd[Video]:::cat
    S --- RF["Reach & frequency"]:::cat

    CF --- cf1[View Content]:::leaf
    CF --- cf2[Add to Cart]:::leaf
    CF --- cf3[Checkouts Initiated]:::leaf

    Vd --- v1[Video Plays]:::leaf
    Vd --- v2[Hook Rate]:::leaf
    Vd --- v3[Hold Rate]:::leaf

    RF --- rf1[Reach]:::leaf
    RF --- rf2[Frequency]:::leaf

    classDef root fill:#0f172a,color:#f8fafc,stroke:#0f172a,stroke-width:2px
    classDef cat fill:#2563eb,color:#fff,stroke:#1d4ed8,stroke-width:1.5px
    classDef leaf fill:#eff6ff,color:#1e3a8a,stroke:#bfdbfe,stroke-width:1px
  ```
</Accordion>

**Dimensions, grouped by category** — every way you can split, filter, or group those metrics. Expand below for examples in each.

```mermaid theme={null}
flowchart LR
    D1["Platform & device"]:::cat --- M
    D2["Campaign hierarchy"]:::cat --- M

    M(["Dimensions"]):::root

    M --- D3[Time]:::cat
    M --- D4["Account & creative"]:::cat
    M --- D5[Attribution]:::cat

    classDef root fill:#0f172a,color:#f8fafc,stroke:#0f172a,stroke-width:2px
    classDef cat fill:#9333ea,color:#fff,stroke:#7e22ce,stroke-width:1.5px
```

<Accordion title="Show sample dimensions in each category">
  ```mermaid theme={null}
  flowchart LR
    pd1[ad_platform]:::leaf --- PD["Platform & device"]
    pd2[placement]:::leaf --- PD
    pd3[impression_device]:::leaf --- PD

    ch1[campaign_id]:::leaf --- CH["Campaign hierarchy"]
    ch2[adset_id]:::leaf --- CH
    ch3[ad_id]:::leaf --- CH

    PD:::cat --- M
    CH:::cat --- M

    M(["Dimensions"]):::root

    M --- Ti[Time]:::cat
    M --- AC["Account & creative"]:::cat
    M --- At[Attribution]:::cat

    Ti --- t1[date]:::leaf
    Ti --- t2[week_start_date]:::leaf

    AC --- ac1[ad_account_id]:::leaf
    AC --- ac2[creative_id]:::leaf
    AC --- ac3[ad_type]:::leaf

    At --- at1[attribution_window]:::leaf

    classDef root fill:#0f172a,color:#f8fafc,stroke:#0f172a,stroke-width:2px
    classDef cat fill:#9333ea,color:#fff,stroke:#7e22ce,stroke-width:1.5px
    classDef leaf fill:#faf5ff,color:#581c87,stroke:#e9d5ff,stroke-width:1px
  ```
</Accordion>

**Source:** Meta Ads API, daily refresh.

## Slice by

Unique to this data model:

| Dimension           | Type   | Values                                                                                                       |
| ------------------- | ------ | ------------------------------------------------------------------------------------------------------------ |
| `ad_platform`       | String | `Facebook`, `Instagram`, `Messenger`, `Audience Network`                                                     |
| `placement`         | String | `Feed`, `Stories`, `Reels`, `Right Column`, `In-Stream`, `Search Results`, `Marketplace`, `Instant Articles` |
| `impression_device` | String | `Mobile`, `Desktop`, `Tablet`, `Other`                                                                       |

Plus the standard campaign hierarchy, time, account, and attribution dimensions — documented once on the [Meta Ads Overview](/data-models/meta-ads/overview).

<Note>
  Querying all three slice-by dimensions at once is highly granular and can produce sparse rows. Start with one or two and add the third only when you need that level of detail.
</Note>

## Use it to answer

* How does ROAS compare across Facebook vs. Instagram vs. Messenger vs. Audience Network?
* Which placement × device combinations are winning, and which are losing money?
* Does creative format need to change by platform? (vertical for Reels, square for Feed)
* How do Hook Rate and Hold Rate vary by platform to inform video strategy?

## Available metrics

Everything you can compute on this data model. Need a metric not listed? See the [Meta Ads metric availability matrix](/data-models/meta-ads/overview#metric-availability-matrix).

| Metric                          | Formula                                      |
| ------------------------------- | -------------------------------------------- |
| **Spend & revenue**             |                                              |
| Ad Spend                        | Sum of daily spend                           |
| Conversion Value                | Sum of reported revenue                      |
| 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                   |
| Outbound Clicks                 | Sum of clicks leading off Meta               |
| Inline Clicks                   | Sum of on-platform engagement clicks         |
| Unique Clicks                   | Avg of deduplicated user clicks              |
| 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 Outbound Click         | Ad Spend ÷ Outbound Clicks                   |
| Cost Per Link Click             | Ad Spend ÷ Link Clicks                       |
| Revenue Per Link Click          | Conversion Value ÷ Outbound Clicks           |
| **Engagement**                  |                                              |
| Landing Page Views              | Sum                                          |
| Post Engagement                 | Sum (reactions + comments + shares + clicks) |
| Inline Post Engagement          | Sum (on-platform-only)                       |
| Page Engagement                 | Sum (Facebook Page likes, follows)           |
| Post Reactions                  | Sum (Like, Love, Haha, Wow, Sad, Angry)      |
| Post Shares                     | Sum                                          |
| Cost Per Post Engagement        | Ad Spend ÷ Post Engagements                  |
| Cost Per Inline Post Engagement | Ad Spend ÷ Inline Post Engagements           |
| Cost Per Page Engagement        | Ad Spend ÷ Page Engagements                  |
| 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                                          |
| 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                  |
| **Video**                       |                                              |
| Video Plays                     | Sum                                          |
| Video 25% Watched               | Sum                                          |
| Video 50% Watched               | Sum                                          |
| Video 75% Watched               | Sum                                          |
| Video 100% Watched              | Sum                                          |
| Cost Per Video Play             | Ad Spend ÷ Video Plays                       |
| Hook Rate                       | Video Plays ÷ Impressions × 100              |
| Hold Rate                       | Video 100% ÷ Video Plays × 100               |
| **Reach & frequency**           |                                              |
| Reach                           | Sum of unique people who saw ads             |
| Frequency                       | Impressions ÷ Reach                          |

<Tip>
  **Hook Rate** and **Hold Rate** are exclusive to this data model. If you need them at audience or creative level, derive from raw fields (`video_play_actions`, `video_views_pct_100`).
</Tip>

<Accordion title="Raw fields (for custom calculations)">
  This data model exposes a near-complete raw field set (one of the richest, alongside Age & Gender):

  `ad_spend` · `clicks` · `impressions` · `reported_orders` · `reported_revenue` · `unique_clicks` · `inline_clicks` · `inline_post_engagement` · `outbound_clicks` · `landing_page_views` · `add_to_cart` · `checkouts_initiated` · `view_content` · `post_engagement` · `page_engagement` · `post_reaction` · `add_payment_info` · `post_share` · `video_play_actions` · `video_view_avg_time` · `video_views_pct_25` · `video_views_pct_50` · `video_views_pct_75` · `video_views_pct_100`
</Accordion>
