# 소개

마이비 애드체인을 사용하는 파트너는 서버 간(S2S) 연동을 통해 포인트 적립 및 사용자 정보 조회 기능을 구현해야 합니다.

***

## 포스트백 연동

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

```mermaid
sequenceDiagram
      participant U as 👤 유저
      participant P as 🏢 연동업체
      participant A as ⚡ 애드체인
      participant AD as 📺 광고상품

      U->>A: ① 광고 참여 클릭
      A->>AD: ② 광고 실행
      U->>AD: ③ 광고 화면으로 이동
      U->>AD: ④ 광고 미션 완료
      AD-->>A: ⑤ 완료 포스트백 전송
      A-->>P: ⑥ 지급 포스트백 전송 (포인트 지급 요청)
      Note over P: ⑦ 포인트 지급
      P-->>U: ⑧ 포인트 지급 알림
```

### 주요 내용

| 항목          | 설명                                                                 |
| ----------- | ------------------------------------------------------------------ |
| **방식**      | POST 요청 (JSON)                                                     |
| **필수 파라미터** | `callback_id`, `user_id`, `amount`, `campaign_key`, `signed_value` |
| **보안**      | HMAC-MD5 서명 검증                                                     |
| **중복 방지**   | `callback_id` 기반 중복 처리 필수                                          |
| **응답 형식**   | `{ "success": true, "message": "OK" }`                             |

### 구현 체크리스트

* [ ] 포스트백 수신 엔드포인트 구현
* [ ] HMAC-MD5 서명 검증 로직 구현
* [ ] callback\_id 기반 중복 적립 방지
* [ ] 포인트 적립 처리
* [ ] 푸시 알림 발송 (선택)

{% content-ref url="/pages/GN2ycOuqIOQGlfenGopz" %}
[포스트백 연동](/s2s/postback.md)
{% endcontent-ref %}

***

## User API 연동

마이비 애드체인에서 파트너 사용자 정보를 안전하게 조회하기 위한 API입니다. 파트너가 API 엔드포인트를 제공해야 합니다.

```mermaid
sequenceDiagram
      participant A as ⚡ 애드체인
      participant P as 🏢 연동업체
      participant DB as 🗄️ 연동업체 DB

      A->>P: ① 유저 정보 요청 (GET /users/{user_id})
      Note over A,P: Authorization 헤더에 토큰 포함
      P->>P: ② 토큰 검증
      P->>DB: ③ 유저 정보 조회
      DB-->>P: ④ 유저 데이터 반환
      P->>P: ⑤ AES-256-CBC 암호화
      P-->>A: ⑥ 암호화된 유저 정보 응답 (Base64)
      A->>A: ⑦ 복호화 후 사용
```

### 주요 내용

| 항목         | 설명                                          |
| ---------- | ------------------------------------------- |
| **방식**     | GET 요청                                      |
| **URL 패턴** | `https://api.publisher.com/users/{user_id}` |
| **인증**     | 파트너 제공 토큰 (Authorization 헤더)                |
| **암호화**    | AES-256-CBC (32자 키, 16바이트 IV)               |
| **응답 형식**  | Base64 인코딩된 암호화 데이터                         |

### 구현 체크리스트

* [ ] 사용자 정보 조회 API 엔드포인트 구현
* [ ] Authorization 헤더 검증
* [ ] AES-256-CBC 암호화 로직 구현
* [ ] 사용자 정보 응답 (이름, 잔액 등)
* [ ] 에러 응답 처리 (404, 401, 500)

{% content-ref url="/pages/7kqeP0uXOeYe5i4thtXv" %}
[유저 정보 조회](/s2s/user-api.md)
{% endcontent-ref %}

***

## 연동 진행 순서

1. **담당자 협의**: 마이비 애드체인 담당자와 요구사항 확인
2. **시크릿 키 수신**: 포스트백 서명 검증용 시크릿 키 수신
3. **암호화 키 수신**: User API용 32자 암호화 키 수신
4. **개발 환경 구축**: 테스트 환경에서 API 구현
5. **연동 테스트**: 마이비 애드체인과 함께 테스트 진행
6. **라이브 배포**: 프로덕션 환경 적용


---

# Agent Instructions: 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:

```
GET https://adchain-doc.1self.world/s2s/publisher-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
