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
| 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 |
|---|---|---|---|---|---|
| placement_type | query | string | No | The 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. | |
| placement | query | string[] | No | The 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_goal | query | string | Yes | Optimization goal. For enum values, see Enumeration-Optimization Goal for more | |
| objective | query | string | Yes | Advertising Objective. For enum values, see Enumeration-Advertising Objective | |
| app_promotion_type | query | string | No | App 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_only | query | boolean | No | Whether to return only available conversion events. The default value: True (only return available conversion events) | |
| is_skan | query | boolean | No | Whether 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)
| 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. | |
| data | object | Return data | |
| optimization_events | object[] | external action list | |
| optimization_event | string | conversion events that you want to measure. See Appendix-Conversion Events-App Event Type | |
| statistic_type | string | In this field, you can choose to bid for `EVERYTIME` (Each Purchase)/ `NONE` (Unique Purchase). | |
| availability_status | string | Event availability status, optional values: `INACTIVE` (unavailable), `INSUFFICIENT_POSTBACK` (unavailable: insufficient postback), `READY` (available) | |
| conversions | number | Conversion events postback in the past 30 days | |
| unlock_threshold | number | Event available conversion event threshold (when `conversions` reach `unlock_threshold`, `availability_status` will change from `INSUFFICIENT_POSTBACK` to `READY`) | |
| is_beta | boolean | Whether the event is in beta | |
| bid_type_availability | object | Availability of bid types and deep bid types | |
| no_bid_enabled | boolean | Whether the event supports `bid_type` = `BID_TYPE_NO_BID` (Maximum Delivery) | |
| auto_bid_enabled | boolean | Whether the event supports `deep_bid_type` = `PACING` (auto bid) | |
| multi_bid_enabled | boolean | Whether the event supports `deep_bid_type` = `MIN` (multi bid) | |
| deep_optimization_events | object | deep conversion events | |
| optimization_event | string | deep conversion events, seeAppendix-Conversion Events-App Secondary-goal Event Type | |
| statistic_type | string | deep conversion bid statistic type, bid for `EVERYTIME` (Each Purchase)/ `NONE` (Unique Purchase) | |
| availability_status | string | Event availability status. Enum values: `INACTIVE` (unavailable), `INSUFFICIENT_POSTBACK` (unavailable: insufficient postback), `READY` (available) | |
| conversions | number | Conversion events postback in the past 30 days | |
| unlock_threshold | number | Event available conversion event threshold (when `conversions` reach `unlock_threshold`, `availability_status` will change from `INSUFFICIENT_POSTBACK` to `READY`) | |
| request_id | string | The 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
- 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