포스트백 연동

사용자가 광고 활동(CPA, 미션, 퀴즈 등)을 완료하면 마이비 애드체인 서버에서 파트너 서버로 실시간 콜백을 전송합니다. 파트너사는 포스트백으로 유저에게 포인트를 지급해야합니다.


API 명세

요청 정보

항목

Method

POST

Content-Type

application/json

Endpoint

파트너사가 제공한 포스트백 수신 URL

요청 본문 (Request Body)

{
  "callback_id": "b6fcca4e-e7b8-4a70-94fd-810b1b6a256b",
  "type": "campaign",
  "revenue_type": "cpa",
  "user_id": "ab0da900-7465-4231-8657-1ef40944a8a2",
  "amount": "100",
  "campaign_key": "12352221",
  "campaign_name": "[초간단] 이마트 24 구독하기",
  "signed_value": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
  "app_key": "100000001",
  "os": "android",
  "ifa": "9ee20401-14bf-4569-a8d3-dc577be8d07f"
}

필드 설명

필드명
타입
필수
설명
예시

callback_id

String

고유 트랜잭션 ID (UUID). 중복 지급 방지용

b6fcca4e-e7b8-...

type

String

콘텐츠/활동 유형 (campaign, mission, quiz)

campaign

revenue_type

String

수익화 모델 (cpa, cpq, cps, cpx, cpi, none)

cpa

user_id

String

파트너사 유저 식별값

ab0da900-7465-...

amount

String

사용자 보상 금액

100

campaign_key

String

캠페인 고유 키 (퀴즈의 경우 이벤트 ID)

12352221

signed_value

String

HMAC-MD5 서명값. 데이터 무결성 검증용

a1b2c3d4e5f6...

campaign_name

String

캠페인 명칭

[초간단] 이마트 24 구독하기

app_key

String

앱 식별자. 멀티 앱 구분용

100000001

os

String

운영체제 타입 (android, ios)

android

ifa

String

광고 식별값 (Android: GAID, iOS: IDFA)

9ee20401-14bf-...


응답 처리

응답 형식 (필수)

모든 응답은 반드시 다음 필드를 포함해야 합니다:

필드명
타입
필수
설명

success

Boolean

처리 성공 여부 (true/false)

message

String

응답 메시지 (빈 문자열 "" 가능)

성공 응답

실패 응답


보안 및 검증

서명 검증 (Signature Validation)

데이터 무결성과 보안을 위해 모든 포스트백에는 signed_value 필드가 포함됩니다. 파트너사는 이 값을 검증하여 요청이 마이비 애드체인으로부터 온 유효한 요청인지 확인해야 합니다.

서명 생성 방식

  1. 서명 대상 문자열 생성:

  2. HMAC-MD5 해시 생성:

    • 알고리즘: HMAC-MD5

    • Secret Key: 마이비 애드체인에서 발급한 app_secret (OS 또는 app_key 별로 구분)

    • 결과: 32자리 16진수 문자열 (소문자)

Secret Key 관리

파트너사는 app_keyos 중에 선택하여 다른 app_secret을 사용해야 합니다.

App Key 기반 구분 (권장)

OS 기반 구분

검증 구현 예제

주의사항

  1. app_secret 보안: app_secret은 절대 외부에 노출되어서는 안 됩니다

  2. 검증 필수: 모든 포스트백 요청에 대해 서명 검증을 반드시 수행해야 합니다

  3. 검증 실패 시: 서명 검증이 실패한 요청은 반드시 거부해야 합니다 (HTTP 401 응답)

  4. 문자열 순서: 서명 생성 시 필드 순서가 중요합니다 (callback_iduser_idamountcampaign_key)

  5. Secret 관리: OS별 또는 앱별로 다른 secret을 사용하므로 환경변수 등을 통해 안전하게 관리해야 합니다

  6. 우선순위: app_key가 제공된 경우 해당 앱의 secret을 우선 사용하고, 없으면 OS별 기본 secret을 사용합니다


구현 가이드

중복 처리 방지 (필수)

사용자 보상이 직접적으로 연결되어 있기 때문에, 중복 처리 방지 로직을 반드시 구현해야 합니다.

핵심 구현 요구사항

  1. 고유 식별자 관리

    • callback_id는 각 트랜잭션의 고유 식별자(UUID)입니다

    • 동일한 callback_id가 여러 번 수신될 경우, 반드시 첫 번째 요청만 처리하고 이후 요청은 무시해야 합니다

  2. 구현 예시

푸시 알림 구성 가이드

사용자에게 리워드 지급 푸시 알림을 보낼 때는 campaign_nameamount 필드를 활용하여 메시지를 구성하는 것을 권장합니다.

푸시 메시지 예시

구현 예시


데이터 타입별 예시

1. CPA 광고 캠페인 (일반 참여형)

2. 미션 완료 보상

3. 퀴즈 참여 보상


테스트 가이드

테스트 환경 구성

실제 서비스 적용 전 마이비 애드체인 개발팀과 함께 테스트를 진행해 주세요.

테스트 포스트백을 받기 위한 Endpoint를 알려주시면 테스트 진행을 도와드리겠습니다.

테스트 시나리오

  1. 기본 포스트백 수신 테스트: 정상적인 포스트백 처리 확인

  2. 중복 처리 테스트: 동일한 callback_id로 반복 테스트가 필요하신 경우, 개발팀에 요청해 주시면 중복 포스트백을 보내드립니다

  3. 서명 검증 테스트: 올바른 서명과 잘못된 서명 처리 확인

  4. 에러 처리 테스트: 잘못된 데이터 형식 처리 확인


보안 고려사항

  1. HTTPS 필수: 모든 포스트백 전송은 HTTPS 프로토콜을 사용합니다

  2. 서명 검증 필수: 모든 포스트백 요청에 대해 signed_value 검증을 반드시 수행해야 합니다

  3. Secret Key 관리: OS별/앱별 app_secret을 환경변수나 보안 저장소에 안전하게 분리 보관해야 합니다


문의사항

연동 관련 문의사항이 있으시면 아래 채널로 연락 주시기 바랍니다:

Last updated