# 연동 방법

와이즈트래커 데이터 수집 서버와 Server-to-server 연동을 위해서는 데이터를 보내고자 하는 서버에서 간단한 백 엔드 로직 구현을 통해 가능합니다.\
이 기능은 고객사의 서비스를 제공하는 서버에서 발생하는 이벤트 데이터를 와이즈트래커가 운영하는 데이터 수집 서버로 전송하는 기능을 제공하며, 이렇게 수집된 데이터는 와이즈트래커 대시보드에서 같이 데이터로서 보이게 됩니다.

## 1. 연동 규격

와이즈트래커가 데이터를 수신받기 위한 End-Point URL에 대한 기본 규격은 다음과 같습니다.

```javascript
curl -X POST https://trk.analytics.wisetracker.co.kr/s2s/v1/s2sDataRcv.do 
-H "Content-Type:application/json" 
-H "authToken:<SERVICE-ACCESS-TOKEN>" 
-d '{
        "SESSION":{ 
            "vtTz":  <unix time>,                               // required, current time  
            "_wtno": <SERVICE_NUMBER>,                          // required
            "advtId":"12D9505B-A48E-410A-8787-75BF39DA82F5",    // required, ADID/IDFA  
            "dSource":"SDK",                                    // required, "SDK" or "Website" ( Reserved text ) 
            "plat":"IOS"                                        // required, "AOS" or "IOS"     ( Reserved text ) 
        },
        ... 전송할 이벤트 데이터 작성 ...      
}'
```

## 2. 연동 규격에 대한 설명

* Http Method는 POST만 지원합니다.
* Request의 Header에는 반드시 authToken 정보를 반드시 추가하여 요청해야 합니다. 해당 정보는 대시보드에 로그인 후 "설정 > 메시지 설정" 화면에서 확인이 가능합니다.

<figure><img src="https://423922975-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-3102695190%2Fuploads%2FTtdT97GKiCS4MBJbf0ei%2Fimage.png?alt=media&#x26;token=14f45fac-92ca-4635-a07e-8ff69aa50bae" alt=""><figcaption></figcaption></figure>

* vtTz 항목은 이벤트 발생 시간을 unixtime 형태로 설정합니다.
* \_wtno 항목은 데이터를 보내는 서비스에 대한 식별 번호이며, 해당 정보는 대시보드에 로그인 후 "서비스 설정 > 어플리케이션 설정" 화면에서 확인이 가능합니다.
* advtId는 사용자 식별 코드로 ADID 또는 IDFA 정보를 사용합니다.
* dSource는 데이터의 구분 값을 나타내며, 해당 데이터가 앱 서비스와 연관된 데이터라면 "SDK"를 설정하고, 웹 사이트와 연관된 데이터라면 "Website"를 설정합니다.
* plat은 데이터가 발생한 플랫폼 정보를 나타내며, Android의 경우에는 "AOS", iOS의 경우에는 "IOS", Website의 경우에는 "PC"를 설정합니다.
* SESSION 데이터 그룹은 와이즈트래커 서버로 보내지는 데이터에 대한 식별 정보를 포함하는 것이며, 실제 전송할 이벤트에 대한 내용은 연동 이벤트 페이지에서 가이드를 참고하세요.

## 3. 연동 요청에 대한 서버 응답 ( Response )

와이즈트래커 데이터 수집 서버는 Server-to-server 연동에 의한 요청에 대하여 아래와 같은 응답 메시지를 제공합니다. Http method 불일치 시에는 아무런 응답을 내려주지 않습니다.

```javascript
// 정상 처리 
{"msg":"Data Receive Success","code":"RES001"}

// 처리 오류 ( required 항목 누락 또는 accessToken 불일치 등 기타 이유 )
{"msg":"Data Receive Error.","code":"RES003"}
```
