> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aiderx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 캠페인 생성과 게재 요청 처리 API

> API로 캠페인을 생성하고 게재 요청된 캠페인의 승인 요청을 처리하는 방법을 설명합니다.

# 캠페인 관리

캠페인은 광고주가 설정한 목표에 맞춰 특정 광고를 집행하고, 성과를 측정할 수 있는 광고 활동 단위입니다.

A2는 새로운 캠페인의 추가, 캠페인 정보 조회, 기존 캠페인의 정보 변경 및 삭제 등 캠페인 관리에 필요한 기본적인 API와 함께 캠페인이 실제로 지면에 게재되기 위한 승인과 관련된 API를 제공하고 있습니다.

## 캠페인 생성

먼저 광고를 지원하기 위해서는 캠페인을 생성해야 합니다.
캠페인 생성시 캠페인 기간, 사용할 예산, 입찰 전략, 캠페인 목표 등 다양한 설정을 할 수 있습니다.

```bash Create Campaign Example theme={null}
curl --request POST \
  --url https://your_a2_service/campaigns \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "test campaign",
  "description": "test campaign",
  "start_date": "2025-04-12 16:47:03.773",
  "end_date": "2025-05-13 16:47:03.773",
  "goal": "impression",
  "sub_goal": "maximize_volume",
  "status": "okay",
  "budget": "10000",
  "bid_strategy": "bid_cap",
  "owner_id": "{owner-user-id}"
}'
```

## 소재 생성

캠페인의 생성만으로는 광고를 집행할 수 없습니다. 지면에 보여줄 소재를 등록함으로서 광고를 집행할 준비를 할 수 있습니다. 캠페인의 소재는 이미지, 비디오, 네이티브 등 다양하게 설정할 수 있습니다. 그러나 캠페인에 등록된 소재가 게재하고자 하는 지면에서 요구하는 소재 종류와 일치하지 않는 경우 게재할 수 없습니다.

```bash Create Creative Example theme={null}
curl --request POST \
  --url https://your_a2_service/creatives \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "test creative",
  "type": "banner",
  "status": "inactive",
  "width": 300,
  "height": 100,
  "banner": {
    "img": "https://example.com/creative.png"
  },
  "cid": "{campaign-id}",
  "owner_id": "{owner-user-id}"
}'
```

# 캠페인의 승인관리

캠페인을 생성하였으면 광고로 노출될 수 있도록 게재 요청을 할 수 있습니다. 게재 요청된 캠페인은 자체적인 기준에 따라 심사 후 게재가 승인이 되면 그 즉시 집행이 시작됩니다.

## 게재 요청

캠페인이 정상적으로 생성되었으면 광고가 지면에 노출될 수 있도록 게재 요청을 할 수 있습니다. 이때 최소 한개 이상의 소재가 활성화 되어 있어야 하며, 게재하고자 하는 지면의 소재 형식과도 일치해야 합니다.

```bash Create Allocation Example theme={null}
curl --request POST \
  --url https://your_a2_service/allocations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "tagid": "{placement-id}",
  "status": "pending",
  "cid": "{campaign-id}",
  "crid": "{creative-id}",
  "owner_id": "{owner-user-id}"
}'
```

## 승인 및 거절

캠페인에 활용된 소재나 링크 등이 자체적인 기준에 적합하지 않을 수 있습니다. 이때에는 심사를 거쳐 집행을 시작할 필요가 있습니다. 심사의 결과로 캠페인의 집행을 승인하거나 거절하는 경우 캠페인 정보 변경 API를 이용하여 결과를 업데이트할 수 있습니다. \\
또한 **last\_comment** 을 설정함으로서 거절 사유 등을 전달할 수 있습니다.

### 상태 코드 정보

| 코드        | 설명     |
| --------- | ------ |
| pending   | 초기 상태  |
| requested | 게재 요청중 |
| published | 게재 중   |
| rejected  | 거절됨    |
| canceled  | 게재 취소  |
| finished  | 게재 종료  |

```bash Update Allocation Example theme={null}
curl --request PATCH \
  --url https://your_a2_service/allocations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "tagid": "{placement-id}",
  "status": "published",
  "cid": "{campaign-id}",
  "crid": "{creative-id}",
  "owner_id": "{owner-user-id}"
}'
```

# 캠페인의 성과 측정

캠페인이 승인되면 그 즉시 광고가 노출되게 됩니다. 광고가 노출되거나 광고가 노출된 대상의 행동지표들은 수집되어 관리됩니다. 이렇게 수집된 데이터는 이후 캠페인 전략을 좀 더 효율적으로 수정하는데 도움을 줄 수 있습니다.

## 성과 분석

캠페인의 성과는 일별, 시간별 등 원하는 시간 구간에 맞는 API를 활용하여 확인할 수 있습니다.

```bash Get Campaign Hourly Metric Example theme={null}
curl --request POST \
  --url https://your_a2_service/metric/campaigns_hourly \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "campaign_id": "{campaign_id}",
  "tagid": "{placement-id}",
  "from_datetime": "2025-03-14 16:47:03.773",
  "to_datetime": "2025-04-13 16:47:03.773"
}'
```
