VI | EN
Message us on Messenger
Developer resources

Get App Conversion Events — TikTok Business API

Get App Conversion Events · 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 App Conversion Events

GET/app/optimization_event/Via 360: GET https://partner.quantri360.com/v1/tiktok_business/app/optimization_event/
Description

Use this endpoint to obtain information about an app conversion event.

> Important

> By using Events API endpoints, you agree to the TikTok Business Products (Data) Terms and that you will not share sensitive data with TikTok.

Request

Endpoint

GET https://partner.quantri360.com/v1/tiktok_business/app/optimization_event/

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
placement_typequerystringNoThe placement strategy that decides where your ads will be shown. Enum values: PLACEMENT_TYPE_AUTOMATIC (Automatic placement), PLACEMENT_TYPE_NORMAL (Select placement). Default value: PLACEMENT_TYPE_NORMAL.
placementquerystring[]NoThe apps where you want to deliver your ads. Required when placement_type is PLACEMENT_TYPE_NORMAL, and ignored when placement_type is PLACEMENT_TYPE_AUTOMATIC. Note: - Currently, we support PLACEMENT_TIKTOK, PLACEMENT_PANGLE and PLACEMENT_GLOBAL_APP_BUNDLE. Please don't select PLACEMENT_TOPBUZZ or PLACEMENT_HELO as your placements since they've been deprecated. For a full list of enum values, see Enumeration - Placement. - For Product Sales campaigns (objective_type = PRODUCT_SALES), only TikTok placement (PLACEMENT_TIKTOK) is supported.
optimization_goalquerystringYesOptimization goal. For enum values, see Enumeration-Optimization Goal for more
objectivequerystringYesAdvertising Objective. For enum values, see Enumeration-Advertising Objective
app_promotion_typequerystringNoApp promotion type. Required when objective is APP_PROMOTION. Enum values: APP_INSTALL, APP_RETARGETING. Note: APP_INSTALL can be used in an iOS14 Dedicated Campaign, while APP_RETARGETING cannot be used.
available_onlyquerybooleanNoWhether to return only available conversion events. The default value: True (only return available conversion events)
is_skanquerybooleanNoWhether the app is using Skan features.

Request examples

curl -s "https://partner.quantri360.com/v1/tiktok_business/app/optimization_event/?optimization_goal=&objective=" \
  -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/app/optimization_event/",
    params={
        "optimization_goal": "",
        "objective": ""
    },
    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/app/optimization_event/');
for (const [k, v] of Object.entries({"optimization_goal":"","objective":""})) 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/app/optimization_event/' . '?' . http_build_query(['optimization_goal' => '', 'objective' => '']);
$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.
dataobjectReturn data
optimization_eventsobject[]external action list
optimization_eventstringconversion events that you want to measure. See Appendix-Conversion Events-App Event Type
statistic_typestringIn this field, you can choose to bid for `EVERYTIME` (Each Purchase)/ `NONE` (Unique Purchase).
availability_statusstringEvent availability status, optional values: `INACTIVE` (unavailable), `INSUFFICIENT_POSTBACK` (unavailable: insufficient postback), `READY` (available)
conversionsnumberConversion events postback in the past 30 days
unlock_thresholdnumberEvent available conversion event threshold (when `conversions` reach `unlock_threshold`, `availability_status` will change from `INSUFFICIENT_POSTBACK` to `READY`)
is_betabooleanWhether the event is in beta
bid_type_availabilityobjectAvailability of bid types and deep bid types
no_bid_enabledbooleanWhether the event supports `bid_type` = `BID_TYPE_NO_BID` (Maximum Delivery)
auto_bid_enabledbooleanWhether the event supports `deep_bid_type` = `PACING` (auto bid)
multi_bid_enabledbooleanWhether the event supports `deep_bid_type` = `MIN` (multi bid)
deep_optimization_eventsobjectdeep conversion events
optimization_eventstringdeep conversion events, seeAppendix-Conversion Events-App Secondary-goal Event Type
statistic_typestringdeep conversion bid statistic type, bid for `EVERYTIME` (Each Purchase)/ `NONE` (Unique Purchase)
availability_statusstringEvent availability status. Enum values: `INACTIVE` (unavailable), `INSUFFICIENT_POSTBACK` (unavailable: insufficient postback), `READY` (available)
conversionsnumberConversion events postback in the past 30 days
unlock_thresholdnumberEvent available conversion event threshold (when `conversions` reach `unlock_threshold`, `availability_status` will change from `INSUFFICIENT_POSTBACK` to `READY`)
request_idstringThe log id of a request, which uniquely identifies the request.

Response sample

HTTPS/1.1 200 OK
{
    "message": "OK",
    "code": 0,
    "data": {
        "external_actions": [
            {
                "conversions": 59,
                "unlock_threshold": 50,
                "deep_external_actions": [],
                "statistic_type": "NONE",
                "availability_status": "READY",
                "external_action": "COMPLETE_TUTORIAL",
                "is_beta": false
            },
            {
                "conversions": 12,
                "unlock_threshold": 50,
                "deep_external_actions": [],
                "statistic_type": "NONE",
                "availability_status": "INSUFFICIENT_POSTBACK",
                "external_action": "SUBSCRIBE",
                "is_beta": false
            },
            {
                "conversions": 0,
                "unlock_threshold": 50,
                "deep_external_actions": [],
                "statistic_type": "NONE",
                "availability_status": "INACTIVE",
                "external_action": "ADD_PAYMENT_INFO",
                "is_beta": false
            },
            {
                "conversions": 0,
                "unlock_threshold": 50,
                "deep_external_actions": [],
                "statistic_type": "NONE",
                "availability_status": "INACTIVE",
                "external_action": "SEARCH",
                "is_beta": false
            },
            {
                "conversions": 0,
                "unlock_threshold": 50,
                "deep_external_actions": [],
                "statistic_type": "NONE",
                "availability_status": "INACTIVE",
                "external_action": "ACTIVE_REGISTER",
                "is_beta": false
            },
            {
                "conversions": 0,
                "unlock_threshold": 50,
                "deep_external_actions": [],
                "statistic_type": "NONE",
                "availability_status": "INACTIVE",
                "external_action": "IN_APP_DETAIL_UV",
                "is_beta": false
            },
            {
                "conversions": 0,
                "unlock_threshold": 50,
                "deep_external_actions": [],
                "statistic_type": "NONE",
                "availability_status": "INACTIVE",
                "external_action": "START_TRIAL",
                "is_beta": false
            },
            {
                "conversions": 0,
                "unlock_threshold": 50,
                "deep_external_actions": [],
                "statistic_type": "NONE",
                "availability_status": "INACTIVE",
                "external_action": "LOGIN",
                "is_beta": false
            }
        ],
        "multi_bid_enabled": false
    },
    "request_id": "2020111207432201023125009013555"
}
(/code);

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