# Configure and track spending and ROI

Configure internal and third-party demand sources, set the budget layers and content mix, and track revenue, margin, and ROI for brands, agencies, and partners.

Monetization only scales when spending is controlled and performance is measurable. You decide where spending comes from and where budget flows, then report the return to the brands, agencies, and partners that invest in your network.

This applies to Retail Media Networks (RMN), Commerce Media Networks (CMN), enterprise brands, and agencies operating within Genuin. For how revenue reaches your network, see [Monetize: what it does and where to start](https://begenuin.com/developers/browse-by-products/monetize/monetize-what-it-does-and-where-to-start).

## Configure spending sources

Spending enters your network from two sources: internal brand profiles, directly through Genuin infrastructure, and third-party ad servers or programmatic partners. The difference matters for compliance and margin control.

### Internal sponsored posts

Sponsored posts from internal brand profiles are served through Genuin infrastructure. They're fully context-aligned, offer higher transparency, and don't require ads.txt or sellers.json.

Use them for category sponsorships, highlight placements, subscription-based access, and direct brand partnerships. Learn more about [creating a paid partnership](https://begenuin.com/developers/browse-by-products/monetize/how-do-i-create-a-sponsorship-campaign-in-the-business-account).

A partnered post or takeover shows on a placement or embed only when it's assigned to an active preset in **Settings** > **Ad Configuration**. In that preset, **Partnered Post** (under **In-Feed**) has to be ON for partnered posts, and **Partnered Takeover** for takeovers.

![The Configuration page for a placement named Demo - Highlights - Placements w/section, with Feed Type set to Community Feed, Placement layout set to Dynamic, Environment set to Web, and Placement Size 300 by 600.](https://cdn.sanity.io/images/lnrtvsvr/development/4949d5c77d2ca0626b5248bbe4826ad3f01645b5-1860x911.jpg)
*A Highlights placement in your Business Account with its feed type, layout, and size.*

### Third-party ad servers and programmatic partners

External demand has its own requirements and options:

- It requires an ads.txt update and a sellers.json configuration.
- It supports DealID activation.
- It supports the 300×250 and 300×600 formats.
- It enables audio on desktop and mobile web.
- It integrates with partners such as PubMatic, Magnite, and Index Exchange.

Use it for In-Stream (pre-roll, mid-roll, and post-roll), In-Feed vertical video ads, session takeovers, and PG/PMP audience extension. Learn how to [set up programmatic ads](https://begenuin.com/developers/browse-by-products/monetize/how-do-we-set-up-programmatic-ads-to-generate-automated-ad-revenue) and how [Partner Ad Server Integration](https://begenuin.com/developers/browse-by-products/monetize/partner-ad-server-integration) works.

![A placement's Configuration page with context options checked, including User Segmentation, Product Detail Page (PDP) URL, Custom Context, Brand ID, and User Interests, above the Update & Generate Placement Code button.](https://cdn.sanity.io/images/lnrtvsvr/development/67622881eab421478b75d9ba3ba919ab73241bb2-1857x913.jpg)
*The context signals a placement passes on, set before you generate its code.*

### Ad servers in Demand Settings

Third-party ad servers are set up in the **Demand Settings** drawer under **Settings** > **Ad Configuration**. Three types are supported:

| Ad server | More than one allowed | How you add it |
| --- | --- | --- |
| Google Ad Manager (GAM) | Yes | Connect a Google account with Connect Your Account, or enter an account name and a VAST or VMAP link |
| Pangle | Yes | An account name, an App ID, and up to 5 slot configuration rows |
| Header Bidding | No, each server once | Pick from 300+ ad servers; InfyTV is the default server |

- All Header Bidding servers share one traffic rate, and each GAM and Pangle server has its own. Traffic rate is required and can't exceed 100%.
- Header Bidding is the default ad server at first. A new default applies only to presets you create afterward.
- You can't delete an ad server that a preset uses, or the default ad server.

## Define a budget allocation strategy

Layer revenue from the most premium source down: premium sponsorship, then programmatic In-Stream, In-Feed vertical ads, Extended O&O, and finally PG/PMP audience extension.

| Inventory type | Budget type | Why |
| --- | --- | --- |
| Takeovers / SOV | Fixed Premium | High-margin, controlled |
| In-Stream | Performance | Scalable fill |
| In-Feed | Awareness | High engagement |
| Extended O&O | Incremental | Net-new reach |
| PG/PMP | Enterprise | Higher CPM, guaranteed deals |

This structure protects premium inventory while it maximizes fill.

Within a preset, the **In-Feed** section sets the order of **Partnered Post**, **Video Ads**, and **House (Fallback Content)**. Drag the rows to set priority. **House** is always ON and fills the slot when no other ad is available.

When several paid partnerships are live on one placement or embed, a takeover shows first if **Partnered Takeover** is ON in the preset. Within the same type, the higher CPM shows first.

## Set the frequency and content mix

Avoid oversaturating your feed. We recommend this mix because it preserves user engagement and increases completion rates.

| Content type | Recommended mix |
| --- | --- |
| Organic / Owned | 50–60% |
| Partner Sponsored | 20–30% |
| Programmatic Ads | 10–20% |

To set how often ads appear in a feed, see [Configure vertical video ad placements and frequency](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-configure-vertical-video-ad-placements-and-frequency).

In a preset, the **In-Feed** **Start Slot** and **Repeat Frequency** each range from 1 to 10 and default to 2. They count content cards and In-Stream cards, not In-Feed ad cards. **In-Stream** **Start Content Video** and **Repeat Frequency** also range from 1 to 10 with a default of 2, and count content cards only.

Four system presets give you ready-made mixes. Their ad settings are read-only, but you can assign placements and embeds to them:

| Preset | Description |
| --- | --- |
| Premium | Premium experience with only direct sourced paid partnerships. |
| Balanced | Optimized to avoid back-to-back ad fatigue. |
| Conservative | Keeps video content pure. Ads only appear while scrolling. |
| Aggressive | Maximizes revenue. Warning: Generates back-to-back ads. |

## Track ROI in reporting

Go to **Monetize** > **Programmatic** to track performance across:

- Supply: where ads appear
- Demand: who is paying
- Placement type
- Category
- Format
- Date range
- Revenue totals versus ratios
  ![The Programmatic Dashboard on the AdServer tab, with Demand, Supply, and Reports in the side menu, Last 30 Days selected, a Video filter, and Inventory, Impression, Revenue, CPM, CTR, and Completion Rate tiles.](https://cdn.sanity.io/images/lnrtvsvr/development/1110792398825c78dd6f88699f441d5695cb8f2a-1871x910.jpg)
  *The Programmatic dashboard filters by date range and format, with Demand, Supply, and Reports views in its menu.*

| Metric | What it tells you |
| --- | --- |
| Impressions | Scale of exposure |
| CPM | Revenue efficiency |
| Completion Rate | Engagement quality |
| CTR | Intent strength |
| Revenue | Direct earnings |
| Fill Rate | How much inventory is filled |

Learn more about [Track programmatic ad performance](https://begenuin.com/developers/browse-by-products/monetize/what-analytics-are-available-for-programmatic-advertising-on-genuin).

## Track ROI by stakeholder type

ROI expectations differ depending on who's investing.

| Stakeholder | Track | Objective |
| --- | --- | --- |
| RMN / CMN | Total brand spend flowing through placements, premium versus programmatic split, incremental revenue from Extended O&O, and margin uplift from audience extension | Capture more brand budget in premium, contextual environments. |
| Enterprise brands | Awareness lift (impressions and completion), engagement rates, direct shoppable link-outs, and category-level performance | Drive discovery in trusted, brand-aligned environments. |
| Agencies | DealID performance, PG/PMP efficiency, completion versus industry benchmarks, and cross-property reach | Demonstrate efficient spend versus open-web alternatives. |

## Set up attribution

ROI requires tracking engagement beyond impressions. Add structured link parameters to your link-outs where they apply. For example:

```text
https://brand.com/offer?source=genuin&utm_campaign=category_sponsorship
```

The parameters enable campaign-level attribution, placement-level performance, and category-based reporting. The attribution flow runs from scroll to engage, click, and convert. To manage the link-outs themselves, see [Manage and block video linkouts](https://begenuin.com/developers/browse-by-products/control/how-to-mentrally-manage-and-control-all-video-linkouts-in-brand-ecosystem).

## Measure incremental lift

To demonstrate ROI clearly, compare baseline performance with activated performance. For example:

| Activation | Incremental reach | Completion | Revenue impact |
| --- | --- | --- | --- |
| Category SOV | +28% | 65%+ | Premium CPM |
| Extended O&O | +350K | 5.2% CTR | Net-new margin |
| Subscription Highlight | Recurring visibility | 12% engagement | Recurring revenue |

## Position logged-in inventory

When you deploy in logged-in environments, users are verified, content is contextual, and engagement is intent-based. This lets you position your inventory as OTT-quality video, OLV premium supply, and a multimedia or rich media environment.

Higher trust leads to a higher CPM, and a higher CPM to a higher ROI.

## Check compliance

| Requirement | Needed |
| --- | --- |
| ads.txt update | Yes (third-party only) |
| sellers.json configuration | Yes (third-party only) |
| DealID setup | If PG/PMP |
| Internal sponsored post | No ads.txt required |

Learn how to [set up ads.txt and sellers.json](https://begenuin.com/developers/get-started/any-business/set-up-ads-txt-and-sellers-json).

## Keep spending balanced

- Protect premium placements first.
- Use programmatic as fill, not replacement.
- Extend inventory only after onsite optimization.
- Monitor category performance weekly.
- Rebalance budget toward the categories with the highest completion and CPM.
- Maintain contextual integrity, because relevance drives ROI.

With these in place, spending becomes predictable, ROI becomes measurable, and monetization becomes scalable.

## See also

- [Network Reporting](https://begenuin.com/developers/browse-by-products/network/network-reporting)
- [Show ROI and attribution for subscriptions](https://begenuin.com/developers/browse-by-products/network/how-can-i-showcase-roi-and-attribution-for-those-subscriptions)
- [Track the outcomes of subscription and media investments](https://begenuin.com/developers/browse-by-products/network/how-do-my-customers-track-the-outcomes-of-their-subscription-and-media-investments)
- [Set up ads.txt and sellers.json](https://begenuin.com/developers/get-started/any-business/set-up-ads-txt-and-sellers-json)
