// Auto-generated client for Events 1.0 — do not edit import type { AppTrackParams, AppTrackResponse, AppBatchParams, AppBatchResponse, AppInfoParams, AppInfoResponse, AppCreateParams, AppCreateResponse, AppUpdateParams, AppUpdateResponse, AppListParams, AppListResponse, AppOptimizationEventParams, AppOptimizationEventResponse, AppOptimizationEventRetargetingParams, AppOptimizationEventRetargetingResponse, PixelTrackParams, PixelTrackResponse, PixelBatchParams, PixelBatchResponse, PixelListParams, PixelListResponse, PixelCreateParams, PixelCreateResponse, PixelUpdateParams, PixelUpdateResponse, PixelEventCreateParams, PixelEventCreateResponse, PixelEventUpdateParams, PixelEventUpdateResponse, PixelEventDeleteParams, PixelEventDeleteResponse, PixelInstantPageEventParams, PixelInstantPageEventResponse, PixelEventStatsParams, PixelEventStatsResponse, OfflineCreateParams, OfflineCreateResponse, OfflineUpdateParams, OfflineUpdateResponse, OfflineDeleteParams, OfflineDeleteResponse, OfflineGetParams, OfflineGetResponse, OfflineTrackParams, OfflineTrackResponse, OfflineBatchParams, OfflineBatchResponse, CrmListParams, CrmListResponse, CrmCreateParams, CrmCreateResponse, CtmMessageEventSetGetParams, CtmMessageEventSetGetResponse } from "../types/events-1-0.ts"; interface TikTokResponse { code: number; message: string; request_id: string; data: T; } const TT_API_BASE = "https://business-api.tiktok.com"; export function createEvents10(opts: { accessToken: string; advertiserId: string }) { async function get(path: string, params: Record): Promise { const searchParams = new URLSearchParams(); for (const [key, value] of Object.entries(params)) { if (value !== undefined && value !== null) { searchParams.set(key, typeof value === "object" ? JSON.stringify(value) : String(value)); } } const response = await fetch(`${TT_API_BASE}${path}?${searchParams.toString()}`, { headers: { "Access-Token": opts.accessToken }, }); const body = (await response.json()) as TikTokResponse; if (!response.ok || body.code !== 0) { throw new Error(`TikTok API error: ${body.message} (code ${body.code}, request_id ${body.request_id})`); } return body.data; } async function post(path: string, body: Record): Promise { const response = await fetch(`${TT_API_BASE}${path}`, { method: "POST", headers: { "Access-Token": opts.accessToken, "Content-Type": "application/json" }, body: JSON.stringify(body), }); const responseBody = (await response.json()) as TikTokResponse; if (!response.ok || responseBody.code !== 0) { throw new Error(`TikTok API error: ${responseBody.message} (code ${responseBody.code}, request_id ${responseBody.request_id})`); } return responseBody.data; } return { /** Report an App Event */ async appTrack(params: AppTrackParams): Promise { return post("/open_api/v1.3/app/track/", params as unknown as Record); }, /** Report App Events in bulk */ async appBatch(params: AppBatchParams): Promise { return post("/open_api/v1.3/app/batch/", params as unknown as Record); }, /** Get info of an app */ async appInfo(params: AppInfoParams): Promise { return get("/open_api/v1.3/app/info/", params as unknown as Record); }, /** Create an app */ async createApp(params: AppCreateParams): Promise { return post("/open_api/v1.3/app/create/", params as unknown as Record); }, /** Update an app */ async updateApp(params: AppUpdateParams): Promise { return post("/open_api/v1.3/app/update/", params as unknown as Record); }, /** Get the app list */ async listApp(params: AppListParams): Promise { return get("/open_api/v1.3/app/list/", params as unknown as Record); }, /** Get App Conversion Events */ async appOptimizationEvent(params: AppOptimizationEventParams): Promise { return get("/open_api/v1.3/app/optimization_event/", params as unknown as Record); }, /** Get App Retargeting Events */ async optimizationEventRetargeting(params: AppOptimizationEventRetargetingParams): Promise { return get("/open_api/v1.3/app/optimization_event/retargeting/", params as unknown as Record); }, /** Report a Web Event */ async pixelTrack(params: PixelTrackParams): Promise { return post("/open_api/v1.3/pixel/track/", params as unknown as Record); }, /** Report Web Events in bulk */ async pixelBatch(params: PixelBatchParams): Promise { return post("/open_api/v1.3/pixel/batch/", params as unknown as Record); }, /** Get pixels */ async listPixel(params: PixelListParams): Promise { return get("/open_api/v1.3/pixel/list/", params as unknown as Record); }, /** Create a pixel */ async createPixel(params: PixelCreateParams): Promise { return post("/open_api/v1.3/pixel/create/", params as unknown as Record); }, /** Update a pixel */ async updatePixel(params: PixelUpdateParams): Promise { return post("/open_api/v1.3/pixel/update/", params as unknown as Record); }, /** Create Pixel Events */ async createEvent(params: PixelEventCreateParams): Promise { return post("/open_api/v1.3/pixel/event/create/", params as unknown as Record); }, /** Update a Pixel Event */ async updateEvent(params: PixelEventUpdateParams): Promise { return post("/open_api/v1.3/pixel/event/update/", params as unknown as Record); }, /** Delete a Pixel Event */ async deleteEvent(params: PixelEventDeleteParams): Promise { return post("/open_api/v1.3/pixel/event/delete/", params as unknown as Record); }, /** Get Instant Page events */ async instantPageEvent(params: PixelInstantPageEventParams): Promise { return get("/open_api/v1.3/pixel/instant_page/event/", params as unknown as Record); }, /** Get Pixel Event statistics */ async eventStats(params: PixelEventStatsParams): Promise { return get("/open_api/v1.3/pixel/event/stats/", params as unknown as Record); }, /** Create an Offline Event set */ async createOffline(params: OfflineCreateParams): Promise { return post("/open_api/v1.3/offline/create/", params as unknown as Record); }, /** Update an Offline Event set */ async updateOffline(params: OfflineUpdateParams): Promise { return post("/open_api/v1.3/offline/update/", params as unknown as Record); }, /** Delete an Offline Event set */ async deleteOffline(params: OfflineDeleteParams): Promise { return post("/open_api/v1.3/offline/delete/", params as unknown as Record); }, /** Get Offline Event sets */ async getOffline(params: OfflineGetParams): Promise { return get("/open_api/v1.3/offline/get/", params as unknown as Record); }, /** Report an Offline Event */ async offlineTrack(params: OfflineTrackParams): Promise { return post("/open_api/v1.3/offline/track/", params as unknown as Record); }, /** Report Offline Events in bulk */ async offlineBatch(params: OfflineBatchParams): Promise { return post("/open_api/v1.3/offline/batch/", params as unknown as Record); }, /** Get CRM Event Sets */ async listCrm(params: CrmListParams): Promise { return get("/open_api/v1.3/crm/list/", params as unknown as Record); }, /** Create a CRM Event Set */ async createCrm(params: CrmCreateParams): Promise { return post("/open_api/v1.3/crm/create/", params as unknown as Record); }, /** Get the message event sets for ad creation */ async getMessageEventSet(params: CtmMessageEventSetGetParams): Promise { return get("/open_api/v1.3/ctm/message_event_set/get/", params as unknown as Record); }, }; }