# 데이터 업로드

본격적으로 유저 데이터를 업로드하기 전, 유저 데이터 속성이 먼저 정의되어야 합니다. 아래 단계에 따라 진행해주세요! 🧭

## [**STEP 1. &#x20;**<mark style="color:red;">**유저 데이터 속성 정의 >**</mark>](#step-1)

## [**STEP 2. &#x20;**<mark style="color:red;">**유저 데이터 업로드 >**</mark>](#step-2)

***

*오디언스 > 유저관리 > 유저 리스트 >*`유저 데이터 관리`버튼을 눌러주세요.

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FhZHQQA2CUWcwr2feLpYV%2Fimage.png?alt=media&#x26;token=e8ad5081-235a-486b-82bb-3c2a2dd63d77" alt=""><figcaption></figcaption></figure>

***

#### **STEP 1.&#x20;**<mark style="color:red;">**유저 데이터를 연동하기 전, 유저 데이터로 관리할 속성을 먼저 정의합니다.**</mark>&#x20;

## **① 속성값 정의**

UD1 (유저속성1) 부터 UD6 (유저속성6) 까지 6개의 항목은 아래와 같이 사전 정의된 속성으로, 변경할 수 없습니다.

사전 정의 속성 이외의 추가 데이터항목이 필요한 경우, UD7 \~ UD50 속성을 정의하여 이용해주세요.

### 🧩사전정의 유저 속성

<table data-full-width="false"><thead><tr><th width="220">유저속성</th><th>값 (정의)</th></tr></thead><tbody><tr><td>UD1</td><td>회원명</td></tr><tr><td>UD2</td><td>성별</td></tr><tr><td>UD3</td><td>휴대폰번호</td></tr><tr><td>UD4</td><td>이메일</td></tr><tr><td>UD5</td><td>주소</td></tr><tr><td>UD6</td><td>상세주소</td></tr></tbody></table>

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FFpX65hpvCAeRP7DBmq6z%2Fimage.png?alt=media&#x26;token=d3c8b55a-505d-4163-b2e4-57ac462e7fad" alt="" width="563"><figcaption></figcaption></figure>

<table data-header-hidden><thead><tr><th width="185"></th><th></th></tr></thead><tbody><tr><td>속성 코드</td><td><p>사용할 속성코드를 선택합니다. </p><p>✅<code>UD1</code> ~ <code>UD6</code> 고정 / <code>UD50</code> 까지 이용 가능</p></td></tr><tr><td>속성 이름</td><td>수집할 유저 데이터 속성 항목을 입력합니다.<br>✅<code>UD1</code> ~ <code>UD6</code> 고정, 수정불가 / <code>UD7</code> ~ <code>UD50</code> 커스텀 이용 가능</td></tr><tr><td>데이터 보관 방법</td><td>개인정보에 해당하는 속성은 <code>암호화 적용 후 저장</code> 옵션을 선택합니다.<br>⚠️해당 옵션은 이후 변경이 불가합니다.<br>⚠️모든 유저 속성을 암호화 처리할 경우 데이터 처리 속도가 매우 느려질 수 있습니다.</td></tr></tbody></table>

{% hint style="warning" %}
한 번 저장한 유저 속성 데이터 항목은 이후 삭제 불가합니다. 반드시 확인 후 저장해주세요.
{% endhint %}

***

#### **STEP 2. 데이터 업로드**

{% hint style="success" %}
유저 데이터를 업로드하는 방법은 아래와 같습니다. 편한 방법을 선택하여 진행해주세요.

<mark style="background-color:green;">개발자 도움 필요하지 않음</mark>

