퍼블리셔 실시간 S2S API
목차
- 1.1 목차
- 2 광고 할당 요청
- 3 광고 참여 요청
- 4 광고 참여 확인
- 5 문의하기 페이지
- 6 Meta API
- 6.1.1 1) Response Fields
- 6.1.2 2) Status Code
- 6.1.3 3) result Description
- 6.2 FAQ
- 6.3 가이드 변경 이력
광고 할당 요청
항목 | 내용 | |
---|---|---|
1 | 요청 방향 | 매체사 → Buzzvil |
2 | HTTP Request method | GET |
3 | HTTP Request URL | |
4 | HTTP Request parameters | 아래 '1) HTTP Request parameters' 참고 |
5 | Response |
|
1) HTTP Request parameters
필드 | 유형 | 설명 |
---|---|---|
필수 | Integer | 매체 앱 아이디 |
필수 | Integer | 매체 지면 아이디 |
필수 | String | 사용자의 광고식별자. 광고 타게팅 및 어뷰징 필터링, CS 처리를 위해 필요합니다. 광고식별자 수집이 불가능할 경우 uuid 포맷을 모두 0으로 채워 요청해야 합니다. 예제) ab4ade35-1c8a-4405-acda-10ca1ad1abe1 광고식별자 수집이 불가능할 경우 전달 값) 00000000-0000-0000-0000-000000000000 |
필수 | String | 사용자 고유 식별자입니다. 서비스 도중 변하지 않는 고정 값이며, 광고 할당을 위한 필수 정보입니다. 앱을 삭제 후 재설치하여 사용자의 ID 값이 변경되거나 다른 사유로 인해 고정 ID를 사용하지 못하는 경우, 어뷰징 발생 가능성으로 인해 액션형 광고 송출이 불가능합니다. 사용자 고유 식별자가 변동되는 경우 버즈빌 사업 담당자에게 문의하세요. |
필수 | String | 광고에 참여한 유저의 ip 실제 유저의 ip 값을 전달해 주어야 합니다. 그러지 않을 경우 CPA 유형의 광고 송출이 불가합니다. 예제) 123.123.123.123 |
권장 | string | iOS 앱 벤더식별자(IDFV). iOS에서 유저가 앱 추적 허용을 하지 않아 광고식별자 수집이 불가능할 경우엔 필수로 전달해주어야 하는 값입니다. 사용자 식별을 위한 대체식별자로 사용됩니다. 예제) ab4ade35-1c8a-4405-acda-10ca1ad1abe1 |
권장 | String | 유저의 생년월일 생년월일 정보가 없을 경우 일부 광고가 할당에서 제외됩니다. 예제) 1993-01-09 ( O ) 19930109 ( X ) |
권장 | String | 성별 타게팅을 위한 정보. 성별 정보가 없을 경우 일부 광고가 할당에서 제외됩니다.
|
권장 | String | 할당 받을 광고 상품 타입. 값이 비어있을 경우, 노출형 광고(cpm, cpc)만 할당됩니다. 할당을 원하지 않는 상품타입이 있다면, 상품타입값 앞에 음수기호(-)를 추가하면 됩니다. 예제) [“cpc”, “cpm”, “cpq”, “cpinsta”, “cpa”, “cpk”, “cpl”, “cpcquiz”] 인코딩 주의 %5B%22cpm%22%2C%22cpa%22%2C%22cpq%22%2C%22cpinsta%22%2C%22cpk%22%2C%22cpl%22%2C%22cpc%22%5D 액션형 광고만 할당받는 예제) [“-cpc”, “-cpm”] |
권장 | String | 기기의 OS 정보
|
권장 | String | 요청 IP의 국가 정보. 현재는 국내 광고만 송출되고 있기 때문에 |
권장 | String | 통신사 정보. 통신사 정보가 없을 경우 일부 광고가 할당에서 제외됩니다.
|
권장 | String | 디바이스 모델명 디바이스 모델명이 없을 경우 일부 광고가 할당에서 제외됩니다.
|
권장 | Float | 위도 와 경도. 지역별 광고 타게팅에 사용됩니다. 정보가 없을 경우 일부 광고가 할당에서 제외됩니다. |
권장 | Float | |
권장 | String | User Agent. 정보가 없을 경우 일부 광고가 할당에서 제외됩니다. |
권장 | Int | 할당받을 광고갯수. 한번에 할당 가능한 최대 target_fill은 20 입니다. |
권장 | String (MAX 3000) | 할당에서 제외할 광고 데이터 할당 요청에 대한 예제) EvTIfLfbEUk7O_ylo5_rVBaEmt0jvIZvbI4o47azTNLDwGwbz2OoO522T4-9AzrlDwxo4ucwZ7pFg6LD-ReBNI8Yi9TKxWurSDIPvAhkqWuzY07jI_ej4Lngk_YeehlipFFV0ZfL8dnAY00xs6ydXTllkP_g_UOhHoyxxgyr3Qldp53TLXwTiv-7asYPa5H8 |
2) Response parameter
필드 | 유형 | 설명 |
---|---|---|
code | Integer | 처리결과 코드
|
msg | String | 처리결과 메세지 |
ads | List<Object> | 광고 목록 : 가변 길이입니다. 아래의 Ads 필드 값에 따라 결정됩니다. |
cursor | String | 할당받은 광고 데이터 |
ads
세부 항목 (Response Fields - ads)
필드 | 유형 | 설명 |
---|---|---|
| Integer | 광고 아이디 예제) 10075328 |
| String | 광고 설명 예제) "11번가 신선밥상" |
| List<String> | 사용자에게 광고를 노출시 호출되는 URL 예제) https://ad-staging.buzzvil.com/api/impression?data=ReOJjkH6mus-sxbys_1F2Bg9EHwkoGAAfb86yWB |
| Integer | 광고 참여 시 적립되는 포인트 금액 예제) 100 |
| String | 리워드 지급을 위한 조건
예제) 노출형 광고상품: “click” 액션형 광고상품: “action” 노출형 광고상품이지만 특정 액션을 수행해야 적립되는 광고: “action” |
| String |
예제) reward_condition이 "click"일 때: "" reward_condition이 "action"일 때: “https://ad.buzzvil.com/api/check_conversion?data=ReOJjkH6mus" |
| String | 광고 타입 노출형 상품
액션형 상품
예제) “cpc” |
| Object | 광고 소재
|
| String | 액션형 광고 참여시 필요한 콜백 파라미터를 인코딩한 문자열 노출형 광고 예제) ““ 액션형 광고 예제) “zh8qPfFDUycs3d_p_4kIv_8P1Q8etYu1xDtf4VDmTYyxzwqSdiPGXPXeVQGPD" |
| Boolean | 광고 클릭 시 랜딩 페이지가 외부 브라우저에서 열려야하는지 여부 예제) true, false
|
creative
세부 항목 (Response Fields - ads - creative)
필드 | 유형 | 설명 |
---|---|---|
| String | 광고 소재 제목 예제) “LG전자 베스트샵 카카오톡 채널추가” |
| String | 광고에 대한 상세 설명 예제) “LG전자 베스트샵 이벤트, 풍성한 혜택 정보까지! 가장 먼저 만나보세요!” |
| String | 광고 클릭 시 호출되는 URL. cpc, cpm 광고만 값이 채워짐. 노출형 광고 예제) “https://screen.buzzvil.com/api/s2s/click_redirect/?payload=eytY9sky7fy45qys84KAzTqBAQeSDSKtvTolx1-Zy9Y8ND9t1hE1Mn” 액션형 광고 예제) ““ |
| String | 광고의 참여를 유도하는 CTA 버튼의 UI 텍스트 예제) 참여하기 |
| Integer | 광고 소재의 가로 길이. 값은 1200으로 고정 예제) 1200 |
| Integer | 광고 소재의 세로 길이. 값은 627으로 고정 예제) 627 |
| String | 광고주 아이콘 이미지 URL 예제) https://d3aulf22blzf9p.cloudfront.net/uploads/1662458645-S98R6.png |
| String | 광고소재 이미지 URL 예제) https://d3aulf22blzf9p.cloudfront.net/uploads/1677571904-JZ8YB.jpg |
| Boolean | 리다이렉트 될 최종 URL의 Deeplink 여부 예제) true, false |
Response Parameter로 구현하기
다음은 API를 호출한 결과로 얻는 Response parameter를 사용하여 광고 소재를 구성하고 사용자의 광고 참여 단계별로 필요한 구현을 하는 예시입니다.
1. Response parameter로 전달받은 필드를 사용하여 광고 레이아웃을 구성하세요.
필드 | 유형 | 설명 | 비고 |
---|---|---|---|
필수 | String | 광고 소재 제목 |
|
필수 | String | URL 형태로 전달받는 광고 이미지 |
|
필수 | String | 광고에 대한 상세 설명 |
|
필수 | String | 광고주 아이콘 이미지 |
|
필수 | String | 광고의 참여를 유도하는 CTA 버튼의 UI 텍스트 |
|
필수 | Integer | 광고 참여 시 적립되는 포인트 금액 |
|
2. 사용자에게 광고가 노출되면 impression_urls
로 전달한 URL을 호출합니다.
3. 사용자가 광고를 클릭하면 click_url
로 전달한 URL을 호출합니다.
4. 사용자가 정상적으로 광고 참여를 완료하면, 버즈빌 서버에서 매체사의 포스트백 URL으로 포인트 적립 요청을 시도합니다. 자세한 내용은 매체사 포인트 적립 포스트백 API 연동 가이드를 참고하세요.
3) Status code
아래 상태코드는 http status와 별개로, Response parameter 안에 code 라는 필드를 통해 내려갑니다.
코드 | 설명 |
---|---|
200 | 정상 |
1000 | 시스템 에러 |
9001 | 존재하지 않는 unit_id |
9004 | 유효하지 않은 파라미터 (요청에 required field가 누락됐을 경우 발생) |
9011 | 요청 unit이 inactive 상태인 경우 |
4) Custom parameter
노출형 광고를 S2S API로 연동한 상태에서 커스텀 파라미터(Custom parameter)를 추가할 수 있습니다. 커스텀 파라미터를 추가하면 원하는 정보를 버즈빌로부터 포스트백 콜백(요청)과 함께 수신할 수 있습니다.
커스텀 파라미터를 추가하려면 사용자가 광고 클릭 시 호출되는 click_url
에 custom
파라미터를 추가하고 원하는 값을 설정하세요.
click_url
에 custom
파라미터를 추가해서 호출하는 경우, reward_condition
이 action
, click
인지는 신경쓰지 않고 항상 custom 파라미터를 함께 호출해 주세요.
Click API 호출 방식
다음은 payload
값이 부여된 요청 URL에 가상의 clickID
key 값을 custom
파라미터로 추가한 예제입니다.
메서드 | 요청 URL |
---|---|
GET |
|
Click API Request Parameter
필드 | 유형 | 설명 |
---|---|---|
필수 | string | 광고 할당 시 버즈빌 서버에서 부여하는 암호화된 파라미터입니다. 사용자에게 포인트를 지급하기 위해 필요한 광고 정보가 들어 있습니다. |
옵션 | json (url-encoded) | 포스트백 콜백 시 받고자 하는 추가 정보를 설정하기 위한 인코딩된 파라미터입니다. |
포인트 적립 포스트백 예제
커스텀 파라미터를 추가하면 버즈빌이 요청하는 포스트백에 custom
이 포함됩니다. 다음의 예제를 참고하세요.
{
...
"extra": {
"custom": {"YOUR_KEY": "YOUR_VALUE"}
},
...
}
광고 참여 요청
광고에 참여하기 위해서는 참여 요청 API를 호출하여 참여 가능 여부를 확인해야 합니다.
호출시점: 사용자가 할당받은 광고소재를 클릭했을 때, 호출합니다.
항목 | 내용 | |
---|---|---|
1 | 요청 방향 | 매체사 → Buzzvil |
2 | HTTP Request method | POST |
3 | Content-Type |
|
4 | HTTP Request URL | |
5 | HTTP Request parameters |
|
6 | Response |
|
1) HTTP Request parameters
Field | Type | Description |
---|---|---|
필수 | Integer | 매체 아이디 |
필수 | Integer | 광고 아이디 |
필수 | String |
예제) ab4ade35-1c8a-4405-acda-10ca1ad1abe1 광고식별자 수집이 불가능할 경우 예제) 00000000-0000-0000-0000-000000000000 |
필수 | String | 사용자 고유 식별자입니다. 서비스 도중 변하지 않는 고정 값이며, 광고 할당을 위한 필수 정보입니다. |
필수 | String | 광고에 참여한 유저의 ip 실제 유저의 ip 값을 전달해 주어야 합니다. 그러지 않을 경우 CPE, CPA 유형의 광고 송출이 불가합니다. 예제) 123.123.123.123 |
필수 | String | 광고 할당 시 응답받았던 payload 예제) “zh8qPfFDUycs3d_p_4kIv_8P1Q8etYu1xDtf4VDmTYyxzwqSdiPGXPXeVQGPD" |
권장 | String | iOS 앱 벤더식별자(IDFV). iOS에서 유저가 앱 추적 허용을 하지 않아 광고식별자 수집이 불가능할 경우엔 필수로 전달해주어야 하는 값입니다. 사용자 식별을 위한 대체식별자로 사용됩니다. 예제) ab4ade35-1c8a-4405-acda-10ca1ad1abe1 |
권장 | String | 사용자 고유 식별자 |
권장 | String | 디바이스 모델 이름 |
권장 | String | 해당하는 통신사 예제) kt , skt, lgt |
| String | 매체사에서 지정하는 커스텀 파라미터
|
| String | 매체사에서 지정하는 커스텀 파라미터
|
| String | 매체사에서 지정하는 파라미터
|
2) Response
Field | Type | Description |
---|---|---|
| Integer | 처리결과 코드
|
| String | 처리결과 메세지 |
| String | 액션형 광고 참여 안내 및 주의사항 문구 예제) "[참여방법]\n- '채널 추가' 후 대화창에 전송된 환영메시지를 복사해 입력해주세요.\n\n[주의사항]\n- 이미 추가한 카카오톡 채널은 포인트가 지급되지 않습니다.\n- 카카오톡 채널의 환영메시지를 정확히 입력 후 '환영메시지 제출하기' 버튼을 눌러야 포인트가 지급됩니다.\n- 동일인이 부정한 방법으로 여러번 참여를 시도할 경우, 포인트 지급 및 추후 광고 참여에 제재가 가해집니다.\n- 30일 이내 채널을 차단한 경우, 이후 캠페인 참여시 불이익을 받을수 있습니다." |
| String | 광고주 페이지 랜딩 URL |
3) Status Code
아래 상태코드는 http status와 별개로, Response parameter 안에 code 라는 필드를 통해 내려갑니다.
코드 | 설명 |
---|---|
200 | 정상 |
401 | 블랙리스트 유저 |
402 | 잘못된 ip 주소 형식 |
1000 | 시스템 에러 |
9001 | 존재하지 않는 unit_id |
9004 | 유효하지 않은 파라미터 (요청에 required field가 누락됐을 경우 발생) |
9008 | 존재하지 않는 캠페인 |
9011 | 요청 unit이 inactive 상태인 경우 |
9013 | 비활성화된 캠페인 |
9014 | 현재 캠페인이 라이브 중이 아니거나, 해당 매체에 타게팅되어 있지 않은 경우 |
9020 | 이미 캠페인에 참여한 경우 |
9021 | 캠페인이 모두 소진된 경우 |
9022 | 광고식별자 수집이 불가한 사용자가 광고식별자 필수 캠페인을 클릭한 경우 |
9031 | 알 수 없는 애드네트워크 캠페인 에러 |
9037 | 클릭한 사용자가 타게팅 조건에 맞지 않아 참여가 불가능한 경우 |
9040 | 광고식별자 형식이 잘못됐거나, 추적이 불가한 식별유형일 경우(e.g. 0000…) |
광고 참여 확인
리워드 지급조건이 “action”인 캠페인의 참여여부를 확인하는 API 입니다. 이 API를 사용해 사용자에게 참여완료 여부를 알려줄 수 있습니다.
호출시점: 캠페인 참여를 마치고 앱으로 복귀하는 시점
항목 | 내용 | |
---|---|---|
1 | 요청 방향 | 매체사 → Buzzvil |
2 | HTTP Request method | GET |
3 | HTTP Request URL | 광고요청시 받은 |
4 | Response |
|
1) Response parameter
Field | Type | Description |
---|---|---|
| Boolean | 사용자의 캠페인 참여 여부 예제) true |
문의하기 페이지
사용자가 문의를 등록할 수 있도록 버즈빌이 제공하는 CS 페이지 접근 API입니다. url 호출시 외부 브라우저로 이동하게 구현해야 합니다.
항목 | 내용 | |
---|---|---|
1 | 요청 방향 | 매체사 → Buzzvil |
2 | HTTP Request method | GET |
3 | HTTP Request URL | https://ad.buzzvil.com/offerwall/inquiry |
4 | HTTP Request parameters | 아래 '1) HTTP Request parameters' 참고 |
5 | Response | HTML |
1) HTTP Request parameters
Field | Type | Description |
---|---|---|
필수 | Integer | 버즈빌 매니저로부터 발급받은 App ID |
필수 | String |
예제) ab4ade35-1c8a-4405-acda-10ca1ad1abe1 광고식별자 수집이 불가능할 경우 예제) 00000000-0000-0000-0000-000000000000 |
필수 | String | 사용자 고유 식별자 |
필수 | String | 플랫폼 구분을 위해 필요한 Enum 구분값.
iOS 예제) I Android 예제) A |
권장 | String | iOS 앱 벤더식별자(IDFV). iOS에서 유저가 앱 추적 허용을 하지 않아 광고식별자 수집이 불가능할 경우엔 필수로 전달해주어야 하는 값입니다. 사용자 식별을 위한 대체식별자로 사용됩니다. 예제) ab4ade35-1c8a-4405-acda-10ca1ad1abe1 |
Meta API
호출 시 유저가 최대로 적립 가능한 금액과 유저의 IFA 변경 여부를 확인할 수 있는 API입니다. HTTP Request Parameters는 할당 요청 API와 동일한 파라미터를 사용합니다.
항목 | 내용 | |
---|---|---|
1 | 요청 방향 | 매체사 → Buzzvil |
2 | HTTP Request Method | GET |
3 | HTTP Request URL | |
4 | HTTP Request Parameters | 광고 할당 요청 API와 동일* |
5 | Response |
|
1) Response Fields
Field | Type | Description |
---|---|---|
| Integer | 처리결과 코드
|
| String | 처리결과 메세지 |
| JSONObject | 총 적립 가능 금액과 ifa의 변경 여부를 나타냅니다.
|
2) Status Code
코드 | 설명 |
---|---|
200 | 정상 |
1000 | 시스템 에러 |
9001 | 존재하지 않는 unit_id |
9004 | 유효하지 않은 파라미터 (요청에 required field가 누락됐을 경우 발생) |
9011 | 요청 unit이 inactive 상태인 경우 |
3) result
Description
Field | Type | Description |
---|---|---|
| Integer | 최대로 적립 받을 수 있는 리워드입니다. 예제) “total_reward”: 97215 |
| Boolean | ifa 변경 여부를 확인합니다.
|
FAQ