创建更新源
您可以使用本接口创建更新源。
v1.2与v1.3版本对比
以下表格概括了 v1.2与v1.3接口的变化。
``xtable
|变化内容{30%}|v1.2{35%}|v1.3{35%}|
|---|---|---|
|接口路径| /v1.2/catalog/feed/create/| /v1.3/catalog/feed/create/|
|请求参数类型|bc_id: number <br>catalog_id: number|bc_id: string<br>catalog_id`: string |
## 请求
**地址** <https://business-api.tiktok.com/open_api/v1.3/catalog/feed/create/>
**方法** POST
**Header**
```xtable
|字段|类型|描述|
|---|---|---|
|Access-Token {必填}|string|授权访问令牌。可以通过[获取访问令牌](https://ads.tiktok.com/marketing_api/docs?id=1738373164380162)接口获取。|
|Content-Type {必填}|string|请求信息类型。<br>允许格式:`application/json`。|
参数
|字段|类型|描述|
|---|---|---|
|bc_id {必填}|string| 商务中心 ID。 |
|catalog_id {必填}|string| 商品库 ID。|
|feed_name {必填}|string| 更新源名称。|
|update_mode {必填}|string| 更新方式。<br><br>枚举值: <ul><li>`OVERWRITE`:覆盖数据源。若历史商品在新的商品库中不存在,则历史商品将被删除。若新的商品库中存在新商品,将在商品库中添加新商品;若商品已存在,则会用上传的商品信息更新原有的商品信息。</li><li>`INCREMENTAL`:增量式更新。若历史商品在新的商品库中不存在,历史商品不会被删除。若新的商品库中存在新商品,将在商品库中添加新商品;若商品已存在,则会用上传的商品信息更新原有的商品信息。</li></ul>|
|schedule_param|object| 定时更新的设置。|
#|source|object|更新源。|
##|uri {+条件必填}|string| 传入`interval_type` 或 `timezone`时必填。<br><br>更新源地址。请添加更新源文件所在的 URL。应以 http、https、ftp 或 sftp 开头。文件最大为 8 GB,可采用 CSV、TSV 或 XML (RSS/ATOM) 格式。<br><br><p><span style="color:darkred"><b>注意</b></span>:如果附加图片 URL 中包含逗号(,),需先对逗号进行 URL 编码,替换为 %2C,然后再将该 URL 传入此字段中。<br>例如,针对以下两个 URL:`https://img.example.com/product.jpg?width=800&height=600&quality=85&format=webp` 和<br>`https://img.example.com/product_800x600<b>,</b>q85<b>,</b>webp.jpg`,应将本字段设置为`["https://img.example.com/product.jpg?width=800&height=600&quality=85&format=webp","https://img.example.com/product_800x600<b>%2C</b>q85<b>%2C</b>webp.jpg"]`。|
##|username|string| 如果更新源有密码保护,您需要用本字段传入用户名。|
##|password|string| 如果更新源有密码保护,您需要用本字段传入密码。|
#|interval_type {+条件必填}|string| 传入 `uri` 或 `timezone`时必填。<br><br>定时更新间隔单位。<br><br>枚举值: `HOURLY`(小时), `DAILY`(日), `MONTHLY`(月)。|
#|interval_count |number| 两次相邻的更新之间的间隔。<ul><li>若 `interval_type` 为 `HOURLY`,取值范围为 1-23。</li><li>若 `interval_type` 为 `DAILY`,取值范围为 1-30。</li><li>若 `interval_type` 为 `MONTHLY`,取值范围是 1-12。</li></ul>|
#|timezone{+条件必填}|string|传入 `uri` 或 `interval_type`时必填。<br> <br> 定时更新使用的时区。<br><br>示例:`Africa/Accra`。<br><br>时区列表可见 [附录-时区信息](https://ads.tiktok.com/marketing_api/docs?id=1737586324313089)。|
#|day_of_month |number| 对于按月执行的定时更新,执行更新的月份的第几日|
#|hour|number|获取更新的小时时间。<br><br><ul><li>若定时更新是按小时执行,本字段代表首次执行更新的小时时间。</li><li>若定时更新是按日或月执行,本字段代表执行定时更新的小时时间。</li></ul><br>取值范围:0-23。<br>默认值: 0。|
#|minute|number|获取更新的分钟时间。<br><br><ul><li>若定时更新是按小时执行,本字段代表首次更新的分钟时间。</li><li>若定时更新是按日或月执行,本字段代表执行定时更新的分钟时间。</li></ul><br>取值范围:0-59。<br>默认值: 0。|
示例
(code cURL cURL)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/catalog/feed/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
"bc_id": "{{bc_id}}",
"catalog_id": "{{catalog_id}}",
"feed_name": "{{feed_name}}",
"update_mode": "INCREMENTAL",
"schedule_param": {
"source": {
"uri": "{{uri}}"
},
"interval_type": "HOURLY",
"interval_count": 1,
"timezone": "Asia/Singapore",
"minute":22
}
}'
(/code)
返回
|字段|类型|描述|
|---|---|---|
|code |number|返回码,详见[附录-返回码](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097)。|
|message |string|返回信息,详见[附录-返回码](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097)。|
|request_id |string|请求的日志id,唯一标识一个请求。|
|data |object|返回数据。|
#|feed_id|string| 更新源 ID。|
#|feed_name|string| 更新源名称。|
#|status |string | 更新源的定时更新的状态。<br><br>枚举值: <ul><li>`ON`: 更新源有开启("ON")状态的定时更新。</li><li>`OFF`: 更新源无开启状态的定时更新。此时可能更新源未设置定时更新,或更新源的定时更新处于关闭("OFF")状态。</li></ul>|
#|last_update_param|object| 最后一次更新信息。|
##|uri|string|更新源地址,即更新源文件所在的 URL。|
##|update_mode|string|更新模式。<br><br>枚举值: <ul><li>`OVERWRITE`:覆盖数据源。若历史商品在新的商品库中不存在,则历史商品将被删除。若新的商品库中存在新商品,将在商品库中添加新商品;若商品已存在,则会用上传的商品信息更新原有的商品信息。</li><li>`INCREMENTAL`:增量式更新。若历史商品在新的商品库中不存在,历史商品不会被删除。若新的商品库中存在新商品,将在商品库中添加新商品;若商品已存在,则会用上传的商品信息更新原有的商品信息。</li></ul>|
##|timzeone|string|定时更新使用的时区。<br><br>示例:`Africa/Accra`。<br><br>时区列表可见 [附录-时区信息](https://ads.tiktok.com/marketing_api/docs?id=1737586324313089)。|
##|interval_type|string| 定时更新间隔单位。<br><br>枚举值: `HOURLY`(小时),`DAILY`(日),`MONTHLY`(月)。|
##|interval_count |number| 两次相邻的更新之间的间隔。 |
##|day_of_month |number| 对于按月执行的定时更新,执行更新的月份的第几日。|
##|hour|number|获取更新的小时时间。<br><br><ul><li>若定时更新是按小时执行,本字段代表首次执行更新的小时时间。</li><li>若定时更新是按日或月执行,本字段代表执行定时更新的小时时间。</li></ul>|
##|minute|number|获取更新的分钟时间。<br><br><ul><li>若定时更新是按小时执行,本字段代表首次更新的分钟时间。</li><li>若定时更新是按日或月执行,本字段代表执行定时更新的分钟时间。</li></ul>|
#|next_update_time|string|下次更新的日期和时间(UTC + 0 时间)。示例:"2021-05-23 16:33:23"。|
#|number_of_products|number|更新源中的商品数量。|
示例
(code JSON JSON)
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"next_update_time": "{{next_update_time}}",
"number_of_products": 0,
"last_update_param": {
"interval_count": 1,
"timezone": "Asia/Singapore",
"day_of_month": 1,
"hour": 0,
"update_mode": "INCREMENTAL",
"interval_type": "HOURLY",
"minute": 22,
"uri": "{{uri}}"
},
"feed_id": "{{feed_id}}",
"status": "ON",
"feed_name": "{{feed_name}}"
}
}
(/code)