> 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/cs/brand-pages/brand-page-retailer-integration-guide/brand-page-apis.md).

# API pro Brand Page

## Směrování URL

Když uživatel přejde na URL stránky značky, vaše aplikace extrahuje `urlSlug` z cesty a odešle ji do API pro obsluhu reklam.

Struktura URL: `<https://{your-domain}/{prefix}/{urlSlug}>`

| Segment       | Zdroj                                                     | Příklad            |
| ------------- | --------------------------------------------------------- | ------------------ |
| `your-domain` | Váš web                                                   | `www.retailer.com` |
| `prefix`      | Nakonfigurováno během onboardingu (např. značky, stránky) | `brands`           |
| `urlSlug`     | Extrahováno za běhu z cesty URL                           | `adidas`           |

**Příklad**

Když uživatel navštíví: `<https://www.retailer.com/brands/adidas:>`

1. Vaše aplikace odpovídá trase `/brands/*` .
2. Extrahuje `adidas`jako urlSlug.
3. Volá `POST /ads/v3/brand-pages` na vašem přiděleném hostiteli reklam s `"urlSlug": "adidas"` a vaším `catalogId`.
4. Rendruje vrácené obsahové moduly na stránce.

### Pravidla pro validaci slugů

Značky vytvářejí slugy podle následujících omezení:

* **Znaky:** Malá písmena (a–z), čísla (0–9), pomlčky (-) a podtržítka (\_).
* **Délka:** Minimálně 3 znaky, maximálně 100 znaků.
* **Unikátnost:** Musí být unikátní v rámci katalogu prodejce (`catalogId`).

{% hint style="info" %}
V tuto chvíli unikátnost slugu nebere v úvahu časové rozsahy kampaní.
{% endhint %}

* **Neměnnost:** Nelze změnit po spuštění kampaně se stránkou značky.
* **Formát:** Žádné počáteční nebo koncové pomlčky (například `-adidas`or `adidas-` nejsou povoleny).

## Ukládání do mezipaměti

* Neukládejte odpovědi z API pro obsluhu reklam do mezipaměti. Vždy posílejte požadavky přímo na Epsilon API, abyste zajistili, že:
  * Je servírována správná kampaň se stránkou značky (kampaně mohou být pozastaveny, aktualizovány nebo vyměněny).
  * Sledovací URL obsahují čerstvé identifikátory pro jednotlivé požadavky pro přesnou atribuci.
  * Počty impresí zůstávají přesné a nejsou ovlivněny neaktuálními odpověďmi z mezipaměti.

**Aspekt SEO**: Prodejci se mohou rozhodnout povolit indexaci stránek značek vyhledávači. Indexace obsahu stránek značek může zlepšit viditelnost v organickém vyhledávání, protože veškerý text na stránce je pro vyhledávače vyhledatelný.

## Nastavení reverzního proxy

### Proč potřebujete reverzní proxy

**Problém**: Blokátory reklam a nástroje na ochranu soukromí často blokují sledovací požadavky odesílané přímo na reklamní domény.

**Řešení**: Směrujte všechny sledovací požadavky přes vlastní doménu, aby se jevily jako provoz první strany.

```apache
❌ Blocked: user-browser → [third-party-tracking-domain]
✅ Works:   user-browser → yoursite.com/[custom-path] → [third-party-tracking-domain]
```

* Nahraďte `[third-party-tracking-domain]` skutečným Epsilon koncovým bodem pro sledování poskytnutým během onboardingu.
* Nahraďte `[custom-path]` neutrální, unikátní cestou (např. `/media-proxy`, `/assets-endpoint`, nebo jakýmkoli nereklamním termínem).

