> For the complete documentation index, see [llms.txt](https://adpopcornssp.gitbook.io/offerwall/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://adpopcornssp.gitbook.io/offerwall/advertiser/campaign/content-click.md).

# 컨텐츠 클릭형 캠페인 연동

컨텐츠 클릭형 캠페인의 완료 처리를 연동하는 방법을 안내해요.&#x20;

광고주 서버에서 콜백 URL을 호출하여 완료를 처리하는 S2S 방식이에요.

***

### 연동 흐름 <a href="#integration-flow" id="integration-flow"></a>

```
[1] 유저가 애드팝콘 오퍼월에서 광고 클릭
    ↓
[2] 광고주 페이지로 랜딩 (cb 파라미터 전달)
    ↓
[3] 유저가 광고주 페이지에서 완료 조건 충족
    ↓
[4] 광고주 서버에서 cb URL 호출 (완료 처리)
    ↓
[5] 리워드 지급 (애드팝콘에서 처리)
```

***

### 필수 파라미터 <a href="#required-parameters" id="required-parameters"></a>

유저가 광고를 클릭하면 광고주 랜딩 URL에 아래 파라미터가 자동으로 전달돼요.

<table><thead><tr><th width="106">파라미터</th><th>설명</th></tr></thead><tbody><tr><td>cb</td><td><p>인코딩된 컨텐츠 클릭형 완료 URL</p><p>오퍼월에서 광고 클릭 시 자동 생성돼요.</p></td></tr></tbody></table>

#### 랜딩 URL 예시

```
https://광고주이벤트페이지주소?cb={인코딩된 완료URL}
```

```
https://advertiser.example.com/landing?cb=https%3A%2F%2Fapapi.adpopcorn.com%2Fap%2Fv1%2F...
```

> `cb` 파라미터 값은 인코딩된 상태로 전달돼요.&#x20;
>
> 이 값을 보관해두었다가, 완료 시점에 디코딩하여 호출해 주세요.

***

### 완료 처리 연동 <a href="#completion" id="completion"></a>

유저가 광고주 페이지에서 완료 조건을 충족하면, `cb` 파라미터로 전달받은 URL을 호출하여 완료 처리를 수행해요.

#### 처리 절차

1. 랜딩 시 전달받은 `cb` 파라미터 값을 서버에 저장해요.
2. 유저가 완료 조건을 충족하면, 저장해둔 `cb` 값을 URL 디코딩해요.
3. 광고주 서버에서 디코딩된 URL을 `GET` 방식으로 호출해요.

#### 호출 예시

```
GET https://apapi.adpopcorn.com/ap/v1/postback/thirdparty/ContentsClickRequestReward?tid=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
```

> 위 URL은 예시이며, 실제 `cb` 값을 디코딩한 결과 그대로 호출해 주세요.

***

### 응답 <a href="#response" id="response"></a>

완료 URL 호출 시 응답은 JSON 형식이에요.

<table><thead><tr><th width="134">필드</th><th width="127">자료형</th><th>설명</th></tr></thead><tbody><tr><td>Result</td><td>Boolean</td><td>호출 성공 여부 (true: 성공, false: 실패)</td></tr><tr><td>ResultCode</td><td>Int</td><td>결과 코드</td></tr><tr><td>ResultMsg</td><td>String</td><td>결과 메시지</td></tr></tbody></table>

#### 성공 응답

```json
{
  "Result": true,
  "ResultCode": 1,
  "ResultMsg": "Success"
}
```

#### 응답 코드

<table><thead><tr><th width="140">ResultCode</th><th width="160">ResultMsg</th><th>설명</th></tr></thead><tbody><tr><td>1</td><td>Success</td><td>캠페인 완료 체크 성공</td></tr><tr><td>5300</td><td>-</td><td>필수 파라미터 누락</td></tr><tr><td>4200</td><td>-</td><td>유효하지 않은 요청</td></tr><tr><td>200</td><td>-</td><td>서버 내부 오류</td></tr></tbody></table>

***

### 주의사항 <a href="#notes" id="notes"></a>

* `cb` 파라미터 값은 애드팝콘 내부에서 생성된 완료 URL이므로, 변조하거나 가공하지 않고 그대로 사용해야 해요.
* 완료 URL은 유저당 1회만 호출해요. 중복 호출 시 실패 응답이 반환될 수 있어요.
* 네트워크 오류 등으로 호출 실패 시 적절한 재시도 로직을 권장해요.
* `cb` 파라미터 값의 URL 디코딩은 반드시 표준 URL 디코딩(percent-decoding)을 사용해야 해요.

***

### 문의 <a href="#support" id="support"></a>

* 연동 문의: <reward@adpopcorn.com>
