# Create a placement and map it to the shopper journey

Build a contextual feed placement in your Business Account, map its style to stages of the shopper journey, configure the feed, and copy its code.

Contextual feed placements, or placements, are curated, personalized video feeds that you embed in specific areas of your website or mobile app. Each time a page loads, Genuin picks a placement's videos from the viewer's behavior, your product categories, the page context, and your brand taxonomy.

An embed shows a community or group you pick; a placement shows what fits the context. The aim is [contextual continuity](https://begenuin.com/developers/browse-by-products/onsite/contextual-continuity): video discovery that carries across the whole shopper journey.

A placement can mix member, creator, and brand videos, carry link-outs to product pages, and render as a feed, carousel, or grid. Placements are part of Onsite. For the whole product, see [Onsite: what it does and where to start](https://begenuin.com/developers/browse-by-products/onsite/onsite-what-it-does-and-where-to-start).

## Open Placements

Go to **Grow** > **On Site** > **Placement**. The left panel lists your placements with their style count and layout.

**Global Analytics** at the top shows unique users, placement impressions, video impressions, video watch duration, and video completion rate for a period you choose.

A placement ranks videos that already sit in the communities and groups you run, including partner brands' content shared through Network. Learn more about [displaying partner brand content in embeds and placements](https://begenuin.com/developers/browse-by-products/network/how-do-i-display-partner-brands-content-in-embeds-and-placement).

To start, click the **+** button above the list.

![Grow > On Site > Placement with the + button highlighted above the Placements list, which shows Global Analytics and an Untitled Placement, beside analytics tiles filtered to Last week.](https://cdn.sanity.io/images/lnrtvsvr/development/73dda6a3e9fdebaa1fbf2546508831036c599389-1873x910.jpg)
*The + button above the list starts a new placement.*

## Define a style

A style is the content side of a placement: what it's about and which videos qualify. A placement can hold more than one style, and Genuin renders the one that has content available.

### Name the style and add sections

1. Enter a **Title** of up to 50 characters, such as "Homepage Discovery" or "PDP Product Reviews".
2. Select **Add Subtitle** to show a subtitle above the feed.
3. Click **+ Add Section** for each block of the feed, and enter a **Section Title** of up to 20 characters and an optional subtitle.
4. Tie each section to the categories, topics, or keywords that decide which videos appear, such as skincare tutorials, product reviews, or brand campaigns.
5. Enter a **Meta Description** of up to 5,000 characters that describes the videos you want, to improve curation accuracy.

A style holds up to 10 sections. With no sections, the whole style is one feed. Sections use the categories and topics set under **Settings**; learn more about [brand categories and topics](https://begenuin.com/developers/get-started/business-account/how-do-i-set-up-brand-categories-and-topics).

### Map the style to the shopper journey

Under **Style Personalization**, open **Map to Consumer Journey** and choose the stages the placement serves. You can choose more than one.

| Stage | Purpose |
| --- | --- |
| Pre-Purchase on PDP | Inspire product discovery |
| At Purchase Checkout | Reinforce confidence |
| Post-Purchase Thank You | Drive loyalty |
| Re-Engagement & Loyalty | Encourage return visits |

![Placement > Style with a Title at 7 of 50 characters, + Add Section, and the Map to Consumer Journey menu open with four stages ticked and the field showing +4 more.](https://cdn.sanity.io/images/lnrtvsvr/development/53f93e2addebea22ef2f3c8dbb6fa70488f27b0c-1877x909.jpg)
*Journey stages are a multi-select; the field shows the first stage and a count.*

### Set content rules

The toggles under **Style Personalization** narrow which videos the placement can show. The two toggles under **Content Mapping** stop repeats.

| Setting | What it does |
| --- | --- |
| Allow Pinned Videos Only | Shows only the videos you pinned, to highlight priority content |
| Allow Same URL Linkout Videos Only | Shows only videos whose link-out points at the page's URL, so a product page shows videos linked to that product |
| Allow Same Brand's Videos Only | Shows only the current brand's videos and keeps partner content out |
| Videos from Recommendation Engine Only | Takes videos from your own recommendation system |
| Map Unique Videos to Sections in Style | Stops a video from appearing in two sections |
| Map Unique Linkout Videos Only | Keeps one video per link |

![Placement > Style with Style Personalization toggles, Allow Same URL Linkout Videos Only on and the other two off, and both Content Mapping toggles off.](https://cdn.sanity.io/images/lnrtvsvr/development/8dd2b6b4cdc3ba0feb56bc58e74e1d1eea626a67-1871x909.jpg)
*Each toggle narrows what the placement can show; here only same-URL link-out videos qualify.*

Click **Next** to save the style. Genuin generates a **Style ID**, shown beside the style title with a copy button. The placement code uses it.

### Add variables (Optional)

To make a style generative, type `@` in a title or description and pick a variable, such as `@product`. Your page supplies the value at load time, so one placement serves every product page.

Variable names take up to 25 characters, and a field holds one variable and nothing else. Variables work only when the placement has exactly one style.

Business Account calls a style with variables a dynamic style, and a style without them a static style. A dynamic style holds one section. If you use a variable in a style with more sections, Business Account shows an error when you save.

## Configure the placement

1. Enter a **Placement Name**.
2. Choose the **Feed Type**: **Brand Feed**, **Community Feed**, or **Group Feed**.
3. Choose the **Placement layout**: **Carousel**, **Feed**, **Grid**, or **Dynamic**.
4. Set the **Environment**: **Global** for every surface, or a specific environment such as web or a mobile app.
5. Select **Mark as Active** when the placement is ready to serve.
   ![Placement > Style > Configuration with the Feed Type menu open on Brand Feed, Community Feed, and Group Feed, Placement layout set to Grid, Environment set to Global, and Placement Size at 400 by 600.](https://cdn.sanity.io/images/lnrtvsvr/development/68b38cbafd9344c6ce8f157ab69270ba2c920367-1862x911.jpg)
   *Step 5: Feed Type, Placement layout, and Environment sit above the Configure View, Expand View, and Implementation Guide tabs.*

| Feed type | Draws from | Purpose |
| --- | --- | --- |
| Brand Feed | The brands you select, including partners | Content produced by the brand |
| Community Feed | The communities you choose | A mix of brand and member videos |
| Group Feed | The groups you choose | Videos on a specific topic |

| Layout | Experience | Best for |
| --- | --- | --- |
| Feed | Vertical scroll | Immersive discovery |
| Carousel | Horizontal scroll | Home page or PDP modules |
| Grid | Categorized content blocks | Topic-based browsing |

**Standard Wall** appears in the layout list but isn't available.

### Set the view

1. On **Configure View**, set **Show Style Details** and the title colors.
2. Under **Placement Settings**, set the **Placement Size**. By default, it's 400×600 pixels.
3. Set the **Grid layout** rows and columns, up to 3×3.
4. Select **Adaptive Video Display** to fit videos to the screen, or keep the fixed 9:16 **Video Cell Aspect Ratio**.
5. Choose **Free Scroll** or **Single Video Swipe**.
6. Under **Media Play**, select **Autoplay Video** to start videos without a tap.
7. Set **Auto-Advance Playback** to the full video or 3, 5, or 7 seconds, and set **Loop Video**.
8. Choose the details on each cell: duration, social counts, link-outs, and the components shown on top, at the bottom, and outside the frame.

**Free Scroll** and **Single Video Swipe** appear only for the **Feed** layout, under **Feed Scrolling Behavior**. Free Scroll lets viewers scroll freely through cards. Single Video Swipe moves one card at a time with a swipe up or down.

**Auto-Advance Playback** waits 3 seconds by default. **Loop Video** replays the first video until another video plays.

In **Grid layout**, only one of **Row** or **Column** can be set to **Auto** at a time.

### Set the expanded view and context signals

1. On **Expand View**, choose which engagement icons, redirections, and link-outs the full-screen view shows. Reporting is always on.
2. On **Implementation Guide**, select the context signals your page sends.
3. Click **Save**. Genuin generates an embed code or an SDK placement ID.

Link-out buttons send viewers to product pages, and redirection takes them to deeper content. Learn more about [overlay and playback settings](https://begenuin.com/developers/browse-by-products/onsite/how-can-brands-manage-overlay-components-and-controls-for-embedded-content).

On **Expand View**, each engagement icon has its own toggle. **Enable Redirection** lets viewers go to community, group, or user profile pages.

Viewers who report a video pick a reason: **Inappropriate Content**, **Non-Professional Content**, **Spam**, **Threatening/Violent**, or **Other**.

The page signals are **Style ID**, **Location**, **Place**, **Time**, **Product Detail Page (PDP) URL**, **Custom Context**, and **Previous Page Context**. The audience signals are **User Segmentation**, **User Interests**, **Posted By User**, **Brand ID**, and **Community & Group ID**.

**On-Page Context Gathering by Crawler** and **Real-time context gathering** let Genuin read the page itself. Each signal you select adds a parameter to the generated code.

The **Implementation Guide** tab is mainly for styles that use variables. It shows how to use the **@** syntax, so the placement renders the right content for each context at runtime.

## Copy the code

Open the placement's code. The **Web** tab gives an HTML snippet: a `div` sized to the placement, the SDK script, and a `window.genuin.init` call.

The call carries the `style_id`, `placement_id`, and your `api_key`, which is on your brand profile. It also carries a `contextual_params` object with a placeholder for each signal you selected, such as `page_context`. Replace the placeholders with values from your page, and the feed loads.

The **iOS**, **Android**, **React Native**, **Flutter**, and **Angular** tabs give the equivalent code for each SDK.

For the parameters and their formats, see [Deliver contextual feeds with page, user, and location context](https://begenuin.com/developers/developer-resources/sdk/contextual-embeds-how-they-work-and-how-to-configure-them). For framework examples, see [Add a Genuin placement to your website](https://begenuin.com/developers/developer-resources/sdk/how-do-you-configure-the-genuin-web-sdk-placement-on-your-website).

## Choose where to put placements

| Page | Recommended layout | Use cases |
| --- | --- | --- |
| Home page | Carousel or grid | Trending content, seasonal campaigns, creator highlights |
| Category page | Feed or carousel | Product reviews, tutorials, trending items |
| Product detail page (PDP) | Carousel or vertical feed | Product demonstrations, real customer reactions, unboxing videos |
| Discovery page | Full vertical feed | Creator discovery, themed video collections |
| Mobile app navigation tab | Full-screen vertical feed | Daily video discovery, creator communities |

The home page introduces viewers to your brand's content. Category pages help them explore products by topic or brand, and the PDP is where buying decisions happen.

![A full-screen vertical video feed on a mobile app's Home tab, with spark, comment, and share buttons, community and group chips, and Home, Explore, +, Manage, and You in the bottom navigation.](https://cdn.sanity.io/images/lnrtvsvr/development/edaca73daf8eadce7293031ae9c4985e4dcd562d-922x2048.jpg)
*A standalone feed can run as its own tab in a mobile app.*

Match the journey stage and content rules to the page:

| Page | Journey stage | Rule to switch on |
| --- | --- | --- |
| Product detail page | Pre-Purchase on PDP | Allow Same URL Linkout Videos Only, with the PDP URL signal |
| Category page | Pre-Purchase on PDP | Sections tied to the category |
| Checkout | At Purchase Checkout | Allow Same Brand's Videos Only |
| Order confirmation | Post-Purchase Thank You | Pinned videos for onboarding or care |
| Home page or app tab | Re-Engagement & Loyalty | None; let context and interests rank |

For a walkthrough by page type, see [Onsite: contextual placements across homepage, category, and product pages](https://begenuin.com/developers/get-started/any-business/onsite-contextual-placements-across-homepage-category-and-product-pages).

You can also monetize placement content through ads or affiliate links. Learn more about [Genuin Network Revenue Share](https://begenuin.com/developers/browse-by-products/monetize/genuin-network-revenue-share) and [Affiliate Commerce](https://begenuin.com/developers/browse-by-products/monetize/affiliate-commerce).

## Limitations

- **Text limits.** Style titles take up to 50 characters, section titles up to 20, and meta descriptions up to 5,000.
- **Up to 10 sections per style.** With no sections, the whole style is one feed.
- **Grids go up to 3×3.** Set rows and columns under **Grid layout**.
- **Variables need a single style.** Names take up to 25 characters, and a field holds one variable. For example, `@product` in a title lets one placement serve every product page.
- **Video cells are 9:16** unless **Adaptive Video Display** is on.
- **Four layouts are available.** Carousel, Feed, Grid, and Dynamic work; Standard Wall doesn't.

## See also

- [Contextual Continuity](https://begenuin.com/developers/browse-by-products/onsite/contextual-continuity)
- [Deliver contextual feeds with page, user, and location context](https://begenuin.com/developers/developer-resources/sdk/contextual-embeds-how-they-work-and-how-to-configure-them)
- [Build a placement with styles, sections, and variables](https://begenuin.com/developers/browse-by-products/onsite/how-a-brand-can-get-started-with-placements-in-business-account)
- [Control what viewers see and can do on embedded videos](https://begenuin.com/developers/browse-by-products/onsite/how-can-brands-manage-overlay-components-and-controls-for-embedded-content)
- [Add a Genuin placement to your website](https://begenuin.com/developers/developer-resources/sdk/how-do-you-configure-the-genuin-web-sdk-placement-on-your-website)
