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

# S2S 리워드 콜백 API

> DARO 서버에서는 개발사가 설정한 외부 서버로 서버 간(S2S) 리워드 콜백을 보낼 수 있습니다. 이 콜백을 통해 앱 유저가 리워드 비디오 광고를 끝까지 시청했을 때 리워드를 받을 자격이 있다는 것을 알려드립니다. 이 기능은 리워드 비디오 광고를 제대로 보지 않고 부당하게 리워드를 받으려는 악의적인 사용자들로부터 서비스를 보호해줍니다.

## 소개

DARO 서버는 유저가 DARO를 통해 제공되는 리워드 비디오 광고 시청을 완료하면 개발사가 지정한 외부 서버로 콜백을 보냅니다. 이 콜백은 HTTP 또는 HTTPS GET 요청 형태로 전송됩니다. 광고 시청 완료 직후 콜백이 전송되지만, 네트워크 상황에 따라 최대 몇 분까지 지연될 수도 있어요. 임프레션 타임스탬프 파라미터를 사용하면 임프레션과 콜백 시간 사이의 차이를 쉽게 확인할 수 있습니다.

만약 개발사의 서버가 5초 이내에 응답하지 않으면 콜백 요청은 타임아웃 처리됩니다. 타임아웃이 발생하면 DARO는 최대 2회까지 콜백 전송을 재시도합니다.

<img src="https://mintcdn.com/delightroom-5a71a6a8/j3-znW7LKrbpP3mb/advanced/img/ad-unit-reward-callback_ko.png?fit=max&auto=format&n=j3-znW7LKrbpP3mb&q=85&s=53980e5e580a30469cd6aba0338d2cec" alt="Ad Unit Reward Callback" width="1156" height="868" data-path="advanced/img/ad-unit-reward-callback_ko.png" />

이 콜백 기능을 사용하려면 '광고 단위' 페이지에서 리워드 비디오 광고 단위의 '콜백 URL' 값을 설정해주세요.

## Callback URL 입력 예시

```
https://yourrewardedserver.com/rewards
```

## Callback URL 요청 예시

```
https://yourrewardedserver.com/rewards?ad_unit_id=fa1c6d2f-5016-467d-b54c-672299c7db4c&custom_data=yourcustomdata&key=b46635e51e76778ec15856720114c4edd6b6c3c7aeeb2a1b51dc346640cbca45&timestamp=1546300800&transaction_id=32ffe34770064d5c41c24deb3afd6a9fe072d2f423471851c869da6a9bc09ce3&user_id=youruserid
```

## 전송되는 쿼리 파라미터 상세 SPEC

콜백 URL에 다음 표의 파라미터가 모두 쿼리스트링으로 함께 전송됩니다. custom\_data 나 user\_id를 설정 하지 않은 경우 null로 전달 됩니다.

| 쿼리 파라미터 이름              | 설명                                                                                                                                    | 예시                                                               | 데이터 타입 |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------ |
| ad\_unit\_id            | 광고 단위 ID (UUID v4)                                                                                                                    | fa1c6d2f-5016-467d-b54c-672299c7db4c                             | String |
| custom\_data (optional) | 사용자 정의 데이터 (URL 인코딩됨). 문자열 크기를 8192자 미만으로 유지할 것을 권장합니다.                                                                               | my%20custom%20data                                               | String |
| key                     | 아래 과정을 통해 생성된 키와 비교를 통해 검증 합니다.<br />1. hmac sha256 '콜백 검증 키'\*를 넣고 초기화<br />2. transaction\_id 를 넣고 digest 생성<br />3. 16진수 (hex) 인코딩 | b46635e51e76778ec15856720114c4edd6b6c3c7aeeb2a1b51dc346640cbca45 | String |
| timestamp               | 광고 임프레션 시간의 타임스탬프 (정수, Epoch Time)                                                                                                    | 1546300800                                                       | Int    |
| transaction\_id         | 고유 트랜잭션 ID, 32자리 16진수                                                                                                                 | 0d0f748fcd0d4a4a9f6ac809216564b1                                 | String |
| user\_id (optional)     | 퍼블리셔가 정의한 사용자 ID (URL 인코딩됨); 최대 길이는 8192자                                                                                             | 7634657898                                                       | String |

* 발급된 콜백 검증 키는 [https://dashboard.daro.so/service/account](https://dashboard.daro.so/service/account) 에서 확인 가능합니다.

## 퍼블리셔 정의 User ID, Custom Data 세팅하기

아래 링크를 참조하여 각 OS에 맞게 클라이언트에 세팅해주세요. 세팅한 user\_id, custom\_data 값이 콜백 URL에 함께 전송됩니다. Optional한 값이며 설정하지 않은 경우 null로 전달됩니다.

* [Android (Kotlin) SDK 가이드 (링크)](https://guide.daro.so/ko/sdk-integration/android/ad-formats/rewarded#%EA%B4%91%EA%B3%A0-%EC%97%B0%EB%8F%99%ED%95%98%EA%B8%B0)
* [iOS (Swift) SDK 가이드 (링크)](https://guide.daro.so/ko/sdk-integration/ios_new/ad-formats/rewarded#%EC%B6%94%EA%B0%80-%EA%B8%B0%EB%8A%A5)
* [React Native SDK 가이드 (링크)](https://guide.daro.so/ko/sdk-integration/react-native/ad-formats/rewarded#%EB%A6%AC%EC%9B%8C%EB%93%9C-%EB%B9%84%EB%94%94%EC%98%A4-%EA%B4%91%EA%B3%A0-%EC%BD%9C%EB%B0%B1-%EB%A9%94%EC%84%9C%EB%93%9C)
