VI | EN
Message us on Messenger
Developer resources

Get the review info of Upgraded Smart+ Ads — TikTok Business API

Get the review info of Upgraded Smart+ Ads · call it through Quantri360 with one API key for your own accounts / assets that you connected and authorized — 360 handles request signing and refreshing the authorization you granted.

Get the review info of Upgraded Smart+ Ads

GET/smart_plus/ad/review_info/Via 360: GET https://partner.quantri360.com/v1/tiktok_business/smart_plus/ad/review_info/
Description

Use this endpoint to retrieve the review results of Upgraded Smart+ Ads, including creatives within the ads.

An ad 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 ad accordingly using /smart_plus/ad/update/.

Request

Endpoint

GET https://partner.quantri360.com/v1/tiktok_business/smart_plus/ad/review_info/

Authentication & shop

NameInTypeSampleDescription
AuthorizationheaderheaderBearer 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_idquerystring7000000000000000001Tà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

NameInTypeRequiredSampleDescription
smart_plus_ad_idsquerystring[]YesA list of Ad IDs. Max size: 100. To obtain ad IDs, use /smart_plus/ad/get/.
langquerystringNoThe 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_settingqueryobjectNoAdditional settings.

Request examples

curl -s "https://partner.quantri360.com/v1/tiktok_business/smart_plus/ad/review_info/?smart_plus_ad_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/ad/review_info/",
    params={
        "smart_plus_ad_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/ad/review_info/');
for (const [k, v] of Object.entries({"smart_plus_ad_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/ad/review_info/' . '?' . http_build_query(['smart_plus_ad_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)

NameTypeSampleDescription
codenumberResponse code. For the complete list of response codes and descriptions, see Appendix - Return Codes.
messagestringResponse message. For details, see Appendix - Return Codes.
request_idstringThe log ID of a request, which uniquely identifies the request.
dataobjectReturned data.
smart_plus_ad_review_infosobject[]Information about the review result for the ads.
smart_plus_ad_idstringAd ID.
review_statusstringThe review status of the ad. Enum values: - `ALL_AVAILABLE`: The ad has been reviewed and can be delivered to all specified targeting countries. - `PART_AVAILABLE`: The ad has been reviewed and can only be delivered to some of the specified targeting countries. - `UNAVAILABLE`: The ad has been reviewed and cannot be delivered.
passed_locationsstring[]The targeted regions that passed the review. For enum values, see Appendix - Location codes.
appeal_statusstringThe appeal status of the ad. Enum values: - `NOT_APPEALED`: The appeal is not submitted. - `APPEALING`: The appeal is being processed. - `APPEAL_SUCCESSFUL`: The appeal has succeeded. - `APPEAL_FAILED`: The appeal failed. - `APPEAL_DONE`: The appeal went through an additional review. To confirm whether the appeal succeeded or failed, check the `review_status` value.
appeal_reject_reasonsstring[]The reasons for rejecting the appeal.
reject_infoobject[]Details of the rejection.
reasonsstring[]The reasons for failing the ad review.
suggestionstringThe review suggestion.
forbidden_agesstring[]The age groups that failed the review. For enum values, see Enumeration - Age Group.
forbidden_locationsstring[]The codes of the targeted regions that failed the review. For enum values, see Appendix - Location codes.
forbidden_placementsstring[]The placements that failed the review. For enum values, see Enumeration - Placement.
content_infoobjectDetails of the content that was rejected.
content_typestringContent 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_contentstringThe text that was rejected.
image_contentobjectThe image content that was rejected.
image_idstringThe ID of the image.
video_contentobjectThe video content that was rejected.
video_idstringThe ID of the video.
carousel_music_infoobjectThe music content in a carousel that was rejected.
music_idstringThe ID of the music.
violation_framesobject[]Returned only when `include_violation_frame` is set to `true` in the request. Details of the video frames that have been flagged for violations.
typestringThe type of frame.
video_idstringVideo ID.
web_url_liststring[]A list of image URLs or landing page URLs flagged for violations.
violation_frame_material_typestringThe 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.
specificationstringAn auto-generated summary for the rejection reason.
video_violation_framesobject[]Details of images flagged for violations.
web_urlstringThe URL of the image of a specific frame where a violation has occurred.
hover_periodsstring[]A list of time periods when violations occur in hover images.
thumbnail_periodsstring[]A list of time periods when violations occur in thumbnail images.
material_review_infosobject[]Information about the review result for the creatives.
ad_material_idstringAn 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. Note: For carousel creatives, this ID identifies an image inside the carousel, while the `ad_material_id` from /smart_plus/ad/get/ identifies the entire carousel itself.
smart_plus_ad_idstringAd ID.
review_statusstringThe 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.
passed_locationsstring[]The targeted regions that passed the review. For enum values, see Appendix - Location codes.
reject_infoobject[]Details of the rejection.
reasonsstring[]The reasons for failing the ad review.
suggestionstringThe review suggestion.
forbidden_agesstring[]The age groups that failed the review. For enum values, see Enumeration - Age Group.
forbidden_locationsstring[]The codes of the targeted regions that failed the review. For enum values, see Appendix - Location codes.
forbidden_placementsstring[]The placements that failed the review. For enum values, see Enumeration - Placement.
content_infoobjectDetails of the content that was rejected.
content_typestringContent 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_contentstringThe text that was rejected.
image_contentobjectThe image content that was rejected.
image_idstringThe ID of the image.
video_contentobjectThe video content that was rejected.
video_idstringThe ID of the video.
carousel_music_infoobjectThe music content in a carousel that was rejected.
music_idstringThe ID of the music.
violation_framesobject[]Returned only when `include_violation_frame` is set to `true` in the request. Details of the video frames that have been flagged for violations.
typestringThe type of frame.
video_idstringVideo ID.
web_url_liststring[]A list of image URLs or landing page URLs flagged for violations.
violation_frame_material_typestringThe 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.
specificationstringAn auto-generated summary for the rejection reason.
video_violation_framesobject[]Details of images flagged for violations.
web_urlstringThe URL of the image of a specific frame where a violation has occurred.
hover_periodsstring[]A list of time periods when violations occur in hover images.
thumbnail_periodsstring[]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": null,
                "review_status": "ALL_AVAILABLE",
                "smart_plus_ad_id": "{{smart_plus_ad_id}}"
            },
            {
                "ad_material_id": "{{ad_material_id}}",
                "passed_locations": null,
                "reject_info": null,
                "review_status": "ALL_AVAILABLE",
                "smart_plus_ad_id": "{{smart_plus_ad_id}}"
            }
        ],
        "smart_plus_ad_review_infos": [
            {
                "appeal_reject_reasons": null,
                "appeal_status": "NOT_APPEALED",
                "passed_locations": null,
                "reject_info": [],
                "review_status": "ALL_AVAILABLE",
                "smart_plus_ad_id": "{{smart_plus_ad_id}}"
            }
        ]
    }
}

Get started

  1. Sign up for Partner
  2. Enable a data type of the Ads (Marketing API) group on the platform page
  3. Create an API key (tick the TikTok Business channel)
  4. Call it as in the examples above