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

# Product

> Meta Ads performance broken down by product SKU in Ocular — for catalog ad tuning, dynamic product ad optimization, and SKU-level ROAS analysis.

SKU-level performance — which products are paying back, which are losing money in the catalog, and where the funnel breaks per SKU.

<Note>
  Populated for **catalog-based campaigns** (Dynamic Product Ads, Advantage+ Catalog, Collection Ads with a product feed). Non-catalog campaigns won't appear here — they live in the other data models.
</Note>

## What this data model represents

**Grain:** one row per `date × ad_account × campaign × adset × ad × product_id`.

**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

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

    S --- R3["Cost efficiency"]:::cat
    S --- R4[Engagement]:::cat
    S --- R5["Conversion funnel"]:::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

    SR:::cat --- S
    CI:::cat --- S

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

    S --- CE["Cost efficiency"]:::cat
    S --- En[Engagement]:::cat
    S --- CF["Conversion funnel"]:::cat

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

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

    CF --- cf1[View Content]:::leaf
    CF --- cf2[Add to Cart]:::leaf
    CF --- cf3[Checkouts Initiated]:::leaf
    CF --- cf4[Add Payment Info]:::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[Product]:::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
    p1[product_id]:::leaf --- Pr[Product]

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

    Pr:::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   | Example values            |
| ------------ | ------ | ------------------------- |
| `product_id` | String | `SKU-12345`, `PROD-67890` |

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

## Use it to answer

* Which products have the highest ROAS — where should I increase promotion?
* Which products get clicks but don't convert — pricing or landing page issue?
* Which products have CPA higher than their margin — candidates to exclude from the catalog?
* What does the **View Content → Add to Cart → Checkout → Purchase** funnel look like per SKU?

## 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         |
| **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                   |
| Revenue Per Link Click          | Conversion Value ÷ Outbound Clicks           |
| **Engagement**                  |                                              |
| Landing Page Views              | Sum                                          |
| Post Engagement                 | Sum (reactions + comments + shares + clicks) |
| Post Shares                     | Sum                                          |
| Cost Per Post Engagement        | Ad Spend ÷ Post Engagements                  |
| Cost Per Inline Post Engagement | Ad Spend ÷ Inline Post Engagements           |
| **Conversion funnel**           |                                              |
| View Content                    | Sum                                          |
| Add to Cart                     | Sum                                          |
| Checkouts Initiated             | Sum                                          |
| Add Payment Info                | Sum                                          |

<Tip>
  Only data model with **SKU-level AOV and the full funnel through Add Payment Info**. Pair `CPA` with your per-product margin to find SKUs where Meta spend is unprofitable — the highest-leverage catalog cleanup move.
</Tip>

<Accordion title="Raw fields (for custom calculations)">
  This data model exposes:

  `ad_spend` · `clicks` · `impressions` · `reported_orders` · `reported_revenue` · `inline_clicks` · `outbound_clicks` · `landing_page_views` · `add_to_cart` · `checkouts_initiated` · `view_content` · `add_payment_info` · `post_engagement` · `post_share`
</Accordion>
