Get the review info of Upgraded Smart+ Ad creatives
GET/smart_plus/material/review_info/Via 360: GET https://partner.quantri360.com/v1/tiktok_business/smart_plus/material/review_info/
Description
Use this endpoint to retrieve the review results of creatives within Upgraded Smart+ Ads.
A creative needs to be approved before it can be delivered, and it may get rejected due to various reasons, such as incorrect placement or targeting selections. Based on the rejection reasons and suggestions you get, you can modify your creative accordingly using /smart_plus/ad/update/.
Request
Endpoint
GET https://partner.quantri360.com/v1/tiktok_business/smart_plus/material/review_info/
Authentication & shop
| Name | In | Type | Sample | Description |
|---|---|---|---|---|
| Authorization | header | header | Bearer q360_live_ab12cd34_… | Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand. |
| platform_shop_id | query | string | 7000000000000000001 | Tài sản TikTok Business đã kết nối — "Mã tài sản" ở trang Nền tảng hoặc GET /v1/platforms (tài khoản quảng cáo cho Marketing API, tài khoản TikTok cho Organic / Messaging). Có thể bỏ khi chỉ kết nối một tài sản. |
Request parameters
| Name | In | Type | Required | Sample | Description |
|---|---|---|---|---|---|
| ad_material_ids | query | string[] | Yes | A list of ad material IDs for creatives to operate on.
An ad material ID is an ad-specific material ID generated when a particular creative is used in an ad.
This ID differs from the creative ID you receive when uploading the creative to your ad account’s Creative Library.
Max size: 100.
To obtain ad material IDs associated with an ad, use /smart_plus/ad/get/.
Note: For images within a carousel, you need to provide the ad_material_id from /smart_plus/ad/review_info/, not the one from /smart_plus/ad/get/ which identifies the entire carousel. | |
| lang | query | string | No | The code of the language for the returned reasons,suggestion, and specification within the reject_info object array.
For enum values, see List of values for lang.
Default value: en. | |
| extra_info_setting | query | object | No | Additional settings. |
Request examples
curl -s "https://partner.quantri360.com/v1/tiktok_business/smart_plus/material/review_info/?ad_material_ids=%5B%5D" \ -H "Authorization: Bearer $KEY"
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.get(
"https://partner.quantri360.com/v1/tiktok_business/smart_plus/material/review_info/",
params={
"ad_material_ids": []
},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60,
)
print(r.status_code)
print(r.json())Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/tiktok_business/smart_plus/material/review_info/');
for (const [k, v] of Object.entries({"ad_material_ids":[]})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'GET',
headers: { Authorization: `Bearer ${KEY}` },
});
console.log(r.status, await r.json());PHP
<?php $key = 'q360_live_...'; // khóa API của brand $url = 'https://partner.quantri360.com/v1/tiktok_business/smart_plus/material/review_info/' . '?' . http_build_query(['ad_material_ids' => '[]']); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]); $res = curl_exec($ch); $status = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo $status, "\n", $res;
Response
Response fields (as returned by TikTok Business)
| Name | Type | Sample | Description |
|---|---|---|---|
| code | number | Response code. For the complete list of response codes and descriptions, see Appendix - Return Codes. | |
| message | string | Response message. For details, see Appendix - Return Codes. | |
| request_id | string | The log ID of a request, which uniquely identifies the request. | |
| data | object | Returned data. | |
| material_review_infos | object[] | Information about the review result for the creatives. | |
| ad_material_id | string | An ad-specific material ID generated when a particular creative is used in an ad. This ID differs from the creative ID you receive when uploading the creative to your ad account’s Creative Library. | |
| smart_plus_ad_id | string | Ad ID. | |
| passed_locations | string[] | The targeted regions that passed the review. | |
| review_status | string | The review status of the creative. Enum values: - `ALL_AVAILABLE`: The creative has been reviewed and can be delivered to all specified targeting countries. - `PART_AVAILABLE`: The creative has been reviewed and can only be delivered to some of the specified targeting countries. - `UNAVAILABLE`: The creative has been reviewed and cannot be delivered. | |
| reject_info | object[] | Details of the rejection. | |
| reasons | string[] | The reasons for failing the ad review. | |
| suggestion | string | The review suggestion. | |
| forbidden_ages | string[] | The age groups that failed the review. For enum values, see Enumeration - Age Group. | |
| forbidden_locations | string[] | The codes of the targeted regions that failed the review. For enum values, see Appendix - Location codes. | |
| forbidden_placements | string[] | The placements that failed the review. For enum values, see Enumeration - Placement. | |
| content_info | object | Details of the content that was rejected. | |
| content_type | string | Content type. Enum values: - `ModeString`: string. - `ModeImage`: image. - `ModeVideo`: video. - `ModeMusic`: music to be used in a carousel. - `LandingPage`: landing page. - `ModeCollection`: series collection. - `ModePhotoPost:` TikTok photo post. | |
| text_content | string | The text that was rejected. | |
| image_content | object | The image content that was rejected. | |
| image_id | string | The ID of the image. | |
| video_content | object | The video content that was rejected. | |
| video_id | string | The ID of the video. | |
| carousel_music_info | object | The music content in a carousel that was rejected. | |
| music_id | string | The ID of the music. | |
| violation_frames | object[] | Returned only when `include_violation_frame` is set to `true` in the request. Details of the video frames that have been flagged for violations. | |
| type | string | The type of frame. | |
| video_id | string | Video ID. | |
| web_url_list | string[] | A list of image URLs or landing page URLs flagged for violations. | |
| violation_frame_material_type | string | The type of creative that was considered a violative item in the frame. Enum values: - `DOWNLOAD URL`: Download URL. - `EXTERNAL_URL`: Landing page URL. - `INSTANT_PAGE`: TikTok Instant Page. - `LEAD_GENERATION`: Instant Form. - `OPEN_URL`: Deeplink. - `VIDEO`: Video. - `UNSET`: Other. | |
| specification | string | An auto-generated summary for the rejection reason. | |
| video_violation_frames | object[] | Details of images flagged for violations. | |
| web_url | string | The URL of the image of a specific frame where a violation has occurred. | |
| hover_periods | string[] | A list of time periods when violations occur in hover images. | |
| thumbnail_periods | string[] | A list of time periods when violations occur in thumbnail images. |
Response sample
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"material_review_infos": [
{
"ad_material_id": "{{ad_material_id}}",
"passed_locations": null,
"reject_info": [],
"review_status": "ALL_AVAILABLE",
"smart_plus_ad_id": "{{smart_plus_ad_id}}"
}
]
}
}
Get started
- Sign up for Partner
- Enable a data type of the Ads (Marketing API) group on the platform page
- Create an API key (tick the TikTok Business channel)
- Call it as in the examples above