* [x] [직접 등록](#id-2)
* [x] [CSV 파일 업로드](#id-3-csv)

<mark style="background-color:orange;">개발자 도움 필요</mark>

* [x] [API 연동 작업](#id-4-api)
* [x] 이벤트 호출 작업 (해당 방법에 대한 안내가 필요하다면, <tech@wisetracker.co.kr> 로 요청 부탁드립니다.)
  {% endhint %}

## **② 직접 등록**

*오디언스 > 유저 관리 >* `유저 데이터 관리` - `직접등록` 버튼을 클릭합니다.

유저 데이터를 입력한 후, `등록` 버튼을 눌러주세요.

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FmIQvNmBmV5QHJ7WTpbCS%2Fimage.png?alt=media&#x26;token=b09dad13-f14b-4544-a482-b1b179660cda" alt=""><figcaption></figcaption></figure>

## **③ CSV** 업로드 <a href="#csv-upload" id="csv-upload"></a>

1️⃣ *오디언스 > 유저 관리 >* `유저 데이터 관리` - `CSV 업로드` 버튼을 클릭하여 `CSV 템플릿 파일`을 다운로드합니다.

<div align="left"><figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FRt938WiNsB5Y2kLn9MUR%2Fimage.png?alt=media&#x26;token=fcfd4b42-6612-4815-9182-5d239c9e1bae" alt="" width="235"><figcaption></figcaption></figure></div>

{% file src="<https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FIUIJOqtRTedkvRYq2WWF%2FUserIntegrationData_template.csv?alt=media&token=f1fa9456-5576-48c7-8ed4-ab979c17c145>" %}

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FrvwhufNwfIock29sVSzl%2Fimage.png?alt=media&#x26;token=874dc794-cd7b-4094-b470-47f12d34e0b7" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
파일 열기 시 위 이미지처럼 '**UTF-8' 확인 후 로드**해주시길 바랍니다.
{% endhint %}

{% hint style="warning" %}
**템플릿 이용 유의사항**

* 템플릿 파일의 첫 열에는 반드시 회원 아이디(MBID)를 입력해야 합니다.
* 불필요한 열은 삭제 후 업로드할 수 있습니다.
* 유저 데이터 중 Macro1\~ Macro6까지는 데이터의 의미가 고정되어 있습니다. Macro7 부터 Macro50 까지는 사용자가 정의해서 사용 가능합니다. [표](#undefined)를 참고하여 각 Macro별 정확한 데이터가 업로드 되도록 합니다.

⚠️ 정확한 데이터가 입력되지 않을 시 오류가 발생할 수 있으니 주의해주세요.

⚠️ 메시지 발송시 속성을 변수로 사용할 수 있습니다. 해당 속성에 입력되지 않은 **유저의 데이터가 있다면 공란으로 발송될 수 있습니다.**

⚠️ <mark style="color:red;">**Macro3 ‘전화번호’ 열의 셀 서식은 반드시**</mark><mark style="color:red;">**&#x20;**</mark><mark style="color:red;">**`텍스트`**</mark><mark style="color:red;">**로 설정해주세요.**</mark>
{% endhint %}

2️⃣ **회원아이디 MBID를 포함한 템플릿의 열 개수**를 선택하고 CSV 파일을 업로드합니다.&#x20;

{% hint style="warning" %}

* 업로드할 템플릿의 열 개수와 일치하는지 반드시 확인해주세요.
* 파일명은 **영어**로 저장해주시기 바랍니다.
* 파일 저장 시 파일 형식은 아래와 같이 반드시 **CSV (쉼표로 분리)** 로 선택하여 주시기 바랍니다.

  ⚠️`CSV UTF-8(쉼표로 분리)` 로 설정 시 파일이 정상적으로 업로드되지 않을 수 있습니다.

<img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FtqZECnb2igXFeiJDPEfg%2Fimage.png?alt=media&#x26;token=8e4ed7c4-c0c1-4493-b0f1-ba31fca2b84b" alt="" data-size="original">
{% endhint %}

<mark style="color:blue;">**예시)**</mark>

아래의 파일을 업로드하는 경우, 열의 개수는 **`6개`** 로 선택합니다.

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2F9aX0w3cL9qla9d3dWbXD%2Fimage.png?alt=media&#x26;token=8b0c9287-4cc5-41c2-8551-c0952fc896b2" alt=""><figcaption></figcaption></figure>

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FxD7LoSSykOJcbqzGVfGP%2Fimage.png?alt=media&#x26;token=aefb78fe-f2eb-4f13-8223-69da9e603987" alt=""><figcaption></figcaption></figure>

3️⃣ 업로드한 파일의 데이터가 맞게 잘 들어갔는지 확인합니다.

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FUgYDyV9RY6QG2qyDSvJS%2Fimage.png?alt=media&#x26;token=873bad68-000c-4fb1-ab24-14ce956121fe" alt=""><figcaption></figcaption></figure>

➊ 회원아이디(MBID) 를 비롯하여 고정값인 Macro1 \~ Macro6 의 속성명은 변경할 수 없습니다. Macro7\~ Macro50 속성의 경우 변경이 가능합니다.

➋ 아래의 두 옵션 중 원하는 데이터 업로드 방식을 택하여 `Start sync` 버튼을 눌러주세요.

* [ ] 중복된 열은 업데이트 하고, 새로운 열은 추가 합니다.
* [ ] 기존의 모든 데이터를 삭제하고 업로드하는 데이터 기준으로 다시 생성합니다.

{% hint style="warning" %}
덮어쓰여져 훼손된 데이터는 복구해드리지 않으니 반드시 신중하게 진행해주세요 ! 👀
{% endhint %}

## ④ API 연동 <a href="#api" id="api"></a>

| METHOD            | POST                                                                                |
| ----------------- | ----------------------------------------------------------------------------------- |
| HOST              | <https://analytics.wisetracker.co.kr/console/v1/api/userdata/apiForUserDataSync.do> |
| Requset Parameter | \***profileNo**                                                                     |
| Request Header    | \***authToken**                                                                     |
| Requset Body      | \***JSON Object**                                                                   |

{% tabs %}
{% tab title=" profileNo " %}

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FnmtJDk2RXFGpj56r8Ypl%2FUntitled%20(51).png?alt=media&#x26;token=5800b1a3-174d-4bae-b652-96c41e95cb6e" alt=""><figcaption></figcaption></figure>

\[서비스 설정] → \[어플리케이션 설정]에서 서비스 번호 확인
{% endtab %}

{% tab title="authToken " %}

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2Fsnq1IPZ4vYnYAyWEoFsS%2FUntitled%20(52).png?alt=media&#x26;token=34df1cde-5225-49a2-9879-ec9e52f039e3" alt=""><figcaption></figcaption></figure>

\[서비스 설정] → \[메시지 설정]에서 accessToken 확인
{% endtab %}

{% tab title="JSON Object" %}

* mbid: 유저를 구분하는 고유(Unique)한 값입니다.

* userdata: 유저와 관련된 데이터입니다.
  {% endtab %}
  {% endtabs %}

* REQUEST 예시

```
POST <https://analytics.wisetracker.co.kr/console/v1/api/userdata/apiForUserDataSync.do?profileNo=00000>
authToken: Q5MXn+tcAH2xxxxxxxxxxxxabcdabacdabadcdeeee=

// 첫번째 예시, Macro#1(=UD1) 칼럼을 대상으로 데이터 추가
{
  "mbid": "hongkildong",
  "userdata": {
    "UD1": "홍길동",
  }
}

// 두번째 예시, Macro#1(=UD1), Macro#3(=UD3), Macro#7(=UD7)칼럼을 대상으로 데이터 추가
{
  "mbid": "testUserId9",
  "userdata": {
    "UD1": "hongkildong",
    "UD3": "01012345678",
    "UD7": "GOLD"
  }
}
```

* RESPONSE 예시

```
// 와이즈트래커 서버와 통신이 성공했다면, 실제 유저(User) 데이터 업로드 자체를 성공했는지와는 별개로 status와 success는 항상 200과 true가 반환됩니다. 
// 실제 성공 여부 또는 실패했다면 실패 이유는, message 키의 값을 확인해주시면 됩니다.

{
  "status": 200,
  "success": true,
  "details": "uri=/console/v1/api/userdata/apiForUserDataSync.do",
  "timestamp": "2023-07-28 13:23:53",
  "message": "유저 데이터가 업데이트 되었습니다.",
  "result": {},
  "resultCount": 0,
  "totalCount": 0,
  "lastPage": 0
}
```

## ⑤ 이벤트 호출 <a href="#userdatasync-event" id="userdatasync-event"></a>

유저를 추가하거나 값이 업데이트될 경우 다음의 이벤트를 이용합니다.&#x20;

다음의 이벤트를 이용해 유저를 삭제할 순 없습니다.

```jsx
// .dart 에서 호출 할 때 
Map userSync = {};
userSync["event"] = "w_user_data_sync";
userSync["userSyncData"] = {};
userSync["userSyncData"]["MBID"] = "aaa"; // setUser의 setMemberId와 같은 값
userSync["userSyncData"]["UD1"] = "aaa";
userSync["userSyncData"]["UD2"] = "aaa";
userSync["userSyncData"]["UD3"] = "aaa";
DOT.logEvent(userSync);

// webview 에서 호출 할 때
DotFlutterDataBridge.postMessage(JSON.stringify({
      method : "logEvent",
      data: {
              event : "w_user_data_sync",
              userSyncData: {
	              MBID : "aaa", // setUser의 setMemberId와 같은 값
	              UD1 : "aaa",
	              UD2 : "aaa",
	              UD3 : "aaa"
              }
      }
}));
```

***

##

## 유저 데이터 변경내역

최근 90일간 직접등록 또는 CSV 업로드 등 수동으로 유저 데이터를 업데이트한 내역에 대해 확인할 수 있습니다.

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FFMwUISIb6gxD5Aw46j0Q%2Fimage.png?alt=media&#x26;token=981aeab5-df51-432e-9acc-e68ab52da420" alt=""><figcaption></figcaption></figure>

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2F9MVvWclrsYNIXOGsX1kt%2Fimage.png?alt=media&#x26;token=7f99ebbf-eed0-48d9-9265-b42a546d4376" alt=""><figcaption></figcaption></figure>

***

## 유저데이터 초기화

시스템에 저장된 유저 데이터를 모두 삭제합니다.&#x20;

<figure><img src="https://4276253357-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_ZKcnBFmefw9Yfed6b-678254942%2Fuploads%2FCNhtE8QVxMNa7SNIIlhN%2Fimage.png?alt=media&#x26;token=66e680e2-240e-4a32-a778-e3bd9826de8d" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %} <mark style="color:red;">데이터 초기화 작업은 진행 중 취소할 수 없으며, 되돌릴 수 없으니 주의하여 사용해주시길 바랍니다.</mark>
{% endhint %}
