> For the complete documentation index, see [llms.txt](https://help.citrusad.com/retail-media-interface/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.citrusad.com/retail-media-interface/integration/feature-integrations/integrating-parent-products.md).

# Integrating Parent Products

<figure><img src="/files/rglO2nCfdGZ12dC5dloW" alt="" width="100%"><figcaption></figcaption></figure>

## What is a child product?

Some products have parent/child relationships. There is a parent product, and then multiple variations are the child products. Advertisers want to optimize campaigns at a child product level to ensure they are promoting the most relevant and best performing products to customers.

<figure><img src="/files/zduPXmQBYs3X2Sm006P3" alt="" width="100%"><figcaption></figcaption></figure>

Other products will not have these relationships, and therefore will see no change or impact in the platform.

## UI capabilities

### Product selection

When selecting products, parent/child products will be grouped.

<figure><img src="/files/yrp9metZPYCWh4STlTlB" alt="" width="100%"><figcaption></figcaption></figure>

You can click a parent product and it will expand to show child products. This will allow your advertisers to optimize to a unique child product level in the campaign.

### Reporting

<figure><img src="/files/cDDne8UhQ1BAtrbV0ZSH" alt="" width="100%"><figcaption></figcaption></figure>

In-platform reporting will automatically group by parent product when a product has a `productCollection` associated with it.

In CSV exports from the platform, for product codes there is a new "Parent Code" column, which will populate the `productCollection` value.

If filtering by product code in the UI, then the parent product metrics are blank, and the parent product can be clicked to show reporting for any child products.

## Integration requirements

### Updating products

When you synchronise products with Epsilon Retail Media, there is a new `productCollection` field in the POST request for your products.

```http
POST $BASE_URL/v1/catalog-products?teamId=<YOUR_TEAM_ID> HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "catalogProducts": [
        {
            "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
            "gtin": "23556578965543",
            "productCollection": "abc-123",
            "inventory": 50,
            "price": "19.99",
            "tags": [
                 "imageurl:https://your.image.host.com/image.jpg","name:Covergirl Clean 120 Creamy Natural Liquid Foundation30mL"
            ],
            "filters": [
                 "category:Health&Beauty","category:Grocery","Brand:Covergirl","Special_Flag:0"
            ]
        }
    ]
```

When this field is present, the product selection and reporting tables will aggregate at the product collection level for all products that have the same `productCollection`.

If you are synchronising by file, there is a `product_collection` column that you can optionally populate per product.

### Ad rendering

There are no changes needed when rendering ads from Epsilon Retail Media. The `gtin` you receive in the API response will be that of the "child" product, and you will need to render that on your website to your customers.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.citrusad.com/retail-media-interface/integration/feature-integrations/integrating-parent-products.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
