> 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/ko/generating-ads/banner-x-responsive/requesting-banner-x-ads.md).

# 다양한 게재 위치에 대한 Banner X 광고 생성

이 문서는 다양한 지면 유형에 대한 배너 X 광고를 생성하는 방법에 대한 종합 가이드를 제공합니다. Banner X 광고가 생성되는 위치: `/bannerx` 엔드포인트. 모든 배너 X 요청에는 다음 사항이 필요합니다: `contentStandardId` 및 `bannerSlotIds` 광고를 요청하는 대상입니다. 각 API 요청에는 다음과 같은 컨텍스트에 대한 세부 정보도 포함되어야 합니다:

* 지면
* 카탈로그 ID
* 고객 ID
* 세션 ID
* 검색어
* 표시할 최대 광고 수

## 검색 지면

### 사전 요구 사항

검색 지면에 대한 배너 X 광고 요청을 시작하기 전에 다음 단계를 완료해야 합니다.

#### 1. 상품 카탈로그 추가

상품이 카탈로그에 추가되고 Epsilon Retail Media 플랫폼과 동기화되었는지 확인하세요. 자세한 내용은 다음을 참조하세요: [카탈로그 및 상품 소개](https://developers.citrusad.com/integration/docs/introduction-to-catalogs-and-products).

#### 2. 캠페인 생성 및 검색어 구성

캠페인을 생성하고 검색어를 구성했는지 확인하세요. 자세한 내용은 다음을 참조하세요: [4b단계: 검색어 구성](/retail-media-interface/integration/ko/generating-ads/banner-x-responsive/create-banner-x-campaigns.md#optional-step-4b-configure-search-terms). 상품 광고에 대해 타겟팅하려는 검색어(포함 및 제외)를 정의합니다. 광고에 대해 일치 검색, 구문 검색, 제외 검색어를 지정할 수 있습니다.

#### 3. API 키 및 기본 URL 가져오기

1. 유효한 API 키가 있어야 합니다. API 키를 가져오려면 다음을 수행하세요.
   1. 로그인: Epsilon's Retail Media 팀 계정.
   2. 페이지 우측 상단으로 이동하여 드롭다운 메뉴를 클릭합니다.
   3. 드롭다운 메뉴에서 **연동 설정**을 선택합니다.

      <figure><img src="/files/FitvNwjvUjLM6ACw2rDt" alt="" width="100%"><figcaption></figcaption></figure>
   4. **API Key** 탭을 클릭합니다. 보안 API 키는 처음에 숨겨져 있습니다. 키를 보려면 **표시** 버튼을 클릭합니다. 키가 보이면 보안 API 키를 복사합니다. API 호출을 할 때 이 키를 사용하세요.
2. API 엔드포인트의 기본 URL이 있어야 합니다. 예: <https://staging-test.citrusad.com/v1/ads/generate> HTTP/1.1. 기본 URL은 담당 기술 계정 관리자에게 확인하세요.

### 광고 생성

상품 광고를 생성하려면 다음 단계를 수행하세요.

#### HTTP 요청

**엔드포인트**: /v1/ads/generate

**메서드**: POST

**헤더**:

* accept: application/json
* content-type: application/json
* Authorization: Basic \<API\_KEY>

#### 요청 매개변수

요청 본문은 다음 필드를 포함하는 JSON 개체여야 합니다.

| Object            | Type              | Description                                                                                                     |
| ----------------- | ----------------- | --------------------------------------------------------------------------------------------------------------- |
| customerId        | string, 필수        | 고객의 고유 식별자입니다. 리테일러에서 제공합니다.                                                                                    |
| sessionId         | string, 필수        | 세션의 고유 식별자입니다. 어트리뷰션에 필요하며 리테일러에서 제공합니다.                                                                        |
| contentStandardId | string, 필수        | 배너 X의 콘텐츠 표준 ID입니다.                                                                                             |
| bannerSlotIds     | string, 필수        | 배너 X의 슬롯 ID입니다.                                                                                                 |
| placement         | string, 필수        | 광고가 표시되는 컨텍스트(예: "search")입니다.                                                                                  |
| catalogId         | string, 필수        | 상품을 필터링하는 상품 카탈로그의 고유 식별자입니다. catalogID는 Epsilon's Retail Media UI 또는 리테일러로부터 얻을 수 있습니다.                        |
| maxNumberOfAds    | integer, 필수       | 표시할 최대 광고 수입니다. 배너 X 광고를 요청할 때 배너 슬롯당 수신하려는 최대 배너 수를 지정할 수 있습니다. 다음 파라미터로 이를 제어할 수 있습니다: `maxNumberOfAds` 매개변수. |
| searchTerm        | string, 검색 지면에 필수 | 카탈로그 내에서 검색할 용어입니다.                                                                                             |
| options           | object, 선택 사항     | 필터링 모드와 같은 추가 옵션 `AndOr` 지정된 경우, 시스템은 "AND" 및 "OR" 조건을 모두 사용하여 검색 결과를 좁힙니다.                                     |

### 요청 예시

검색 지배치는 일반적으로 요청하기 가장 쉽습니다. 요청 시 다음에 대한 `searchTerm` 지정이 필요합니다(아래 예시 참조):

```http
POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9",
    "placement": "search",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "searchTerm": "chocolate",
    "options": {
   						 "filterMode": "AndOr"
 							 },
    "contentStandardId": "c61941e2-1435-460b-9d2b-5d838e3dba9c",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
  ]
}
```

## 카테고리 지배치

카테고리 지배치는 요청 시 다음에 대한 `productFilters` 지정이 필요합니다. 아래 예시는 카테고리 필터를 전송하는 위치를 보여줍니다.

```http
POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9",
    "placement": "category",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "productFilters": [
     	 ["category:Cupboard/Snacks"]
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
}
```

추가 카테고리를 정독함에 따라 API 호출을 그에 맞게 업데이트해야 합니다.

## 크로스셀 카테고리 지배치

크로스셀 카테고리 지배치는 카테고리 지배치와 매우 유사한 요청을 갖습니다. 광고를 요청할 정확한 카테고리를 지정해야 합니다. 이는 일반적으로 현재 있는 페이지입니다. 요청의 `productFilters` 에서 카테고리를 지정하세요. 아래 예시는 카테고리 필터를 전송하는 위치를 보여줍니다.

```http
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9",
    "placement": "category-cross-sell",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "productFilters": [
     	 ["category:Cupboard/Snacks"]
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlots": [
           {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
    ],
    "maxNumberOfAds": 3
}
```

추가 카테고리를 정독함에 따라 API 호출을 그에 맞게 업데이트해야 합니다.

{% hint style="info" %}
오가닉 및 크로스셀 카테고리 타겟팅 병합?

오가닉 및 크로스셀 카테고리 광고 요청을 단일 지배치로 병합하려는 경우, 고객에게 병합 및 전달 로직을 구현해야 합니다. 이는 통합 담당자의 책임이지만, Epsilon Retail Media 와 언제든지 상의하실 수 있습니다.

일반적으로 오가닉 카테고리 광고를 먼저 노출하고, 오가닉 지배치 뒤에 위치 및 카테고리 크로스셀 광고를 배치하는 것을 권장합니다.
{% endhint %}

## 광범위 매치 지배치

홈 또는 결제 페이지와 같은 광범위 지배치는 요청 시 어떠한 `productFilters` 지정도 필요하지 않습니다. 리테일러가 지정하고자 하는 모든 필터(할인 중, 신상품 등)는 다음의 `productFilters` 에서 지정하여 Epsilon Retail Media 가 요구 사항 내에서만 광고를 게재하도록 할 수 있습니다(아래 예시 참조):

```http
POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9",
    "placement": "home",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "productFilters": [
     	 []
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
}
```

## 요청 향상

사용자 경험을 향상시키기 위해 아래 향상 기능을 고려하는 것이 좋습니다.

#### 필터링된 검색

고객이 검색을 필터링하는 경우, 컨텍스트를 확장하여 다음을 제공할 수 있습니다: `productFilters`. 아래는 고객이 "Cupboard" 카테고리와 "Gluten-free" 식이 제한으로 필터링하는 예시입니다. 이 동일한 원칙은 모든 카테고리 또는 광범위 매치 지배치에 적용될 수 있습니다.

```http
POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9",
    "placement": "search",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "searchTerm": "chocolate",
    "productFilters": [
     	 ["category:Cupboard"],["dietary:Gluten-free"]
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
}
```

#### 위치별 필터링

카탈로그에서 위치 필터를 동기화하는 경우, 컨텍스트를 확장하여 다음의 `productFilters`에 고객의 매장 위치를 제공할 수 있습니다(아래 예시 참조):

```http
POST $BASE_URL/v1/ads/bannerx HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
    "customerId": "wertg5432a",
    "sessionId": "ec9-4e07-881d-3e9",
    "placement": "search",
    "catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
    "searchTerm": "chocolate",
    "productFilters": [
     	 ["category:Cupboard"],["dietary:Gluten-free"],["location:Westenbury"]
    ],
    "options": {
   							 "filterMode": "AndOr"
 							 },
    "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
    "bannerSlotIds": [
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 1
    },
    {
      "slotId": "<SLOT_ID>",
      "maxNumberOfAds": 2
    }
}
```

## Banner X 응답

모든 응답은 동일한 JSON 형식을 따릅니다. 배너를 렌더링하는 데 필요한 모든 콘텐츠가 응답에 제공됩니다. 배너에 구성된 구성 요소가 없는 경우(예: 보조 히어로 이미지가 없는 경우), Epsilon Retail Media 는 해당 속성을 게재하지 않습니다.

```json
{
    "ads": [
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun__vW5pOojxDfN7T9VwaXWQLF2wKw3NzE0MTA3",
                    "citrusCampaignName": "CitrusAd-Example-Category-Banner-X-Ad-52793b405f1347b22e72a38c5a08699b",
                    "citrusContentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "Banner Advertisement for Magnum Double Ice Cream with a product image and shop now button",
                    "bannerText": "<strong>Magnum Double Ice Cream</strong>",
                    "bannerTextColour": "6e6c6c",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Magnum products",
                    "ctaLink": "https://www.tesco.com/groceries/en-GB/search?query=magnums",
                    "backgroundColour": "e1d6ac",
                    "heroImage": "https://cdn.flavedo.io/s/9b93e7f9-d747-4c8b-bcba-2357b280a3b3",
                    "heroImageAltText": "Magnums",
                    "tags": {},
                    "gtins": [
                        "7714107",
                        "7733636",
                        "7733657",
                        "7163379",
                        "7733628"
                    ],
                    "position": 1
                }
            ]
        },
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun_kZp9yTCMm71vTo7iyQaK9I_YB09FUFYzNzBTQ0FO",
                    "citrusCampaignName": "milo-campaign-lakjsdf09kj",
                    "citrusContentStandardId": "21r372ba-dce6-46f2-bd16-1b923b9189f9",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "A banner for Milo with a product image and a shop now button",
                    "bannerText": "<strong>Try Milo Cereal</strong>",
                    "bannerTextColour": "48a94c",
                    "heroImage": "https://assets.imageurl.io/s/85d2d333-eed5-44d7-b131-8851d59f0574",
                    "heroImageAltText": "Milo product image",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Milo products",
                    "ctaLink": "retailer.com/everything/search/heritage%20mill?pageNumber=1",
                    "secondaryHeroImage": "https://assets.imageurl.io/s/85d2d333-eed5-44d7-b131-8m435c34r",
                    "secondaryHeroImageAltText": "Milo Logo",
                    "secondaryHeroMode": "landscape",
                    "backgroundColour": "895b5b",
                    "backgroundImage": "https://assets.flavedo.io/s/9c6fa248-c5ff-4341-9833-7e2b08464ada",
                    "backgroundImagePosition": "FILL",
                    "secondaryBackgroundImage": "https://assets.flavedo.io/s/9c6fa248-c5ff-4341-9833-7e2b08464ada",
                    "tags": {},
                    "gtins": [
                         "16309011",
                         "57312011",
                         "65250011"
                                ],
                    "position": 1
                }
            ]
        }
    ]
}
```

의 `id` 필드는 노출 및 클릭 리포트에 사용되는 광고 ID입니다. 각 문자열에 대한 자세한 내용은 레퍼런스를 참조하세요.

### 제3자 트래킹 태그

배너 X 광고의 경우, Epsilon Retail Media 는 리테일러로의 제3자 트래킹 태그 전달을 지원합니다. 이러한 태그는 광고주가 신뢰할 수 있는 제3자를 통해 성과를 검증하는 데 사용됩니다.

Epsilon Retail Media 는 아래의 트래킹 태그를 지원합니다:

* DoubleVerify (Javascript 및 Image)
* DCM Click
* DCM Impression
* IAS
* Adform Impression
* Adform click

캠페인에 트래킹 태그가 구성되어 있는 경우, 아래의 `trackingTags` 객체에 관련 필드로 나타납니다. 캠페인에 태그가 구성되어 있지 않은 경우, `tags`및 `trackingTags` 객체는 비어 있게 됩니다.

```json
{
    "ads": [
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun__vW5pOojxDfN7T9VwaXWQLF2wKw3NzE0MTA3",
                    "citrusCampaignName": "CitrusAd-Example-Category-Banner-X-Ad-52793b405f1347b22e72a38c5a08699b",
                    "citrusContentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "Banner Advertisement for Magnum Double Ice Cream with a product image and shop now button",
                    "bannerText": "<strong>Magnum Double Ice Cream</strong>",
                    "bannerTextColour": "6e6c6c",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Magnum products",
                    "ctaLink": "https://www.tesco.com/groceries/en-GB/search?query=magnums",
                    "backgroundColour": "e1d6ac",
                    "heroImage": "https://cdn.flavedo.io/s/9b93e7f9-d747-4c8b-bcba-2357b280a3b3",
                    "heroImageAltText": "Magnums",
                    "tags": {},
                  	"trackingTags": {
                        "ADFORM_CLICK": "https://track.adform.net...",
                        "ADFORM_IMPRESSION": "<img src=\"https://track.adform.net...",
                        "DCM_CLICK": "https://ad.doubleclick.net/ddm/trackclk/...",
                        "DCM_IMPRESSION": "<IMG SRC=\"https://ad.doubleclick.net/ddm/trackimp/...",
                        "DV": "<script src=\"https://cdn.doubleverify.com/dvtp_src.js?ctx=...",
                        "DV_IMAGE": "<img src=\"https://tps.doubleverify.com/visit.jpg?ctx=..."
                    },
                    "gtins": [
                        "7714107",
                        "7733636",
                        "7733657",
                        "7163379",
                        "7733628"
                    ],
                    "position": 1
                }
            ]
        }
    ]
}
```

As Epsilon Retail Media 는 서버 간 통합이므로 제3자 트래킹 태그에는 리테일러의 추가 개발이 필요합니다. 이 기능을 활용하려는 경우 Integration Program Manager (IPM)에 문의하세요.

{% hint style="info" %}
`tags` 객체

DoubleVerify (Javascript) 및 DCM 태그의 경우, `tags` 객체도 채워진 것을 볼 수 있습니다. `trackingTags` 응답을 사용하는 것이 가장 좋습니다.
{% endhint %}

### 비디오 광고

캠페인에 비디오 광고가 구성된 경우 응답에는 아래와 같이 `adm`객체가 포함됩니다:

```
{

  "ads": [

    {

      "contentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",

      "slotId": "Top_Banner",

      "banners": [

        {

          "citrusAdId": "shotgun_8SvgA7OvvuwtZkkOKR0vr8AXMvQKFgoURmluZ2VybGltZTI2LWZkeHZxMjcSABoMCO30r70GEKPplJQCIgIIAQ==",

          "citrusCampaignName": "Ads:74-330-96832622ed499dafb3da8de8b76340a2",

          "citrusContentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",

          "citrusSlotId": "Top_Banner",

          "citrusExpiry": "2025-02-12T01:33:33.579155107Z",

          "headingText": "recusandae 3205",

          "bannerText": "placeat 2825",

          "bannerTextColour": "ffffff",

          "ctaFlag": true,

          "ctaText": "CTA text",

          "ctaTextAccessibility": "call to action accessibility text",

          "ctaLink": http://citrusad.com ,

          "backgroundColour": "000000",

          "backgroundImage": https://dev3.flavedo.io./citrus/8de07ed9-60b4-4611-8bd5-3f1f0c0b6be4,

          "secondaryBackgroundImage": https://dev3.flavedo.io./citrus/b7a70785-1366-42c6-8134-c7fe47a30c34,

          "secondaryBackgroundImagePosition": "rightaligned",

          "heroImage": https://dev3.flavedo.io./citrus/26798ca9-1022-422d-9100-1a3687c88372,

          "heroImageAltText": "hero image alt text",

          "secondaryHeroImage": https://dev3.flavedo.io./citrus/c4ee18b4-bf51-44d7-9eb6-eeb1dc4c422f,

          "secondaryHeroImageAltText": "secondary hero image alt text",

          "secondaryHeroMode": "landscape",

          "tags": {},

          "additionalFields": [

            {

              "id": "text-1",

              "value": "sed 5731"

            }

          ],

          "gtins": [

            "Fingerlime26-fdxvq27",

            "Oranges5-qgxeb6",

            "Cherries9-adkoj11",

            "Incaberries20-ppscn21",

            "Banana14-simfk15"

          ],

          "sellerId": "seller_id_772_659",

          "position": 1,

          "metadata": {

            "advertiserInfo": {

             "advertiser": "Bob's advertising agency",

             "onBehalfOf": "Brand company inc"

            }

          },
          "adm": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<VAST version=\"4.0\">\n    <Ad id=\"1\">\n        <InLine>\n            <AdSystem>CitrusAd</AdSystem>\n            <Impression><![CDATA[https://integration.BASE-URL.citrusad.com/v1/resource/first-i/shotgun_2DbJUbTdlM3HFvLuF75YoA2FgpwKBQoDMTIzEgAaCwjHsuG_BhD7sqZzIgIIAQ==]]></Impression>\n            <ViewableImpression>\n                <Viewable><![CDATA[https://integration.BASE-URL.citrusad.com/v1/resource/first-i/shotgun_2DbJUbTdlM3HFvLuF75YoA2FgpwKBQoDMTIzEgAaCwjHsuG_BhD7sqZzIgIIAQ==]]></Viewable>\n                <NotViewable></NotViewable>\n                <ViewUndetermined></ViewUndetermined>\n            </ViewableImpression>\n            <AdTitle>VAST-4.0-Short-Intro.mp4</AdTitle>\n            <Creatives>\n                <Creative>\n                    <UniversalAdId idRegistry=\"http://citrusad.com \" idValue=\"VAST-4.0-Short-Intro.mp4\">VAST-4.0-Short-Intro.mp4</UniversalAdId>\n                    <Linear>\n                        <Duration></Duration>\n                        <MediaFiles>\n                            <MediaFile delivery=\"progressive\" type=\"video/mp4\" width=\"0\" height=\"0\" bitrate=\"0\" codec=\"\"><![CDATA[https://cdn.flavedo.io./citrus/VAST-4.0-Short-Intro.mp4]]></MediaFile>\n                            <Mezzanine><![CDATA[https://cdn.flavedo.io./citrus/VAST-4.0-Short-Intro.mp4]]></Mezzanine>\n                        </MediaFiles>\n                        <VideoClicks>\n                            <ClickTracking><![CDATA[https://integration.BASE-URL.citrusad.com/v1/resource/second-c/shotgun_2DbJUbTdlM3HFvLuF75YoA2FgpwKBQoDMTIzEgAaCwjHsuG_BhD7sqZzIgIIAQ==]]></ClickTracking>\n                            <ClickThrough><![CDATA[a/a-national/everything/browse]]></ClickThrough>\n                        </VideoClicks>\n                    </Linear>\n                </Creative>\n            </Creatives>\n        </InLine>\n    </Ad>\n</VAST>"

       }

      ]

    }

  ]

}
```

### 컴패니언 상품

캠페인에 컴패니언 상품이 구성된 경우 응답에는 아래와 같이 `companionProducts`객체 배열이 포함됩니다:

```
{
  "ads": [
    {
      "contentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
      "slotId": "Top_Banner",
      "banners": [
        {
          "citrusAdId": "shotgun_8SvgA7OvvuwtZkkOKR0vr8AXMvQKFgoURmluZ2VybGltZTI2LWZkeHZxMjcSABoMCO30r70GEKPplJQCIgIIAQ==",
          "citrusCampaignName": "Ads:74-330-96832622ed499dafb3da8de8b76340a2",
          "citrusContentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
          "citrusSlotId": "Top_Banner",
          "citrusExpiry": "2025-02-12T01:33:33.579155107Z",
          "headingText": "recusandae 3205",
          "bannerText": "placeat 2825",
          "bannerTextColour": "ffffff",
          "ctaFlag": true,
          "ctaText": "CTA text",
          "ctaTextAccessibility": "call to action accessibility text",
          "ctaLink": http://citrusad.com,
          "backgroundColour": "000000",
          "backgroundImage": https://dev3.flavedo.io./citrus/8de07ed9-60b4-4611-8bd5-3f1f0c0b6be4,
          "secondaryBackgroundImage": https://dev3.flavedo.io./citrus/b7a70785-1366-42c6-8134-c7fe47a30c34,
          "secondaryBackgroundImagePosition": "rightaligned",
          "heroImage": https://dev3.flavedo.io./citrus/26798ca9-1022-422d-9100-1a3687c88372,
          "heroImageAltText": "hero image alt text",
          "secondaryHeroImage": https://dev3.flavedo.io./citrus/c4ee18b4-bf51-44d7-9eb6-eeb1dc4c422f,
          "secondaryHeroImageAltText": "secondary hero image alt text",
          "secondaryHeroMode": "landscape",
          "tags": {},
          "additionalFields": [
            {
              "id": "text-1",
              "value": "sed 5731"
            }
          ],
          "gtins": [
            "Fingerlime26-fdxvq27",
            "Oranges5-qgxeb6",
            "Cherries9-adkoj11",
            "Incaberries20-ppscn21",
            "Banana14-simfk15"
          ],
          "sellerId": "seller_id_772_659",
          "position": 1,
          "metadata": {
            "advertiserInfo": {
             "advertiser": "Bob's advertising agency",
             "onBehalfOf": "Brand company inc"
            }
          },
          “companionProducts”: [
            "Banana14-simfk15"
            "Oranges5-qgxeb6",
            "Incaberries20-ppscn21",
          ]
        }
      ]
    }
  ]
}
```

<br>

### 마켓플레이스 sellerId

마켓플레이스 판매자를 온보딩하는 경우 응답의 광고당 추가 `sellerId` 가 보일 수 있습니다. 이는 게재되는 캠페인을 소유한 팀의 UI에 판매자 ID가 구성되어 있는 경우에만 나타납니다. 아래 예시는 sellerId가 있는 광고 하나와 없는 광고 하나를 보여줍니다.

```json
{
    "ads": [
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun__vW5pOojxDfN7T9VwaXWQLF2wKw3NzE0MTA3",
                    "citrusCampaignName": "CitrusAd-Example-Category-Banner-X-Ad-52793b405f1347b22e72a38c5a08699b",
                    "citrusContentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "Banner Advertisement for Magnum Double Ice Cream with a product image and shop now button",
                    "bannerText": "<strong>Magnum Double Ice Cream</strong>",
                    "bannerTextColour": "6e6c6c",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Magnum products",
                    "ctaLink": "https://www.retailer.com/groceries/en-GB/search?query=magnums",
                    "backgroundColour": "e1d6ac",
                    "heroImage": "https://cdn.flavedo.io/s/9b93e7f9-d747-4c8b-bcba-2357b280a3b3",
                    "heroImageAltText": "Magnums",
                    "tags": {},
                    "gtins": [
                        "7714107",
                        "7733636",
                        "7733657",
                        "7163379",
                        "7733628"
                    ],
                    "position": 1,
                    "sellerId": "1ben32-ss3d43-amea"
                }
            ]
        },
        {
            "contentStandardId": "c619d1e2-1435-460b-9d2b-5d838e3dba9c",
            "slotId": "<SLOT_ID>",
            "banners": [
                {
                    "citrusAdId": "shotgun_kZp9yTCMm71vTo7iyQaK9I_YB09FUFYzNzBTQ0FO",
                    "citrusCampaignName": "milo-campaign-lakjsdf09kj",
                    "citrusContentStandardId": "21r372ba-dce6-46f2-bd16-1b923b9189f9",
                    "citrusSlotId": "<SLOT_ID>",
                    "citrusExpiry": "2021-05-17T02:47:52.849995214Z",
                    "headingText": "A banner for Milo with a product image and a shop now button",
                    "bannerText": "<strong>Try Milo Cereal</strong>",
                    "bannerTextColour": "48a94c",
                    "heroImage": "https://assets.imageurl.io/s/85d2d333-eed5-44d7-b131-8851d59f0574",
                    "heroImageAltText": "Milo product image",
                    "ctaFlag": true,
                    "ctaText": "Shop now",
                    "ctaTextAccessibility": "for Milo products",
                    "ctaLink": "retailer.com/everything/search/heritage%20mill?pageNumber=1",
                    "secondaryHeroImage": "https://assets.imageurl.io/s/85d2d333-eed5-44d7-b131-8m435c34r",
                    "secondaryHeroImageAltText": "Milo Logo",
                    "secondaryHeroMode": "landscape",
                    "backgroundColour": "895b5b",
                    "backgroundImage": "https://assets.flavedo.io/s/9c6fa248-c5ff-4341-9833-7e2b08464ada",
                    "backgroundImagePosition": "FILL",
                    "secondaryBackgroundImage": "https://assets.flavedo.io/s/9c6fa248-c5ff-4341-9833-7e2b08464ada",
                    "tags": {},
                    "gtins": [
                         "16309011",
                         "57312011",
                         "65250011"
                                ],
                    "position": 1
                }
            ]
        }
    ]
}
```

### 제3자 트래킹 태그

Epsilon Retail Media 는 리테일러로의 제3자 트래킹 태그 전달을 지원합니다. 이러한 태그는 광고주가 신뢰할 수 있는 제3자를 통해 성과를 검증하는 데 사용됩니다.

Epsilon Retail Media 는 아래의 트래킹 태그를 지원합니다:

* DoubleVerify
* DCM Click
* DCM Impression
* IAS

캠페인에 트래킹 태그가 구성되어 있는 경우 다음의 관련 필드로 나타납니다: `tags` 객체에 관련 필드로 나타납니다. 캠페인에 태그가 구성되어 있지 않은 경우, `tags` 객체는 비어 있게 됩니다.

```json
{
    "ads": [],
    "banners": [
				{
            "id": "banner_XeemTeq59HapGSp4vccOYfBq_yvc3zMzNjM2",
            "contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
            "slotId": "<SLOT_ID>",
            "imageUrl": "https://cdn.flavedo.io/s/-oW-C3cEViSSO2krWkwOBUXOhvUdhHOySx-YQLGZ1lA=",
            "linkUrl": "https://www.retailer.com/link",
            "altText": "Your local ice cream",
            "text": "",
            "gtins": [
                "7733628",
                "7714107",
                "7163379",
                "7733636",
                "7733657"
            ],
            "expiry": "2021-05-17T01:49:17.75503253Z",
            "tags": {
                "dv": "<script src=\"https://cdn.doubleverify.com/dvtp_src.js?ctx=919421&cmp=1074060503&sid=1073907024&plc=1075810393&adsrv=115&btreg=&btadsrv=&crt=&tagtype=&dvtagver=6.1.src\" type=\"text/javascript\"></script>",
                "dcmClick": "<script ..../>",
                "dcmImpression": "<script.... />",
                "ias": "<script.... />"            }
        }
				],
    "products": [],
     "memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0="
}
```

As Epsilon Retail Media 는 서버 간 통합이므로 제3자 트래킹 태그에는 리테일러의 추가 개발이 필요합니다.

## 디지털 서비스 법

Epsilon Retail Media 는 리테일러가 유럽 연합 (EU) [디지털 서비스 법](https://commission.europa.eu/strategy-and-policy/priorities-2019-2024/europe-fit-digital-age/digital-services-act_en) (DSA) 의무를 준수할 수 있도록 지원합니다. DSA는 온라인 콘텐츠 규제, 투명한 광고 및 허위 정보 대응을 목표로 EU 전역에 통일된 규칙을 설정합니다. 자세한 내용은 다음을 참조하세요: [디지털 서비스 법](/retail-media-interface/integration/ko/feature-integrations/digital-services-act.md).

### 광고 요청 예시

```
{
    "catalogId": "57a5318b-5349-46fd-80ed-fd2e0be15819",
    "contentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
    "bannerSlotIds": [
        {
            "slotId": "Top_Banner",
            "maxNumberOfAds": 1
        }
    ],
    "customerId": "velit3193",
    "placement": "broad-display-60e9699d-984f-4a80-9383-2e6dc7a68d03",
    "options": {
        "includeAdvertiserInfo": true
    }
}
```

### 광고 응답 예시

```
{
  "ads": [
    {
      "contentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
      "slotId": "Top_Banner",
      "banners": [
        {
          "citrusAdId": "shotgun_8SvgA7OvvuwtZkkOKR0vr8AXMvQKFgoURmluZ2VybGltZTI2LWZkeHZxMjcSABoMCO30r70GEKPplJQCIgIIAQ==",
          "citrusCampaignName": "Ads:74-330-96832622ed499dafb3da8de8b76340a2",
          "citrusContentStandardId": "c47c9ca2-ad3b-48cc-880b-e899c1661726",
          "citrusSlotId": "Top_Banner",
          "citrusExpiry": "2025-02-12T01:33:33.579155107Z",
          "headingText": "recusandae 3205",
          "bannerText": "placeat 2825",
          "bannerTextColour": "ffffff",
          "ctaFlag": true,
          "ctaText": "CTA text",
          "ctaTextAccessibility": "call to action accessibility text",
          "ctaLink": "http://citrusad.com",
          "backgroundColour": "000000",
          "backgroundImage": "https://dev3.flavedo.io./citrus/8de07ed9-60b4-4611-8bd5-3f1f0c0b6be4",
          "secondaryBackgroundImage": "https://dev3.flavedo.io./citrus/b7a70785-1366-42c6-8134-c7fe47a30c34",
          "secondaryBackgroundImagePosition": "rightaligned",
          "heroImage": "https://dev3.flavedo.io./citrus/26798ca9-1022-422d-9100-1a3687c88372",
          "heroImageAltText": "hero image alt text",
          "secondaryHeroImage": "https://dev3.flavedo.io./citrus/c4ee18b4-bf51-44d7-9eb6-eeb1dc4c422f",
          "secondaryHeroImageAltText": "secondary hero image alt text",
          "secondaryHeroMode": "landscape",
          "tags": {},
          "additionalFields": [
            {
              "id": "text-1",
              "value": "sed 5731"
            }
          ],
          "gtins": [
            "Fingerlime26-fdxvq27",
            "Oranges5-qgxeb6",
            "Cherries9-adkoj11",
            "Incaberries20-ppscn21",
            "Banana14-simfk15"
          ],
          "sellerId": "seller_id_772_659",
          "position": 1,
          "metadata": {
            "advertiserInfo": {
             "advertiser": "Bob's advertising agency",
          "onBehalfOf": "Brand company inc"
            }
          }
        }
      ]
    }
  ]
}
```


---

# 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/ko/generating-ads/banner-x-responsive/requesting-banner-x-ads.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.
