---
# System prepended metadata

title: 廣告

---

# 廣告

---
API 清單
- 共用[APP/WEB]
  - [廣告版位列表](#廣告版位列表)
- 廣告管理[WEB]
  - [廣告商列表](#廣告商列表)
  - [廣告類別預設版位列表](#廣告類別預設版位列表)
  - [取得上傳網址](#取得上傳網址)
  - [廣告管理列表](#廣告管理列表)
  - [取得單一廣告管理明細](#取得單一廣告管理明細)
  - [新增廣告](#新增廣告)
  - [編輯廣告](#編輯廣告)
  - [編輯廣告下架日期](#編輯廣告下架日期)
  - [刪除廣告](#刪除廣告)
  - [取得廣告統計](#取得廣告統計)
- 廣告[APP]
  - [廣告投放](#廣告投放)
  - [取得廣告明細](#取得廣告明細)
  - [廣告點擊](#廣告點擊)
  - [廣告觸及](#廣告觸及)
  - [取得會員專屬廣告列表](#取得會員專屬廣告列表)
---


## 廣告版位列表

```url
GET /ads/positions
```

#### Request
 欄位 | 型態  | 必填 | 預設 | 說明 
 ---|---|---|---|---


```javascript

```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | --- 
 id | string | 版位id, <br/>MY_MEMBER_ONLY:我的-會員專屬<br/>MY_HEALTH_EDU:我的-防疫衛教<br/>MY_HEALTH_ANALYSIS:我的-健康分析<br/>MY_CONSULT:我的-諮詢回覆<br/>MY_REWARD:我的-點收記錄<br/>HEALTH_MEASURE:健康-量測分析<br/>HEALTH_SPORT:健康-運動分析<br/>HEALTH_DIET:健康-飲食分析<br/>HEALTH_REPORT:健康-健康報告<br/>HEALTH_TREND:健康-健康趨勢<br/>HEALTH_WOUND:健康-傷口記錄
 description | string | 版位名稱(說明) 
 

```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "description": "我的-會員專屬",
                "id": "MY_MEMBER_ONLY"
            },
            {
                "description": "我的-防疫衛教",
                "id": "MY_HEALTH_EDU"
            },
            ...
        ]
    }
}
```

## 廣告商列表

```url
GET /ads-mgmt/ad-tenant-list
```

#### Request
 欄位 | 型態  | 必填 | 預設 | 說明 
 ---|---|---|---|---

```javascript

```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | --- 
 id | string | 廣告商租戶id
 name | string | 廣告商租戶名稱
 tenantType | string | 租戶類別, DEALER: 經銷單位, HOSPITAL:醫療機構, WMT:緯創醫學, BUSINESS:企業客戶, AD:廣告商
 industryTypeList | string array | 租戶業別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他

```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "id": "7daf1fc2-e7e6-4642-90a8-ff11f0febbe2",
                "name": "賣廣告的",
                "tenantType": "AD",
                "industryTypeList": [
                    "GYM",
                    "HEALTH_SUPPLEMENT"
                ]
            },
            {
                "id": "71466c25-e4a5-46df-bdb0-46ed44fcd5cc",
                "name": "opo2",
                "tenantType": "BUSINESS",
                "industryTypeList": [
                    "OTHER"
                ]
            },
            ...
        ]
    }
}
```

## 廣告類別預設版位列表

```url
GET /ads-mgmt/category-positions
```

#### Request
 欄位 | 型態  | 必填 | 預設 | 說明 
 ---|---|---|---|---

```javascript

```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | --- 
 category | string | 廣告類別, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 positions | string array | 版位id列表, 

```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "positions": [
                    "MY_HEALTH_EDU",
                    "MY_HEALTH_ANALYSIS",
                    "HEALTH_MEASURE",
                    "HEALTH_REPORT",
                    "HEALTH_TREND"
                ],
                "category": "HEALTH_CHECK_CENTER"
            },
            ...
        ]
    }
}
```


## 取得上傳網址

```url
POST /ads-mgmt/get-upload-url
```
*  新增/編輯廣告時用來上傳縮圖, 廣告圖/影片, 廣告檔案(PDF)


#### Request

 欄位 | 型態  | 必填 | 預設 | 說明 
 ---|---|---|---|---
 isMultipart | boolean | Y | false | 是否使用分段上傳
 isThumbnail | boolean | Y | false | 上傳的是否為縮圖
 fileName    | String | Y | | 檔名，不包含副檔名，限制最多50字
 fileType    | String | Y | | 副檔名, 限制最多10字
 totalPart   | int    | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 總分塊數量，不可小於2
 parts       | Array [...part] | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | part 資訊 

* part(Object)

 欄位 | 型態  | 必填 | 預設 | 說明 
 ---|---|---|---|---
 chunkSize | int | Y | | 該 chunk 的大小, bytes
 md5 | string | Y | | 該 part 的 md5
 part | int | Y | | part number, 第幾塊 chunk


```javascript
// 單檔
{
    "isMultipart": false,
    "isThumbnail": false,
    "fileName": "ad_bg_jp",
    "fileType": "png"
}
// 分塊上傳
{
    "isMultipart": true,
    "isThumbnail": false,
    "fileName": "giphy (7)",
    "fileType": "mp4",
    "totalPart": 2,
    "parts": [
    	{
    		"chunkSize": 5242880,
    		"md5": "5AACA89868CD486D81192221CF9F9415",
    		"part": 1
    	},
    	{
    		"chunkSize": 3145728,
    		"md5": "5AACA89868CD486D81192221CF9F9415",
    		"part": 2
    	}
    ]
}
```

####  Response
* data
 
 欄位 | 型態 | 說明 
 ---  | --- | ---
 objectKey | string | storage 中的 objectKey, **unique** 
 uploadId | string | 識別該次上傳的 uploadId 
 fileName | string | 名稱 
 fileType | string | 副檔名 
 url | string | 單檔上傳的時候，才會回傳該 url, 時效 3600 秒
 parts | [...part] | multipart上傳各part的url

* part(Object)
 
 欄位 | 型態 | 說明 
 ---  | --- | ---
 chunkSize | int | 該 chunk 的大小, bytes
 md5 | string | 該 part 的 md5
 part | int | part number, 第幾塊 chunk
 url | string | 可上傳的 url, 時效 3600 秒

```javascript
// HttpStatus:422, 上傳的檔案類型不允許
{
    "errorMsg": "SERVICE_ERROR.ADS_MGMT_UPLOAD_FILE_TYPE_NOT_ALLOWED",
    "httpCode": 422
}

// HttpStatus: 200
// 單檔
{
    "httpCode": 200,
    "result": {
        "data": {
            "objectKey": "ads/9f9de11b-12b9-4964-bae8-3233e9da065b.png",
            "uploadId": "11becd09-7571-4b0d-b8ee-cb3f09f66cf0",
            "fileName": "ad_bg_jp",
            "fileType": "png",
	        // 單檔 才有 url
            "url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh/ads%2F9f9de11b-12b9-4964-bae8-3233e9da065b.png?temp_url_sig=e61d9e721d860294bde4d0151e111ebf8ed57ed7&temp_url_expires=1554114780"
        }
    }
}
// 分塊上傳
{
    "httpCode": 200,
    "result": {
        "data": {
            "objectKey": "ads/f76adf26-1e22-4b18-980d-b9a68efc5171.mp4",
            "uploadId": "53fde368-43d9-455f-a610-62091fc30be6",
            "fileName": "giphy (7)",
            "fileType": "mp4",
            "parts": [
                {
                    "chunkSize": 5242880,
                    "md5": "5AACA89868CD486D81192221CF9F9415",
                    "part": 1,
                    "url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/ads%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F1?temp_url_sig=796c52b00f75b62be658533b2fadbc7f14381e36&temp_url_expires=1554263771"
                },
                {
                    "chunkSize": 3145728,
                    "md5": "5AACA89868CD486D81192221CF9F9415",
                    "part": 2,
                    "url": "http://192.168.100.239:12345/v1/AUTH_test/kmuh_segments/ads%2Ff76adf26-1e22-4b18-980d-b9a68efc5171.mp4%2F2?temp_url_sig=ad71de81dfbcd94bce4a091f2630c6f1373ff3cd&temp_url_expires=1554263771"
                }
            ]
        }
    }
}
```


## 廣告管理列表

```url
POST /ads-mgmt/list
```

#### Request
* query(查詢條件json)
 
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 onDateStart | string | | | 上架日期查詢起日, 格式為YYYY-MM-DD
 onDateEnd | string | | | 上架日期查詢迄日, 格式為YYYY-MM-DD
 industryType | string | | | 廣告商業別, 若查詢全部請帶入空字串"", HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 status | string | | | 廣告上架狀態, 若查詢全部請帶入空字串"", NONE:未上架, ON:上架中, OFF:已下架
 paymentStatus | string | | | 付費狀態, 若查詢全部請帶入空字串"", NONE:不需計費, UNPAID:未付費, PAID:已付費
 name | string | | | 關鍵字, 查詢廣告標題或廣告商名稱
 positions | string array | | | 廣告版位id列表, 若查詢全部請帶入空陣列[] 
 
* pagination(分頁json)
 
 欄位 | 型態  | 必填 | 預設 | 說明
 ---|---|---|---|---
 current | int | | 1 | 當前頁數 
 pageSize | int | | 10 | 每頁結果數量，-1 為顯示所有
 
* sorter(排序json), 預設是用更新時間降序排列
 
 欄位 | 型態  | 必填 | 預設 | 說明
 ---|---|---|---|--- 
 field | string | | updateTime | 排序欄位,可排序欄位有updateTime, tenantName, onDate, offDate, paymentStatus, status 
 order | string | | desc | 生序或降序 

```javascript
{
    "query": {
        "onDateStart": null,
        "onDateEnd": null,
        "industryType": "",
        "status": null,
        "paymentStatus": null,
        "name": null,
        "positions":[
            "HEALTH_MEASURE",
            "MY_REWARD"
        ]
    },
    "pagination": {
        "current": 1,
        "pageSize": 10
    },
    "sorter": {
        "field": "updateTime",
        "order": "desc"
    }
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 
 tenantId | string | 廣告商租戶id
 tenantName | string | 廣告商租戶名稱
 title | string | 廣告標題
 adType | string | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | storage中的縮圖objectKey
 objectKey | string | adType為FILE或IMAGE時, 表示storage 中的 objectKey, adType為URL時, 表示連結的網址 
 contentType | string | MineType 格式 
 content | string | adType為CONTENT時所填入的文字內容
 onDate | Date | 上架日期
 offDate | Date | 下架日期
 exposureLevel | string | 曝光等級, NORMAL:一般, HIGH:高
 paymentStatus | string | 付費狀況, NONE:不需計費, UNPAID:未付費, PAID:已付費
 status | string | 上架狀態, NONE:未上架, ON:上架中, OFF:已下架
 thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
 url | string | adType為FILE或IMAGE時,可 download 的 url, 時效 3600 秒, adType為URL時, 表示連結的網址
 industryTypeList | json array | 廣告商租戶的業別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 categoryList | json array | 廣告類別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 positionList | string array | 廣告版位列表
 createTime | int | 建立時間
 updateTime | int | 最後更新時間 
 
* json of industryTypeList/categoryList
 
 欄位 | 型態 | 說明 
 ---  | --- | ---
 category | string | 廣告/業別 id 
 description | string | 廣告/業別名稱(說明)

```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
                "tenantId": "7daf1fc2-e7e6-4642-90a8-ff11f0febbe2",
                "tenantName": "賣廣告的",
                "title": "TEST-AD-2",
                "adType": "URL",
                "thumbnailObjectKey": "abcd",
                "objectKey": "https://www.google.com",
                "onDate": 1630425600000,
                "offDate": 1635609600000,
                "exposureLevel": "NORMAL",
                "paymentStatus": "UNPAID",
                "status": "NONE",
                "thumbnailUrl": null,
                "url": null,
                "industryTypeList": [
                    {
                        "category": "GYM",
                        "description": "健身房"
                    },
                    {
                        "category": "HEALTH_SUPPLEMENT",
                        "description": "保健品業者"
                    }
                ],
                "categoryList": [
                    {
                        "category": "GYM",
                        "description": "健身房"
                    },
                    {
                        "category": "HEALTH_SUPPLEMENT",
                        "description": "保健品業者"
                    }
                ],
                "positionList": [
                    "HEALTH_MEASURE",
                    "MY_REWARD"
                ]
            }
        ],
        "pagination": {
            "current": 1,
            "pageSize": 10,
            "total": 1
        },
        "sorter": {
            "field": "updateTime",
            "order": "desc"
        },
        "total": 1
    }
}
```


## 取得單一廣告管理明細

```url
POST /ads-mgmt/info
```

#### Request
 
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 id | string | Y | | 廣告id 
 
```javascript
{
    "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2"
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 
 tenantId | string | 廣告商租戶id
 tenantName | string | 廣告商租戶名稱
 title | string | 廣告標題
 adType | string | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | storage中的縮圖objectKey
 objectKey | string | adType為FILE或IMAGE時, 表示storage 中的 objectKey, adType為URL時, 表示連結的網址 
 contentType | string | MineType 格式 
 content | string | adType為CONTENT時所填入的文字內容
 onDate | Date | 上架日期
 offDate | Date | 下架日期
 exposureLevel | string | 曝光等級, NORMAL:一般, HIGH:高
 paymentStatus | string | 付費狀況, NONE:不需計費, UNPAID:未付費, PAID:已付費
 status | string | 上架狀態, NONE:未上架, ON:上架中, OFF:已下架
 thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
 url | string | adType為FILE或IMAGE時,可 download 的 url, 時效 3600 秒, adType為URL時, 表示連結的網址
 industryTypeList | json array | 廣告商租戶的業別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 categoryList | json array | 廣告類別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 positionList | string array | 廣告版位列表
 createTime | int | 建立時間
 updateTime | int | 最後更新時間 
 
* json of industryTypeList/categoryList
 
 欄位 | 型態 | 說明 
 ---  | --- | ---
 category | string | 廣告/業別 id 
 description | string | 廣告/業別名稱(說明)

```javascript
// HttpStatus:400, 資料不存在
{
    "errorMsg": "API_ERROR.NOT_EXIST",
    "httpCode": 400
}

// HttpStatus:200
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
            "tenantId": "7daf1fc2-e7e6-4642-90a8-ff11f0febbe2",
            "tenantName": "賣廣告的",
            "title": "TEST-AD-2",
            "adType": "URL",
            "thumbnailObjectKey": "abcd",
            "objectKey": "https://www.google.com",
            "onDate": 1630425600000,
            "offDate": 1635609600000,
            "exposureLevel": "NORMAL",
            "paymentStatus": "UNPAID",
            "status": "NONE",
            "thumbnailUrl": null,
            "url": "https://www.google.com",
            "industryTypeList": [
                {
                    "category": "GYM",
                    "description": "健身房"
                },
                {
                    "category": "HEALTH_SUPPLEMENT",
                    "description": "保健品業者"
                }
            ],
            "categoryList": [
                {
                    "category": "GYM",
                    "description": "健身房"
                },
                {
                    "category": "HEALTH_SUPPLEMENT",
                    "description": "保健品業者"
                }
            ],
            "positionList": [
                "HEALTH_MEASURE",
                "HEALTH_SPORT",
                "MY_HEALTH_EDU",
                "MY_REWARD"
            ]
        }
    }
}
```


## 新增廣告

```url
POST /ads-mgmt/add
```

#### Request
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 tenantId | string | Y | | 廣告商租戶id
 title | string | Y | | 廣告標題, 限制最多30字
 adType | string | Y | | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | Y | | 縮圖objectKey, 先取得縮圖上傳網址並上傳成功，取其 objectKey。
 objectKey | string | **Y**(adType= URL/FILE/IMAGE) | | 若adType為FILE/IMAGE, 先取得上傳網址並上傳成功，取其 objectKey。若adType為URL則直接存放URL網址 
 contentType | string |  | | MineType
 content | string | **Y**(adType=CONTENT) | | adType為CONTENT時所填入的文字內容, 限制最多500字
 onDate | string | | | 上架日期, 日期格式為YYYY-MM-DD
 offDate | string | | | 下架日期, 日期格式為YYYY-MM-DD
 exposureLevel | string | Y | | 曝光等級, NORMAL:一般, HIGH:高
 paymentStatus | string | Y | | 付費狀況, NONE:不需計費, UNPAID:未付費, PAID:已付費
 categoryList | string array | Y | | 廣告類別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 positionList | string array | Y | | 廣告版位列表
 isMultipart | boolean | N | | adType=FILE/IMAGE時, 上傳的檔案是否分塊上傳，預設為 false
 totalPart | int | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 總分塊數量，不可小於2
 uploadId | string | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 從 /ads-mgmt/get-upload-url 取得的 uploadId 
 isThumbnailMultipart | boolean | N | | 縮圖上傳時是否分塊上傳，預設為 false
 thumbnailTotalPart | int | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 縮圖上傳的總分塊數量，不可小於2
 thumbnailUploadId | string | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 從 /ads-mgmt/get-upload-url 取得的 uploadId

```javascript
{
    "tenantId": "7daf1fc2-e7e6-4642-90a8-ff11f0febbe2",
    "title": "TEST-AD-1",
    "adType": "URL",
    "thumbnailObjectKey": "ads/thumbnail/1edd53d8-329b-49f3-bd36-8dc89bfad05c.jpg",
    "objectKey": "https://www.google.com",
    "contentType": null,
    "content": null,
    "onDate": "2021-08-28",
    "offDate": null,
    "exposureLevel": "NORMAL",
    "paymentStatus": "NONE",
    "categoryList": [
        "GYM",
        "HEALTH_SUPPLEMENT"
    ],
    "positionList": [
        "MY_MEMBER_ONLY",
        "MY_HEALTH_EDU",
        "MY_HEALTH_ANALYSIS",
        "MY_REWARD",
        "HEALTH_MEASURE",
        "HEALTH_SPORT",
        "HEALTH_REPORT",
        "HEALTH_TREND"
    ],
    "isMultipart": false,
    "totalPart": null,
    "uploadId": null,
    "isThumbnailMultipart": false,
    "thumbnailTotalPart": null,
    "thumbnailUploadId": null
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 
 tenantId | string | 廣告商租戶id
 title | string | 廣告標題
 adType | string | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | storage中的縮圖objectKey
 objectKey | string | adType為FILE或IMAGE時, 表示storage 中的 objectKey, adType為URL時, 表示連結的網址 
 contentType | string | MineType 格式 
 content | string | adType為CONTENT時所填入的文字內容
 onDate | Date | 上架日期
 offDate | Date | 下架日期
 exposureLevel | string | 曝光等級, NORMAL:一般, HIGH:高
 paymentStatus | string | 付費狀況, NONE:不需計費, UNPAID:未付費, PAID:已付費
 status | string | 上架狀態, NONE:未上架, ON:上架中, OFF:已下架
 createTime | int | 建立時間
 updateTime | int | 最後更新時間 

```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
            "tenantId": "7daf1fc2-e7e6-4642-90a8-ff11f0febbe2",
            "title": "TEST-AD-1",
            "adType": "URL",
            "thumbnailObjectKey": "abcd",
            "objectKey": "https://www.google.com",
            "onDate": 1630425600000,
            "exposureLevel": "NORMAL",
            "paymentStatus": "NONE",
            "status": "NONE",
            "createTime": 1630549208878,
            "updateTime": 1630549208878,
            "creator": "a1131b35-dab0-4593-899b-9485356e02d4"
        }
    }
}
```

## 編輯廣告

```url
POST /ads-mgmt/update
```

#### Request
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 id | string | Y | | 廣告id
 tenantId | string | Y | | 廣告商租戶id
 title | string | Y | | 廣告標題, 限制最多30字
 adType | string | Y | | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | Y | | 縮圖objectKey, 先取得縮圖上傳網址並上傳成功，取其 objectKey。
 objectKey | string | **Y**(adType= URL/FILE/IMAGE) | | 若adType為FILE/IMAGE, 先取得上傳網址並上傳成功，取其 objectKey。若adType為URL則直接存放URL網址 
 contentType | string |  | | MineType
 content | string | **Y**(adType=CONTENT) | | adType為CONTENT時所填入的文字內容, 限制最多500字
 onDate | string | | | 上架日期, 日期格式為YYYY-MM-DD
 offDate | string | | | 下架日期, 日期格式為YYYY-MM-DD
 exposureLevel | string | Y | | 曝光等級, NORMAL:一般, HIGH:高
 paymentStatus | string | Y | | 付費狀況, NONE:不需計費, UNPAID:未付費, PAID:已付費
 categoryList | string array | Y | | 廣告類別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 positionList | string array | Y | | 廣告版位列表
 isMultipart | boolean | N | | adType=FILE/IMAGE時, 上傳的檔案是否分塊上傳，預設為 false
 totalPart | int | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 總分塊數量，不可小於2
 uploadId | string | **N** (isMultipart=false)<br>**Y** (isMultipart=true) | | 從 /ads-mgmt/get-upload-url 取得的 uploadId 
 isThumbnailMultipart | boolean | N | | 縮圖上傳時是否分塊上傳，預設為 false
 thumbnailTotalPart | int | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 縮圖上傳的總分塊數量，不可小於2
 thumbnailUploadId | string | **N** (isThumbnailMultipart=false)<br>**Y** (isThumbnailMultipart=true) | | 從 /ads-mgmt/get-upload-url 取得的 uploadId

```javascript
{
    "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
    "tenantId": "7daf1fc2-e7e6-4642-90a8-ff11f0febbe2",
    "title": "TEST-AD-1",
    "adType": "URL",
    "thumbnailObjectKey": "ads/thumbnail/1edd53d8-329b-49f3-bd36-8dc89bfad05c.jpg",
    "objectKey": "https://www.google.com",
    "contentType": null,
    "content": null,
    "onDate": "2021-08-28",
    "offDate": null,
    "exposureLevel": "NORMAL",
    "paymentStatus": "NONE",
    "categoryList": [
        "GYM",
        "HEALTH_SUPPLEMENT"
    ],
    "positionList": [
        "MY_MEMBER_ONLY",
        "MY_HEALTH_EDU",
        "MY_HEALTH_ANALYSIS",
        "MY_REWARD",
        "HEALTH_MEASURE",
        "HEALTH_SPORT",
        "HEALTH_REPORT",
        "HEALTH_TREND"
    ],
    "isMultipart": false,
    "totalPart": null,
    "uploadId": null,
    "isThumbnailMultipart": false,
    "thumbnailTotalPart": null,
    "thumbnailUploadId": null
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 
 tenantId | string | 廣告商租戶id
 title | string | 廣告標題
 adType | string | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | storage中的縮圖objectKey
 objectKey | string | adType為FILE或IMAGE時, 表示storage 中的 objectKey, adType為URL時, 表示連結的網址 
 contentType | string | MineType 格式 
 content | string | adType為CONTENT時所填入的文字內容
 onDate | Date | 上架日期
 offDate | Date | 下架日期
 exposureLevel | string | 曝光等級, NORMAL:一般, HIGH:高
 paymentStatus | string | 付費狀況, NONE:不需計費, UNPAID:未付費, PAID:已付費
 status | string | 上架狀態, NONE:未上架, ON:上架中, OFF:已下架
 createTime | int | 建立時間
 updateTime | int | 最後更新時間 

```javascript
// HttpStatus:400, 資料不存在
{
    "errorMsg": "API_ERROR.NOT_EXIST",
    "httpCode": 400
}

// HttpStatus:422, 不允許編輯已下架的廣告
{
    "errorMsg": "SERVICE_ERROR.ADS_MGMT_UPDATE_OFF_AD_NOT_ALLOWED",
    "httpCode": 422
}

// HttpStatus:200
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
            "tenantId": "7daf1fc2-e7e6-4642-90a8-ff11f0febbe2",
            "title": "TEST-AD-1",
            "adType": "URL",
            "thumbnailObjectKey": "abcd",
            "objectKey": "https://www.google.com",
            "onDate": 1630425600000,
            "exposureLevel": "NORMAL",
            "paymentStatus": "NONE",
            "status": "NONE",
            "createTime": 1630549208878,
            "updateTime": 1630549208878,
            "creator": "a1131b35-dab0-4593-899b-9485356e02d4"
        }
    }
}
```


## 編輯廣告下架日期

```url
POST /ads-mgmt/update-off
```

#### Request
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 id | string | Y | | 廣告id
 offDate | string | | | 下架日期, 日期格式為YYYY-MM-DD
 
```javascript
{
    "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
    "offDate": "2021-10-30"
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 
 tenantId | string | 廣告商租戶id
 title | string | 廣告標題
 adType | string | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | storage中的縮圖objectKey
 objectKey | string | adType為FILE或IMAGE時, 表示storage 中的 objectKey, adType為URL時, 表示連結的網址 
 contentType | string | MineType 格式 
 content | string | adType為CONTENT時所填入的文字內容
 onDate | Date | 上架日期
 offDate | Date | 下架日期
 exposureLevel | string | 曝光等級, NORMAL:一般, HIGH:高
 paymentStatus | string | 付費狀況, NONE:不需計費, UNPAID:未付費, PAID:已付費
 status | string | 上架狀態, NONE:未上架, ON:上架中, OFF:已下架
 createTime | int | 建立時間
 updateTime | int | 最後更新時間 

```javascript
// HttpStatus:400, 資料不存在
{
    "errorMsg": "API_ERROR.NOT_EXIST",
    "httpCode": 400
}

// HttpStatus:422, 不允許編輯已下架的廣告
{
    "errorMsg": "SERVICE_ERROR.ADS_MGMT_UPDATE_OFF_AD_NOT_ALLOWED",
    "httpCode": 422
}

// HttpStatus:200
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
            "tenantId": "7daf1fc2-e7e6-4642-90a8-ff11f0febbe2",
            "title": "TEST-AD-1",
            "adType": "URL",
            "thumbnailObjectKey": "abcd",
            "objectKey": "https://www.google.com",
            "onDate": 1630425600000,
            "exposureLevel": "NORMAL",
            "paymentStatus": "NONE",
            "status": "NONE",
            "createTime": 1630549208878,
            "updateTime": 1630549208878,
            "creator": "a1131b35-dab0-4593-899b-9485356e02d4"
        }
    }
}
```


## 刪除廣告

```url
POST /ads-mgmt/delete
```

#### Request
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 id | string | Y | | 廣告id
 
```javascript
{
    "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2"
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 count | int | 刪除筆數, > 0 表示成功刪除

```javascript
// HttpStatus:400, 資料不存在
{
    "errorMsg": "API_ERROR.NOT_EXIST",
    "httpCode": 400
}

// HttpStatus:422, 不允許刪除廣告(上架中, 已下架)
{
    "errorMsg": "SERVICE_ERROR.ADS_MGMT_DELETE_AD_NOT_ALLOWED",
    "httpCode": 422
}

// HttpStatus:200
{
    "httpCode": 200,
    "result": {
        "data": {
            "count": 1
        }
    }
}
```

## 取得廣告統計

```url
POST /ads-mgmt/ad/statistics
```

#### Request
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 adId | string | Y |  | 廣告id
 position | string |  |  | 廣告版位
 

```javascript
{
    "adId": "ddb19c99-dd16-46b9-883e-92446070761b",
    "position": "MY_MEMBER_ONLY"
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 adInfo | json | 廣告info json
 reachInfo | json | 廣告曝光分析json
 clickInfo | json | 廣告點擊分析json

* adInfo (廣告info json)

 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 
 tenantId | string | 廣告商租戶id
 tenantName | string | 廣告商租戶名稱
 title | string | 廣告標題
 adType | string | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | storage中的縮圖objectKey
 objectKey | string | adType為FILE或IMAGE時, 表示storage 中的 objectKey, adType為URL時, 表示連結的網址 
 contentType | string | MineType 格式 
 content | string | adType為CONTENT時所填入的文字內容
 onDate | Date | 上架日期
 offDate | Date | 下架日期
 exposureLevel | string | 曝光等級, NORMAL:一般, HIGH:高
 paymentStatus | string | 付費狀況, NONE:不需計費, UNPAID:未付費, PAID:已付費
 status | string | 上架狀態, NONE:未上架, ON:上架中, OFF:已下架
 thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
 url | string | adType為FILE或IMAGE時,可 download 的 url, 時效 3600 秒, adType為URL時, 表示連結的網址
 industryTypeList | json array | 廣告商租戶的業別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 categoryList | json array | 廣告類別列表, HEALTH_CHECK_CENTER:健檢中心, GYM:健身房, CLINIC:診所, REGIONAL_HOSPITAL:區域醫院, MEDICAL_CENTER:醫學中心, HEALTH_SUPPLEMENT:保健品業者, MEDICAL_DEVICE:醫療器材業者, CATERING:餐飲業者, CONSUMABLES:耗材業者, OTHER:其他
 positionList | string array | 廣告版位列表
 createTime | int | 建立時間
 updateTime | int | 最後更新時間 
 
* json of industryTypeList/categoryList
 
 欄位 | 型態 | 說明 
 ---  | --- | ---
 category | string | 廣告/業別 id 
 description | string | 廣告/業別名稱(說明)
 
* reachInfo (活動曝光分析json)

 欄位 | 型態 | 說明 
 ---  | --- | ---
 totalCount | int | 總曝光人數
 totalTimes | int | 總曝光人次
 totalMaleCount | int | 總男性曝光人數
 totalFemaleCount | int | 總女性曝光人數
 totalMaleTimes | int | 總男性曝光人次
 totalFemaleTimes | int | 總女性曝光人次
 totalMaleCountRate | double | 總男性人數佔比
 totalFemaleCountRate | double | 總女性人數佔比
 totalMaleTimesRate | double | 總男性人次佔比
 totalFemaleTimesRate | double | 總女性人次佔比
 details | json array | 年齡統計 json array
 
* clickInfo (活動點擊分析json)

 欄位 | 型態 | 說明 
 ---  | --- | ---
 totalCount | int | 總點擊人數
 totalTimes | int | 總點擊人次
 totalMaleCount | int | 總男性點擊人數
 totalFemaleCount | int | 總女性點擊人數
 totalMaleTimes | int | 總男性點擊人次
 totalFemaleTimes | int | 總女性點擊人次
 totalMaleCountRate | double | 總男性人數佔比
 totalFemaleCountRate | double | 總女性人數佔比
 totalMaleTimesRate | double | 總男性人次佔比
 totalFemaleTimesRate | double | 總女性人次佔比
 clickRate | double | 點擊率, 點擊率 = 點擊人數/曝光人數
 details | json array | 年齡統計 json array
 
* details (json array of reachInfo, clickInfo, registerInfo, signInInfo)

 欄位 | 型態 | 說明 
 ---  | --- | ---
 ageLevel | string | 年齡level
 label | string | 年齡區間顯示(標X軸)
 maleCount | int | 男性人數
 femaleCount | int | 女性人數
 maleTimes | int | 男性人次
 femaleTimes | int | 女性人次


```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "adInfo": {
                "id": "ddb19c99-dd16-46b9-883e-92446070761b",
                "tenantId": "858b7fbb-3ba0-4d49-9882-c893a1ef07dc",
                "tenantName": "緯緯醫學",
                "title": "no會員",
                "adType": "CONTENT",
                "thumbnailObjectKey": "ads/5ce7968b-f7ad-41cd-ab40-6ca139859062.jpg",
                "objectKey": "ads/5ce7968b-f7ad-41cd-ab40-6ca139859062.jpg",
                "content": "除了會員 全都有",
                "onDate": 1630425600000,
                "offDate": 1633017600000,
                "exposureLevel": "NORMAL",
                "paymentStatus": "NONE",
                "status": "OFF",
                "createTime": 1631004064206,
                "updateTime": 1633109400068,
                "thumbnailUrl": "http://10.31.104.23/swift/v1/AUTH_test/kmuh/ads/5ce7968b-f7ad-41cd-ab40-6ca139859062.jpg?temp_url_sig=c961a97edc05d156c07caed44dd59d9429bf8771&temp_url_expires=1655375956",
                "url": null,
                "industryTypeList": [
                    {
                        "category": "OTHER",
                        "description": "其他"
                    }
                ],
                "positionList": [
                    "HEALTH_MEASURE",
                    "HEALTH_REPORT",
                    "HEALTH_SPORT",
                    "HEALTH_TREND",
                    "MY_CONSULT",
                    "MY_HEALTH_ANALYSIS",
                    "MY_HEALTH_EDU",
                    "MY_REWARD"
                ],
                "categoryList": [
                    {
                        "category": "CLINIC",
                        "description": "診所"
                    },
                    {
                        "category": "GYM",
                        "description": "健身房"
                    },
                    {
                        "category": "HEALTH_CHECK_CENTER",
                        "description": "健檢中心"
                    },
                    {
                        "category": "HEALTH_SUPPLEMENT",
                        "description": "保健品業者"
                    },
                    {
                        "category": "MEDICAL_CENTER",
                        "description": "醫學中心"
                    },
                    {
                        "category": "MEDICAL_DEVICE",
                        "description": "醫療器材業者"
                    },
                    {
                        "category": "REGIONAL_HOSPITAL",
                        "description": "區域醫院"
                    }
                ]
            },
            "reachInfo": {
                "totalCount": 2,
                "totalTimes": 687,
                "totalMaleCount": 2,
                "totalFemaleCount": 0,
                "totalMaleTimes": 687,
                "totalFemaleTimes": 0,
                "totalMaleCountRate": 100.0,
                "totalFemaleCountRate": 0.0,
                "totalMaleTimesRate": 100.0,
                "totalFemaleTimesRate": 0.0,
                "details": [
                    {
                        "ageLevel": "level1",
                        "label": "30歲以下",
                        "maleCount": 1,
                        "femaleCount": 0,
                        "maleTimes": 100,
                        "femaleTimes": 0
                    },
                    {
                        "ageLevel": "level2",
                        "label": "30-39歲",
                        "maleCount": 1,
                        "femaleCount": 0,
                        "maleTimes": 587,
                        "femaleTimes": 0
                    },
                    {
                        "ageLevel": "level3",
                        "label": "40-49歲",
                        "maleCount": 0,
                        "femaleCount": 0,
                        "maleTimes": 0,
                        "femaleTimes": 0
                    },
                    {
                        "ageLevel": "level4",
                        "label": "50-59歲",
                        "maleCount": 0,
                        "femaleCount": 0,
                        "maleTimes": 0,
                        "femaleTimes": 0
                    },
                    {
                        "ageLevel": "level5",
                        "label": "60歲以上",
                        "maleCount": 0,
                        "femaleCount": 0,
                        "maleTimes": 0,
                        "femaleTimes": 0
                    }
                ]
            },
            "clickInfo": {
                "totalCount": 1,
                "totalTimes": 97,
                "totalMaleCount": 1,
                "totalFemaleCount": 0,
                "totalMaleTimes": 97,
                "totalFemaleTimes": 0,
                "totalMaleCountRate": 100.0,
                "totalFemaleCountRate": 0.0,
                "totalMaleTimesRate": 100.0,
                "totalFemaleTimesRate": 0.0,
                "clickRate": 50.0,
                "details": [
                    {
                        "ageLevel": "level1",
                        "label": "30歲以下",
                        "maleCount": 0,
                        "femaleCount": 0,
                        "maleTimes": 0,
                        "femaleTimes": 0
                    },
                    {
                        "ageLevel": "level2",
                        "label": "30-39歲",
                        "maleCount": 1,
                        "femaleCount": 0,
                        "maleTimes": 97,
                        "femaleTimes": 0
                    },
                    {
                        "ageLevel": "level3",
                        "label": "40-49歲",
                        "maleCount": 0,
                        "femaleCount": 0,
                        "maleTimes": 0,
                        "femaleTimes": 0
                    },
                    {
                        "ageLevel": "level4",
                        "label": "50-59歲",
                        "maleCount": 0,
                        "femaleCount": 0,
                        "maleTimes": 0,
                        "femaleTimes": 0
                    },
                    {
                        "ageLevel": "level5",
                        "label": "60歲以上",
                        "maleCount": 0,
                        "femaleCount": 0,
                        "maleTimes": 0,
                        "femaleTimes": 0
                    }
                ]
            }
        }
    }
}
```
## 廣告投放

```url
POST /ad/push
```

* 此API會將取得的廣告算入觸及, 所以不需要call /ad/reach API

#### Request
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 tenantId | string |  |  | 租戶id, 若不帶入, 則會由userToken帶入
 position | string | Y | | 廣告版位id 
 
```javascript
{
    "tenantId": "7daf1fc2-e7e6-4642-90a8-ff11f0febbe2",
    "position": "MY_HEALTH_EDU"
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 
 tenantName | string | 廣告商租戶名稱
 title | string | 廣告標題
 adType | string | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | storage中的縮圖objectKey
 objectKey | string | adType為FILE或IMAGE時, 表示storage 中的 objectKey, adType為URL時, 表示連結的網址
 thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
 url | string | adType為FILE或IMAGE時,可 download 的 url, 時效 3600 秒, adType為URL時, 表示連結的網址
 
```javascript
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
            "tenantName": "賣廣告的",
            "title": "TEST-AD-2",
            "adType": "URL",
            "thumbnailObjectKey": "abcd",
            "objectKey": "https://www.google.com",
            "thumbnailUrl": "http://192.168.101.120/swift/v1/AUTH_test/kmuh/abcd?temp_url_sig=157c26821ed477e5c63bf2d254c424cdeca1d890&temp_url_expires=1631005142",
            "url": "https://www.google.com"
        }
    }
}
```


## 取得廣告明細

```url
POST /ad/info
```

* adType若為CONTENT, 會需要call此API,取得內容明細
* 此API已包含廣告點擊, 不需再call /ad/click API

#### Request
 
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 id | string | Y | | 廣告id 
 position | string | Y | | 廣告版位id
 
```javascript
{
    "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
    "position": "MY_HEALTH_EDU"
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 
 tenantName | string | 廣告商租戶名稱
 title | string | 廣告標題
 adType | string | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | storage中的縮圖objectKey
 objectKey | string | adType為FILE或IMAGE時, 表示storage 中的 objectKey, adType為URL時, 表示連結的網址 
 contentType | string | MineType 格式 
 content | string | adType為CONTENT時所填入的文字內容
 thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
 url | string | adType為FILE或IMAGE時,可 download 的 url, 時效 3600 秒, adType為URL時, 表示連結的網址
 

```javascript
// HttpStatus:400, 資料不存在
{
    "errorMsg": "API_ERROR.NOT_EXIST",
    "httpCode": 400
}

// HttpStatus:200
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
            "tenantName": "賣廣告的",
            "title": "TEST-AD-2",
            "adType": "URL",
            "thumbnailObjectKey": "abcd",
            "objectKey": "https://www.google.com",
            "onDate": 1630425600000,
            "offDate": 1635609600000,
            "exposureLevel": "NORMAL",
            "paymentStatus": "UNPAID",
            "status": "NONE",
            "thumbnailUrl": "http://192.168.101.120/swift/v1/AUTH_test/kmuh/abcd?temp_url_sig=157c26821ed477e5c63bf2d254c424cdeca1d890&temp_url_expires=1631005142",
            "url": "https://www.google.com"
        }
    }
}
```


## 廣告點擊

```url
POST /ad/click
```

* adType若為URL/FILE/IMAGE時, 若不call /ad/info API而直接跳轉URL/下載檔案/開啟大圖時, 需先call 此API以計算廣告點擊 

#### Request
 
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 id | string | Y | | 廣告id 
 position | string | Y | | 廣告版位id
 
```javascript
{
    "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
    "position": "MY_HEALTH_EDU"
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 

```javascript
// HttpStatus:400, 資料不存在
{
    "errorMsg": "API_ERROR.NOT_EXIST",
    "httpCode": 400
}

// HttpStatus:200
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2"
        }
    }
}
```

## 廣告觸及

```url
POST /ad/reach
```

* 此API為會員專屬廣告列表所用, 在會員廣告專屬列表時, 由APP控制在廣告呈現給使用者時, call此API計算廣告觸及 

#### Request
 
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 id | string | Y | | 廣告id 
 position | string | Y | | 廣告版位id
 
```javascript
{
    "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
    "position": "MY_HEALTH_EDU"
}
```

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 

```javascript
// HttpStatus:400, 資料不存在
{
    "errorMsg": "API_ERROR.NOT_EXIST",
    "httpCode": 400
}

// HttpStatus:200
{
    "httpCode": 200,
    "result": {
        "data": {
            "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2"
        }
    }
}
```


## 取得會員專屬廣告列表

```url
GET /ad/member-only
```

* 此API的廣告列表不會算入觸及, 需要APP控制再call /ad/reach API

#### QueryString of API
 欄位 | 型態  | 必填 | 預設 | 說明  
 ---|---|---|---|---
 tenantId | string |  |  | 租戶id, 在多租戶情況下,可指定某個租戶下的會員專屬廣告, 若不傳入此參數,會查詢此使用者所有租戶下的會員專屬廣告

#### Response
 欄位 | 型態 | 說明 
 ---  | --- | ---
 id | string | 廣告id 
 tenantName | string | 廣告商租戶名稱
 title | string | 廣告標題
 adType | string | 廣告類型, URL:連結, FILE:檔案, IMAGE:圖片, CONTENT:文字內容
 thumbnailObjectKey | string | storage中的縮圖objectKey
 objectKey | string | adType為FILE或IMAGE時, 表示storage 中的 objectKey, adType為URL時, 表示連結的網址
 thumbnailUrl | string | 可 download 的 縮圖url, 時效 3600 秒
 url | string | adType為FILE或IMAGE時,可 download 的 url, 時效 3600 秒, adType為URL時, 表示連結的網址
 
```javascript
{
    "httpCode": 200,
    "result": {
        "data": [
            {
                "id": "df2e6892-9ee2-4aab-9990-c5a62d618be2",
                "tenantName": "賣廣告的",
                "title": "TEST-AD-2",
                "adType": "URL",
                "thumbnailObjectKey": "abcd",
                "objectKey": "https://www.google.com",
                "thumbnailUrl": "http://192.168.101.120/swift/v1/AUTH_test/kmuh/abcd?temp_url_sig=157c26821ed477e5c63bf2d254c424cdeca1d890&temp_url_expires=1631005142",
                "url": "https://www.google.com"
            }, ...
        ]
    }
}
```

