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

# Hourly Audience

> Meta Ads performance by hour of day and day of week in Ocular — for dayparting analysis, ad scheduling decisions, and time-based bid adjustments.

Dayparting analysis — which hours of which days are working for your spend, and when to pull back.

<Warning>
  This is the **only** Meta Ads data model that does **not** expose revenue metrics (Conversion Value, ROAS, AOV). It tracks order count and engagement, not revenue. If you need revenue at hourly granularity, use [Platform & Device](/data-models/meta-ads/platform-and-device) with a time filter.
</Warning>

## What this data model represents

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

**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 & conversions"]:::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
    sc1[Ad Spend]:::leaf --- SC["Spend & conversions"]
    sc2[Conversions]:::leaf --- SC

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

    SC:::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[Engagement Rate]:::leaf

    CF --- cf1[View Content]:::leaf
    CF --- cf2[Add to Cart]:::leaf
    CF --- cf3[Checkouts Initiated]:::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[Daypart]:::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
    dp1[audience_hour]:::leaf --- Dp[Daypart]
    dp2[day_of_week]:::leaf --- Dp

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

    Dp:::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

    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                                              |
| --------------- | ------- | --------------------------------------------------- |
| `audience_hour` | Integer | `0` (midnight–1am) … `23` (11pm–midnight)           |
| `day_of_week`   | String  | Derived from date — `Monday`, `Tuesday`, … `Sunday` |

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

* Where are peak conversion hours vs. peak spend hours — and what's the inefficiency?
* Which hours should I pause? Which should I bid up?
* How do hour × day-of-week patterns differ between weekdays and weekends?
* What time of day has the highest engagement for awareness campaigns?

## 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 & conversions**         |                                      |
| Ad Spend                        | Sum of daily spend                   |
| Conversions                     | Sum of reported orders               |
| **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           |
| **Engagement**                  |                                      |
| Landing Page Views              | Sum                                  |
| Post Shares                     | Sum                                  |
| Engagement Rate                 | Post Engagement ÷ Impressions × 100  |
| 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                                  |

<Tip>
  **Engagement Rate** as a precomputed metric lives only here. In other data models you'd have to compute it from raw Post Engagement and Impressions.
</Tip>

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

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