Reverzní proxy je vyžadována pro sledování C2S (prohlížeč). Neplatí pro volání S2S, která musí být odesílána přímo na Epsilon hostitele sledování [(viz Sledování – Server-to-Server (S2S)](/retail-media-interface/integration/cs/brand-pages/brand-page-retailer-integration-guide/tracking-attribution.md#tracking--servertoserver-s2s))).

### Konfigurace

Váš web musí hostovat reverzní proxy pod cestou, jako je `https://www.retailer.com/{proxyPath}/`. Požadavky na sledování z prohlížeče (C2S) na vaši doménu na této cestě jsou přesměrovány na vašeho regionálního hostitele sledování ([viz Ad Serving API](#ad-serving-api)). Sledování server-to-server tuto proxy nesmí používat.

**Chování:**

* Přijímat požadavky pod `/epsilon/`
* Přesměrovat na `https://[region]-tracking.rmn.dotomi.com/` (viz [Ad Serving API](#ad-serving-api) pro `[region]`)
* Zachovat příponu cesty k souboru
* Vynutit požadované hlavičky HTTP
* Vynutit HTTPS (TLS 1.2+)

### Požadované hlavičky

| Hlavička                   | Popis                                                   |
| -------------------------- | ------------------------------------------------------- |
| `RP-Host`                  | Váš název hostitele přijímající požadavek na sledování. |
| `X-Forwarded-For`          | Skutečná IP adresa klienta.                             |
| `X-Forwarded-Request-Path` | Cesta s prefixem proxy (např. /epsilon).                |
| `Referer`                  | Stránka, kde se spustil pixel.                          |

### Příklad Apache

```apache
LoadModule ssl_module modules/mod_ssl.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
SSLProxyEngine on
RequestHeader add "X-Forwarded-Request-Path" "/epsilon"
RequestHeader add "RP-Host" "%{HTTP_HOST}s"
RequestHeader add "Referer" "%{HTTP_REFERER}s"
ProxyPass "/epsilon" "https://[region]-tracking.rmn.dotomi.com"
ProxyPassReverse "/epsilon" "https://[region]-tracking.rmn.dotomi.com/"
```

### Příklad NGINX

```apache
server {
    server_name www.retailer.com;
    location /epsilon/ {
        proxy_ssl_server_name on;
        rewrite ^/epsilon/(.*) /$1 break;
        proxy_pass https://[region]-tracking.rmn.dotomi.com;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $server_name;
        proxy_set_header RP-Host $host;
        proxy_set_header X-Forwarded-Request-Path "/epsilon";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Referer $http_referer;
    }
}
```

## Ad Serving API

Epsilon servíruje brandové stránky z RMN hostitelů na `*.rmn.dotomi.com`Nahraďte `[region]` segmentem, který Epsilon přiřadí pro vaše nasazení.

API pro reklamy používá `https://[region]-ads.rmn.dotomi.com`; zatímco koncové body pro sledování (impresní pixely, přesměrování kliknutí a URL pro S2S notifikace) používají `https://[region]-tracking.rmn.dotomi.com` se stejnou `[region]` hodnotou.

V některých nastaveních základní hostitelské názvy `ads.rmn.dotomi.com` a `tracking.rmn.dotomi.com` se mohou použít. Epsilon potvrdí vhodné hostitelské názvy pro vaše prostředí.

### Koncový bod

```
POST https://[region]-ads.rmn.dotomi.com/ads/v3/brand-pages
Content-Type: application/json
Authorization: Basic <existing_api_key>
```

### Tělo požadavku

```
{
  "id": "req-adidas-12345",
  "catalogId": "test-catalog-adidas",
  "urlSlug": "adidas",
  "site": {
    "domain": "www.retailer.com",
    "page": "https://www.retailer.com/brand/adidas",
    "ref": "https://www.retailer.com/search?q=shoes"
  },
  "device": {
    "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 ...",
    "ip": "192.168.1.100",
    "language": "en-US",
    "devicetype": 2,
    "os": "macOS",
    "geo": {
      "country": "USA",
      "region": "CA",
      "city": "San Francisco",
      "zip": "94105"
    }
  },
  "user": {
    "sessionId": "sess-abc123xyz",
    "customerId": "cust-789012",
    "dtmId": "dtm-456def"
  },
  "regs": {
    "gdpr": 1,
    "consent": "COwJqZAOwJqZAOAAAAENAXCAAAAAAAAAAAAAABpoAIAAAEpgAIAAAg1AAAICAIAAAEA"
  }
}
```

Hodnoty `regs` výše ilustrují provoz podléhající GDPR:\
`gdpr` is `1`a `consent`je **syntetický řetězec souhlasu IAB TCF v2** (pouze správný tvar a znaková sada).

V produkčním prostředí:

* Nastavte `gdpr`na základě vašich geografických a právních pravidel.
* Předávejte **živý TC řetězec** z vaší CMP (například prostřednictvím `_ _tcfapi` `getTCData`→ `tcString`).

Pro požadavky nepodléhající GDPR použijte `"gdpr": 0` a vynechte `consent`nebo použijte `""`

`iabConsentString` na sledovacích událostech: Každá vyplněná pozice trackeru (`trackers.impression`, `trackers.click`, `trackers.addToCart`obsahuje `params.iabConsentString`. Pokud v požadavku uvedete `regs.consent` , tato hodnota je doslovný TC řetězec.

Pokud jste vynechali `regs.consent`, tato hodnota je zástupný symbol makra {TCF} – před odesláním jakéhokoli požadavku na sledování nahraďte v čase spuštění aktuální řetězec TCF v2 z vaší CMP (například prostřednictvím `__tcfapi getTCData` → `tcString`).

### Definice polí požadavku

| Pole                 | Typ        | Povinné | Popis                                                                                                                                       |
| -------------------- | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                 | řetězec    | Ano     | Unikátní identifikátor požadavku (generovaný prodejcem)                                                                                     |
| `catalogId`          | řetězec    | Ano     | ID katalogu produktů prodejce (poskytnuté Epsilon)                                                                                          |
| `urlSlug`            | řetězec    | Ano     | Slug URL adresa brandové stránky (např. adidas)                                                                                             |
| místo                |            |         |                                                                                                                                             |
| `site.domain`        | řetězec    | Ano     | Doména webových stránek prodejce                                                                                                            |
| `site.page`          | řetězec    | No      | Úplná URL adresa, kde se brandová stránka zobrazuje                                                                                         |
| `site.ref`           | řetězec    | No      | Referrer URL (odkud uživatel přišel)                                                                                                        |
| zařízení             |            |         |                                                                                                                                             |
| `device.ua`          | řetězec    | Ano     | Řetězec User Agent                                                                                                                          |
| `device.ip`          | řetězec    | No      | IP adresa klienta                                                                                                                           |
| `device.language`    | řetězec    | No      | Jazyk prohlížeče (např. en-US)                                                                                                              |
| `device.devicetype`  | celé číslo | No      | 1=mobil, 2=pc, 4=telefon, 5=tablet                                                                                                          |
| `device.os`          | řetězec    | No      | Operační systém                                                                                                                             |
| `device.geo.country` | řetězec    | No      | Kód země podle ISO 3166-1 alpha-3 (např. USA, GBR)                                                                                          |
| `device.geo.region`  | řetězec    | No      | Stát nebo region                                                                                                                            |
| `device.geo.city`    | řetězec    | No      | Město                                                                                                                                       |
| `device.geo.zip`     | řetězec    | No      | Poštovní směrovací číslo                                                                                                                    |
| uživatel             |            |         |                                                                                                                                             |
| `user.sessionId`     | řetězec    | No      | Identifikátor relace prodejce (bez PII)                                                                                                     |
| `user.customerId`    | řetězec    | No      | Identifikátor zákazníka prodejce (bez PII)                                                                                                  |
| `user.dtmId`         | řetězec    | No      | Identifikátor sledování                                                                                                                     |
| předpisy             |            |         |                                                                                                                                             |
| `regs.gdpr`          | celé číslo | No      | `0` = GDPR se neaplikuje, `1` = Uplatňuje se GDPR (podle signalizace ve stylu OpenRTB)                                                      |
| `regs.consent`       | řetězec    | No      | Řetězec souhlasu IAB TCF **v2** (`tcString` z CMP). Použijte pouze tehdy, když `gdpr` is `1` a máte platný řetězec; jinak vynechte nebo`""` |

{% hint style="danger" %}
**Důležité** Níže uvedený JSON je reprezentativní a poměrně kompletní příklad. Živé odpovědi jsou často stručnější pro `contentData` moduly. Negenerujte pevné struktury, které předpokládají, že každý zde zobrazený klíč je vždy přítomen pro každý `contentType` nebo stránku značky.\
Hodnoty `theme` se liší: při úspěšné odpovědi je vždy přítomen a používá zanořenou strukturu popsanou v sekci Objekt motivu (`colors`a `buttons` plně popsané - vyžadované řetězce hex6 pro každou cestu; žádné `nulls` uvnitř `theme`).
{% endhint %}

### Užitečné zatížení odpovědi

```
{
  "realizedAdId": "brandpage_djogXfHSYGZOZnnkzEKunWvdNYEKABIAGgwIwIPjzAYQ3byasAE=",
  "brandPageTemplateId": "6e9690ef-81d1-4fad-b2ce-749e22cceb10",
  "catalogId": "test-catalog-adidas",
  "urlSlug": "adidas",
  "theme": {
    "colors": {
      "background": "#F5F5F5",
      "text": {
        "heading": "#1a1a1a",
        "subheading": "#333333",
        "body": "#5f6368",
        "caption": "#9aa0a6",
        "link": "#1a73e8",
        "tagline": "#5f6368",
        "lines": "#e0e0e0"
      }
    },
    "buttons": {
      "primary": {
        "background": "#ff6600",
        "text": "#FFFFFF"
      },
      "secondary": {
        "background": "#FFFFFF",
        "text": "#ff6600"
      }
    }
  },
  "trackers": {
    "impression": {
      "type": "impression",
      "params": { "ts": "{TS}", "iabConsentString": "{TCF}" }
    }
  },
  "trackingTypes": {
    "impression":      ["client.impressionPixelUrls", "server.impressionEvent"],
    "productClick":    ["client.clickRedirect", "client.clickEvent", "server.clickEvent"],
    "productAddToCart": ["client.addToCartEvent", "server.addToCartEvent"],
    "link":            ["client.clickRedirect", "client.clickEvent", "server.clickEvent"],
    "interaction":     ["client.clickEvent", "server.clickEvent"]
  },
  "trackingTemplates": {
    "client": {
      "clickRedirect":       "/tracking/v3/click/redirect/brandpage_djog...?catalogId=test-catalog-adidas&...",
      "clickEvent":          "/tracking/v3/event/click/brandpage_djog...?catalogId=test-catalog-adidas&...",
      "addToCartEvent":      "/tracking/v3/event/add-to-cart/brandpage_djog...?catalogId=test-catalog-adidas&...",
      "impressionPixelUrls": [
        "/tracking/v3/impression/pixel/brandpage_djog...?catalogId=test-catalog-adidas&..."
      ]
    },
    "server": {
      "clickEvent":          "https://[region]-tracking.rmn.dotomi.com/tracking/v3/event/click/brandpage_djog...?...",
      "addToCartEvent":      "https://[region]-tracking.rmn.dotomi.com/tracking/v3/event/add-to-cart/brandpage_djog...?...",
      "impressionEvent":     "https://[region]-tracking.rmn.dotomi.com/tracking/v3/event/impression/brandpage_djog...?..."
    }
  },
  "contentData": [
    {
      "id": "hero-1",
      "brandPageModuleTemplateId": "hero-template-1",
      "contentType": "HERO",
      "order": 1,
      "tags": ["header"],
      "mediaUrl": "https://example.com/images/adidas-hero.jpg",
      "headline": "Impossible Is Nothing",
      "subheadline": "Spring Collection",
      "ctaText": "Explore",
      "ctaLink": "https://example.com/adidas/explore",
      "trackers": {
        "click": {
          "type": "link",
          "params": {
            "modId": "hero-1",
            "rurl": "https%3A%2F%2Fexample.com%2Fadidas%2Fexplore",
            "ts": "{TS}",
            "iabConsentString": "{TCF}"
          }
        }
      }
    },
    {
      "id": "text-1",
      "brandPageModuleTemplateId": "text-template-1",
      "contentType": "TEXT",
      "order": 2,
      "text": "Discover the latest Adidas collection featuring innovative designs and sustainable materials."
      // (No trackers for TEXT module, as it has no interactive elements)
    }
  ]
}
```

#### Definice polí odpovědi

| Pole                                      | Typ          | Popis                                                                                                                                                                                                                                                                                                                                                                                                                          |
| ----------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `realizedAdId`                            | řetězec      | Unikátní identifikátor reklamy pro toto vydání stránky značky. Používá se ve všech cestách šablon sledování.                                                                                                                                                                                                                                                                                                                   |
| `brandPageTemplateId`                     | řetězec      | ID šablony použité pro tuto stránku značky                                                                                                                                                                                                                                                                                                                                                                                     |
| `catalogId`                               | řetězec      | ID katalogu prodejce (převzato z požadavku)                                                                                                                                                                                                                                                                                                                                                                                    |
| `urlSlug`                                 | řetězec      | Kratší adresa URL (slug) stránky značky (převzato z požadavku)                                                                                                                                                                                                                                                                                                                                                                 |
| `theme`                                   | Objekt       | <p>Vždy přítomno při úspěchu. Styl na úrovni stránky od značky: zanořené <code>colors</code> (pozadí + <code>text</code> role) a <code>buttons</code>(<code>primary</code>/ <code>secondary</code>, každý s <code>background</code>a <code>text</code>). Viz <a href="#theme-object">Objekt motivu</a> sekce.<br>Tělo odpovědi se vrací tak, jak je serializováno reklamním serverem (žádné přetváření <code>theme</code>)</p> |
| `trackers`                                | objektu      | Kontejner sledování na úrovni stránky. `trackers.impression` obsahuje pozici zobrazení stránky: `type: "impression"` a `params` včetně alespoň `ts: "`{TS}`"` a `iabConsentString`.                                                                                                                                                                                                                                            |
| `trackingTypes`                           | objektu      | Mapování typu sledování na příslušné klíče šablon. Typy: `impression`, `productClick`, `productAddToCart`, `link`, `interaction`. Každá hodnota je pole `client.*/` `server.*` klíčů z `trackingTemplates`. (viz [Jak sestavit sledovací URL](/retail-media-interface/integration/cs/brand-pages/brand-page-retailer-integration-guide/tracking-attribution.md#how-to-compose-a-tracking-url)).                                |
| `trackingTemplates.client`                | objektu      | **Relativní** cesty URL a řetězce dotazů pro sledování v prohlížeči (C2S) - předřaďte svou základní URL reverzního proxy (`BASEURL`).                                                                                                                                                                                                                                                                                          |
| `trackingTemplates.server`                | objektu      | Absolutní\*\* šablony URL na Epsilon sledovacím hostiteli pro S2S.                                                                                                                                                                                                                                                                                                                                                             |
| `contentData[]`                           | pole         | Uspořádané pole modulů obsahu k vykreslení                                                                                                                                                                                                                                                                                                                                                                                     |
| `contentData[].id`                        | řetězec      | ID instance modulu                                                                                                                                                                                                                                                                                                                                                                                                             |
| `contentData[].brandPageModuleTemplateId` | řetězec      | ID šablony modulu                                                                                                                                                                                                                                                                                                                                                                                                              |
| `contentData[].contentType`               | řetězec      | Typ modulu: HERO, TEXT, FILTER\_MENU, PRODUCT\_GRID, IMAGE, IMAGE\_GALLERY, SPLIT\_LAYOUT                                                                                                                                                                                                                                                                                                                                      |
| `contentData[].order`                     | celé číslo   | Pořadí vykreslování (vstupující)                                                                                                                                                                                                                                                                                                                                                                                               |
| `contentData[].tags`                      | pole řetězců | Volitelné. Tagy modulu nastavené prodejcem v šabloně. Zcela vynecháno, pokud nejsou nastaveny žádné tagy - chybějící hodnota znamená "žádné tagy". Přítomno také u vnořených modulů v rámci SPLIT\_LAYOUT.                                                                                                                                                                                                                     |
| `contentData[].trackers`                  | objektu      | Pokud je přítomno, kontejner sledování pro jednotlivé uzly. `trackers.click` pro události kliknutí na odkaz/interakci/produkt; `trackers.addToCart` pro přidání produktu do košíku (zahrnuje makra {QTY} a {CONVERSION\_VALUE}). Může být vynecháno, pokud není co sledovat.                                                                                                                                                   |

### Objekt tématu

Každá úspěšná odpověď Brand Page API obsahuje `theme` objekt: barvy na úrovni stránky a styly tlačítek nakonfigurované pro značku. Tyto hodnoty aplikujte při vykreslování (například je namapujte na vlastní vlastnosti CSS nebo vaše designové tokeny). JSON je vygenerován reklamním serverem a doručen v vrácené podobě - neexistuje žádný samostatný krok, který by přepisoval `theme`.

**Formát barev:** Hodnoty barev tématu řídí platformovou smlouvou z nadřazeného systému (kampaň/konfigurace): každá hodnota je `#` následovaný šesti šestnáctkovými číslicemi (hex6), například `#ff6600`. Neočekávejte jiné formáty (krátký hex3, osmimístný hex, `rgb()`, `hsl()`nebo pojmenované barvy). Reklamní server v době poskytování neověřuje formát barev; nadřazený systém dodává hex6 pro každé pole tématu.

#### Struktura a sémantika

* `theme` obsahuje `colors` a `buttons` - obojí je povinné, kdykoli je `theme` přítomno.
* `colors.background` - pozadí stránky nebo plátna (vyžadováno hex6).
* `colors.text` - sedm povinných rolí: `heading`, `subheading`, `body`, `caption`, `link`, `tagline`, `lines` (čáry/oddělovače). Každá hodnota je řetězec hex6.
* `buttons.primary` a `buttons.secondary` - každý vyžaduje `background` a `text` (výplň tlačítka a barvy textu), každá hodnota je řetězec hex6.
* Každá cesta v níže uvedené tabulce odkazů na pole je povinná. Neexistují žádné volitelné barevné pozice ani žádné `null` hodnoty uvnitř `theme`. (Řídká nebo vynechaná pole se uplatňují jinde, například v `contentData` modulech.)
* Hodnoty `theme` je na úrovni stránky - všechny moduly na Brand Page sdílejí stejný motiv.

#### Odkaz na pole

Všechny cesty v této tabulce jsou povinné (neprázdné řetězce hex6).

| Cesta                                | Popis                         |
| ------------------------------------ | ----------------------------- |
| `theme.colors.background`            | Pozadí stránky/plátna         |
| `theme.colors.text.heading`          | Text nadpisu                  |
| `theme.colors.text.subheading`       | Text podnadpisu               |
| `theme.colors.text.body`             | Text těla/odstavce            |
| `theme.colors.text.caption`          | Popisek/sekundární text       |
| `theme.colors.text.link`             | Text odkazu                   |
| `theme.colors.text.tagline`          | Text sloganu                  |
| `theme.colors.text.lines`            | Čáry a oddělovače             |
| `theme.buttons.primary.background`   | Výplň primárního tlačítka CTA |
| `theme.buttons.primary.text`         | Text primárního tlačítka CTA  |
| `theme.buttons.secondary.background` | Výplň sekundárního tlačítka   |
| `theme.buttons.secondary.text`       | Text sekundárního tlačítka    |

Příklad - (pouze`theme`objekt):

```json
"theme": {
  "colors": {
    "background": "#F5F5F5",
    "text": {
      "heading": "#1a1a1a",
      "subheading": "#333333",
      "body": "#5f6368",
      "caption": "#9aa0a6",
      "link": "#1a73e8",
      "tagline": "#5f6368",
      "lines": "#e0e0e0"
    }
  },
  "buttons": {
    "primary": {
      "background": "#ff6600",
      "text": "#FFFFFF"
    },
    "secondary": {
      "background": "#FFFFFF",
      "text": "#ff6600"
    }
  }
}
```

#### Pro jednotlivé uzly `params`(typické klíče)

| Parametr           | Při použití                                            | Popis                                                                                                                                                         |
| ------------------ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `modId`            | Většina interaktivních uzlů                            | Identifikátor modulu obsahu nebo řádku.                                                                                                                       |
| `rurl`             | `link` / `productClick`když je vyžadováno přesměrování | Cíl kódovaný v URL                                                                                                                                            |
| `ts`               | Většina událostí                                       | Časové razítko pro prolomení vyrovnávací paměti; nahraďte `"{TS}"`v momentě odeslání.                                                                         |
| `iabConsentString` | Všechny pozice trackerů                                | Doslovný řetězec TC nebo makro {TCF} k nahrazení v momentě odeslání                                                                                           |
| `productCode`      | `productClick` / `productAddToCart`                    | Identifikátor produktu.                                                                                                                                       |
| `sellerId`         | `productClick` / `productAddToCart` (tržiště)          | Identifikátor prodejce.                                                                                                                                       |
| `qty`              | `productAddToCart`                                     | Absolutní množství tohoto SKU v košíku v momentě odeslání události (ne delta). V momentě odeslání nahraďte makrem {QTY}                                       |
| `conVal`           | `productAddToCart`                                     | Absolutní peněžní hodnota těchto položek: množství × jednotková cena, mínus případné uplatněné slevy. Nahraďte `{CONVERSION_VALUE}` makrem v momentě odeslání |

#### Pole závislá na šabloně v `contentData`

Kromě hlavních diskriminátorů na každém modulu (`id`, `brandPageModuleTemplateId`, `contentType`, `order`) není přítomnost vlastností napříč Brand Pages jednotná. Dáváte-li přednost detekci funkcí - před použitím zkontrolujte každou vlastnost - namísto toho, abyste s každým polem v příkladech zacházeli jako s povinným.

Rozhraní API může "žádnou hodnotu" vyjádřit několika způsoby:

| Vzor              | Význam                                  | Doporučené zpracování                                                |
| ----------------- | --------------------------------------- | -------------------------------------------------------------------- |
| Klíč vynechán     | Vlastnost v objektu JSON chybí          | Považujte za nepřítomné; použijte volitelné řetězení/výchozí hodnoty |
| Explicitní `null` | Vlastnost je přítomna s `null` hodnotou | Stejné jako vynechané, pokud je váš serializátor nerozlišuje         |
| Prázdný řetězec   | `""` pro pole typu text nebo URL        | Obvykle skryjte nebo přeskočte vykreslování dané části UI            |

#### Příklady běžných typů modulů

**Mřížka produktů:**

Každý řádek produktu obsahuje `product` objekt (`catalogId`, `productCode`, `sellerId`), an `order` hodnota a `trackers` když je řádek sledovatelný. Řádky produktů poskytují jak `click` pozici (`type: "productClick"`) tak an `addToCart`pozici (`type: "productAddToCart"`), když je SKU přiřaditelné.

```

{
  "product": {
    "catalogId": "550e8400-e29b-41d4-a716-446655440001",
    "productCode": "9221200653341",
    "sellerId": "2ae0aab9-44ce-40a0-b2b9-ae61681ad224"
  },
  "order": 1,
  "trackers": {
    "click": {
      "type": "productClick",
      "params": {
        "modId": "grid-1",
        "productCode": "9221200653341",
        "sellerId": "2ae0aab9-44ce-40a0-b2b9-ae61681ad224",
        "rurl": "{RURL}",
        "ts": "{TS}",
        "iabConsentString": "{TCF}"
      }
    },
    "addToCart": {
      "type": "productAddToCart",
      "params": {
        "modId": "grid-1",
        "productCode": "9221200653341",
        "sellerId": "2ae0aab9-44ce-40a0-b2b9-ae61681ad224",
        "rurl": "{RURL}",
        "ts": "{TS}",
        "qty": "{QTY}",
        "conVal": "{CONVERSION_VALUE}",
        "iabConsentString": "{TCF}"
      }
    }
  }
}

```

**Hero:**

Hlavička, podtitul, text výzvy k akci a odkaz, obrázek, překrytí a `trackers.click` pro výzvu k akci, pokud je přítomna.

```

{
  "contentType": "HERO",
  "tags": [
    "header"
  ],
  "mediaUrl": "https://example.com/images/adidas-hero.jpg",
  "headline": "Impossible Is Nothing",
  "subheadline": "Spring Collection",
  "ctaText": "Explore",
  "ctaLink": "https://example.com/adidas/explore",
  "trackers": {
    "click": {
      "type": "link",
      "params": {
        "modId": "hero-1",
        "rurl": "https%3A%2F%2Fexample.com%2Fadidas%2Fexplore",
        "ts": "{TS}",
        "iabConsentString": "{TCF}"
      }
    }
  }
}

```

**Galerie obrázků:**

Pole obrázků, každý s URL, alternativním textem a popiskem. `trackers.click` pouze pro obrázek, pokud tento obrázek obsahuje odkaz.

```
{
  "contentType": "IMAGE_GALLERY",
  "galleryImages": [
    {
      "url": "https://example.com/images/recipe-spaghetti-bolognese.jpg",
      "alt": "Spaghetti Bolognese",
      "caption": "Spaghetti Bolognese",
      "trackers": {
        "click": {
          "type": "link",
          "params": {
            "modId": "gallery-1",
            "rurl": "https%3A%2F%2Fexample.com%2Frecipes%2Fspaghetti",
            "ts": "{TS}",
            "iabConsentString": "{TCF}"
          }
        }
      }
    }
  ]
}
```

**Text:**

Hlavička a tělo textu, bez `trackers`pokud na řádku není odkaz.

```
{
  "contentType": "TEXT",
  "text": "Explore our newest arrivals designed for comfort, style, and performance."
}
```

**Obrázek:**

Zahrnuje URL obrázku, popisek, alternativní text, volitelný odkaz a `trackers.click` podrobnosti, když je obrázek klikatelný

```
{
  "contentType": "IMAGE",
  "imageUrl": "https://example.com/images/model.jpg",
  "caption": "New arrivals now available",
  "alt": "Model wearing summer collection",
  "trackers": { "click": { "type": "link", "params": { "modId": "image-1", "rurl": "https%3A%2F%2Fexample.com%2Fnew-arrivals", "ts": "{TS}", "iabConsentString": "{TCF}"
  }
}
```


---

# 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/cs/brand-pages/brand-page-retailer-integration-guide/brand-page-apis.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.
