UNPKG

@bestieapp/tiktok-marketing-api

Version:

Marketing API for TikTok

267 lines (266 loc) 19.4 kB
/// <reference types="node" /> /// <reference types="node" /> import { ReadStream } from "fs"; export interface TikTokResponse<Data = any> { message: string; code: number; data: Data; request_id: string; } export interface TikTokAuthorizedAccountResponse { list: TikTokAuthorizedAccountData[]; } export interface TikTokVideoResponse { id: string; video_id: string; video_cover_url: string; format: string; preview_url: string; file_name: string; displayable: boolean; height: number; width: number; bit_rate: number; create_time: string; modify_time: string; signature: string; duration: number; size: number; fix_task_id: string; flaw_types: string[]; } export interface TikTokAuthorizedAccountData { advertiser_id: string; advertiser_name: string; } export interface TikTokAccessTokenResponse { access_token: string; scope: number[]; advertiser_ids: string[]; } export declare type ServiceType = "AUCTION" | "RESERVATION"; export declare type ReportType = "BASIC" | "AUDIENCE" | "PLAYABLE_MATERIAL" | "CATALOG"; export declare const DATA_LEVELS: readonly ["AUCTION_AD", "AUCTION_ADGROUP", "AUCTION_ADVERTISER", "AUCTION_CAMPAIGN", "RESERVATION_AD", "RESERVATION_ADGROUP", "RESERVATION_ADVERTISER", "RESERVATION_CAMPAIGN"]; declare type DataLevelTuple = typeof DATA_LEVELS; export declare type DataLevel = DataLevelTuple[number]; export declare type OrderType = "ASC" | "DESC"; export declare type QueryMode = "REGULAR" | "CHUNK"; export declare const FILTER_TYPES: readonly ["IN", "MATCH", "GREATER_EQUAL", "GREATER_THAN", "LOWER_EQUAL", "LOWER_THAN", "BETWEEN"]; declare type FilterTypeTuple = typeof FILTER_TYPES; export declare type FilterType = FilterTypeTuple[number]; export interface Filtering<FieldName = string> { field_name: FieldName; filter_type: FilterType; filter_value: string | string[]; } export declare const DIMENSION: readonly ["advertiser_id", "campaign_id", "adgroup_id", "ad_id", "stat_time_day", "stat_time_hour", "ac", "age", "country_code", "interest_category", "gender", "language", "placement", "platform"]; declare type DimensionTuple = typeof DIMENSION; export declare type Dimension = DimensionTuple[number]; export declare const BASIC_FILTER_FIELDS: readonly ["campaign_ids", "campaign_type", "campaign_status", "adgroup_ids", "adgroup_status", "ad_ids", "ad_status", "promotion_type", "dpa_target_audience_type", "create_time"]; declare type BasicFilterFieldTuple = typeof BASIC_FILTER_FIELDS; export declare type BasicFilterField = BasicFilterFieldTuple[number]; export declare const BASIC_DIMENSIONS: readonly ["advertiser_id", "campaign_id", "adgroup_id", "ad_id", "stat_time_day", "stat_time_hour", "country_code"]; declare type BasicDimensionTuple = typeof BASIC_DIMENSIONS; export declare type BasicDimension = BasicDimensionTuple[number]; export declare const ATTRIBUTE_METRICS: string[]; declare type AttributeMetricTuple = typeof ATTRIBUTE_METRICS; export declare type AttributeMetric = AttributeMetricTuple[number]; export declare const BASIC_DATA_METRICS: readonly ["spend", "cash_spend", "voucher_spend", "cpc", "cpm", "impressions", "clicks", "ctr", "reach", "cost_per_1000_reached", "conversion", "cost_per_conversion", "conversion_rate", "real_time_conversion", "real_time_cost_per_conversion", "real_time_conversion_rate", "result", "cost_per_result", "result_rate", "real_time_result", "real_time_cost_per_result", "real_time_result_rate", "secondary_goal_result", "cost_per_secondary_goal_result", "secondary_goal_result_rate", "frequency", "currency"]; declare type BasicDataMetricTuple = typeof BASIC_DATA_METRICS; export declare type BasicDataMetric = BasicDataMetricTuple[number]; export declare const VIDEO_PLAY_METRICS: readonly ["video_play_actions", "video_watched_2s", "video_watched_6s", "average_video_play", "average_video_play_per_user", "video_views_p25", "video_views_p50", "video_views_p75", "video_views_p100", "engaged_view"]; declare type VideoPlayMetricTuple = typeof VIDEO_PLAY_METRICS; export declare type VideoPlayMetric = VideoPlayMetricTuple[number]; export declare const ENGAGEMENT_METRICS: string[]; declare type EngagementMetricTuple = typeof ENGAGEMENT_METRICS; export declare type EngagementMetric = EngagementMetricTuple[number]; export declare const ATTRIBUTION_METRICS: readonly ["vta_app_install", "vta_conversion", "cost_per_vta_conversion", "vta_registration", "cost_per_vta_registration", "vta_purchase", "cost_per_vta_purchase", "cta_app_install", "cta_conversion", "cost_per_cta_conversion", "cta_registration", "cost_per_cta_registration", "cta_purchase", "cost_per_cta_purchase"]; declare type AttributionMetricTuple = typeof ATTRIBUTION_METRICS; export declare type AttributionMetric = AttributionMetricTuple[number]; export declare const PAGE_EVENT_METRICS: string[]; declare type PageEventMetricTuple = typeof PAGE_EVENT_METRICS; export declare type PageEventMetric = PageEventMetricTuple[number]; export declare const ONSITE_EVENT_METRICS: readonly ["onsite_shopping_roas", "onsite_shopping", "onsite_initiate_checkout_count", "onsite_on_web_detail", "onsite_add_to_wishlist", "onsite_add_billing", "onsite_on_web_cart", "onsite_form", "onsite_download_start", "ix_page_view_count", "ix_button_click_count", "ix_product_click_count"]; declare type OnsiteEventMetricTuple = typeof ONSITE_EVENT_METRICS; export declare type OnsiteEventMetric = OnsiteEventMetricTuple[number]; export declare const BASIC_METRICS: Readonly<BasicMetric[]>; export declare type BasicMetric = AttributeMetric | BasicDataMetric | VideoPlayMetric | EngagementMetric | AttributeMetric | PageEventMetric | OnsiteEventMetric; export declare type Metric = "campaign_name" | "spend" | "impressions" | "reach" | string; export declare type BasicSyncReportRequest = Omit<SyncReportRequest<BasicDimension, BasicMetric, BasicFilterField>, "report_type">; export interface SyncReportRequest<D = Dimension, M = Metric, FilterFieldName extends string = string> { advertiser_id: string; report_type: ReportType; service_type?: ServiceType; data_level: DataLevel; dimensions: D[]; metrics?: M[]; start_date?: string; end_date?: string; filtering?: Filtering<FilterFieldName>[]; order_field?: string; order_type?: OrderType; query_mode?: QueryMode; page?: number; page_size?: number; } export interface ReportResponse<D extends string = Dimension, M extends string = Metric> { list: ReportData<D, M>[]; page_info: PageInfo; } export declare type BasicReportResponse = ReportResponse<BasicDimension, BasicMetric>; export interface ReportData<D extends string = Dimension, M extends string = Metric> { dimensions: Record<D, string>; metrics: Record<M, string>; } export interface PageInfo { page: number; page_size: number; total_number: number; total_page: number; } export interface UploadVideoRequest { advertiser_id: string; upload_type: UploadType; video_file: string | ReadStream | Buffer; video_signature: string; file_name?: string; is_third_party?: boolean; flaw_detect?: boolean; auto_fix_enabled?: boolean; auto_bind_enabled?: boolean; } export declare type UploadVideoFileRequest = Pick<UploadVideoRequest, "advertiser_id" | "is_third_party" | "flaw_detect" | "auto_bind_enabled" | "auto_fix_enabled" | "file_name">; export declare enum UploadType { UPLOAD_BY_FILE = "UPLOAD_BY_FILE", UPLOAD_BY_URL = "UPLOAD_BY_URL", UPLOAD_BY_FILE_ID = "UPLOAD_BY_FILE_ID", UPLOAD_BY_VIDEO_ID = "UPLOAD_BY_VIDEO_ID" } export interface CommonRequestOptions<FilterFieldName extends string = string> { filtering?: Record<FilterFieldName | string, string | string[]>; page?: number; page_size?: number; } export declare const CAMPAIGN_FIELDS: readonly ["campaign_id", "campaign_name", "advertiser_id", "budget", "budget_mode", "operation_status", "objective", "objective_type", "create_time", "modify_time", "is_new_structure", "campaign_app_profile_page_state", "special_industries", "secondary_status"]; declare type CampaignFieldTuple = typeof CAMPAIGN_FIELDS; export declare type CampaignField = CampaignFieldTuple[number]; export declare type CampaignFilterField = "campaign_ids" | "campaign_name" | "campaign_type" | "objective_type" | "primary_status" | "creation_filter_start_time" | "creation_filter_end_time" | "secondary_status"; export declare const ADGROUP_FIELDS: readonly ["advertiser_id", "campaign_id", "adgroup_id", "adgroup_name", "split_test_group_id", "split_test_status", "share_disabled", "placement_type", "placements", "inventory_filter_enabled", "comment_disabled", "app_id", "promotion_type", "store_id", "store_authorized_bc_id", "identity_id", "identity_type", "identity_authorized_bc_id", "app_download_url", "pixel_id", "optimization_event", "secondary_optimization_event", "creative_material_mode", "audience_ids", "excluded_audience_ids", "audience_rule", "audience_type", "location_ids", "is_hfss", "interest_category_ids", "interest_keyword_ids", "age_groups", "gender", "languages", "operating_systems", "network_types", "device_price_ranges", "min_android_version", "min_ios_version", "ios14_targeting", "device_model_ids", "household_income", "budget_mode", "budget", "scheduled_budget", "schedule_type", "schedule_start_time", "schedule_end_time", "dayparting", "optimization_goal", "bid_display_mode", "cpv_video_duration", "conversion_window (deprecated)", "pacing", "billing_event", "skip_learning_phase", "bid_type", "bid_price", "conversion_bid_price", "deep_bid_type", "deep_cpa_bid", "next_day_retention", "secondary_status", "operation_status", "frequency", "frequency_schedule", "statistic_type", "carrier_ids", "video_download_disabled", "blocked_pangle_app_ids", "actions", "action_period", "video_user_actions", "action_category_ids", "action_scene", "rf_purchased_type", "purchased_impression", "purchased_reach", "rf_estimated_cpr", "rf_estimated_frequency", "included_pangle_audience_package_ids", "excluded_pangle_audience_package_ids", "is_new_structure", "catalog_id", "product_set_id", "catalog_authorized_bc_id", "included_custom_actions", "excluded_custom_actions", "shopping_ads_retargeting_type", "brand_safety_type", "brand_safety_partner", "promotion_website_type", "ios14_quota_type", "roas_bid", "auto_targeting_enabled", "targeting_expansion", "adgroup_app_profile_page_state", "shopping_ads_type", "product_source"]; declare type AdGroupFieldTuple = typeof ADGROUP_FIELDS; export declare type AdGroupField = AdGroupFieldTuple[number]; export declare type AdGroupFilterField = "adgroup_name" | "campaign_ids" | "adgroup_ids" | "objective_type" | "creation_filter_start_time" | "creation_filter_end_time" | "billing_events" | "primary_status" | "secondary_status"; export declare const AD_FIELDS: readonly ["advertiser_id", "campaign_id", "campaign_name", "adgroup_id", "adgroup_name", "ad_id", "ad_name", "identity_id", "identity_type", "identity_authorized_bc_id", "call_to_action", "call_to_action_id", "card_id", "secondary_status", "operation_status", "is_aco", "image_ids", "ad_format", "ad_text", "ad_texts", "video_id", "tiktok_item_id", "app_name", "landing_page_url", "landing_page_urls", "display_name", "profile_image_url", "impression_tracking_url", "click_tracking_url", "deeplink", "deeplink_type", "fallback_type", "playable_url", "page_id", "vast_moat_enabled", "creative_authorized", "is_new_structure", "create_time", "modify_time", "shopping_ads_fallback_type", "shopping_ads__deeplink_type", "shopping_ads_video_package_id", "promotional_music_disabled", "dark_post_status", "branded_content_disabled", "item_duet_status", "item_stitch_status", "brand_safety_postbid_partner", "product_specific_type", "catalog_id", "item_group_ids", "product_set_id", "sku_ids", "dynamic_format", "vertical_video_strategy", "dynamic_destination"]; declare type AdFieldTuple = typeof AD_FIELDS; export declare type AdField = AdFieldTuple[number]; export declare type AdFilterField = "campaign_ids" | "adgroup_ids" | "ad_text" | "ad_ids" | "objective_type" | "creation_filter_start_time" | "creation_filter_end_time" | "billing_events" | "primary_status" | "secondary_status"; export declare enum CampaignSecondaryStatus { CAMPAIGN_STATUS_DELETE = "CAMPAIGN_STATUS_DELETE", CAMPAIGN_STATUS_ADVERTISER_AUDIT_DENY = "CAMPAIGN_STATUS_ADVERTISER_AUDIT_DENY", CAMPAIGN_STATUS_ADVERTISER_AUDIT = "CAMPAIGN_STATUS_ADVERTISER_AUDIT", ADVERTISER_CONTRACT_PENDING = "ADVERTISER_CONTRACT_PENDING", ADVERTISER_ACCOUNT_PUNISH = "ADVERTISER_ACCOUNT_PUNISH", CAMPAIGN_STATUS_BUDGET_EXCEED = "CAMPAIGN_STATUS_BUDGET_EXCEED", CAMPAIGN_STATUS_DISABLE = "CAMPAIGN_STATUS_DISABLE", CAMPAIGN_STATUS_ENABLE = "CAMPAIGN_STATUS_ENABLE", CAMPAIGN_STATUS_ALL = "CAMPAIGN_STATUS_ALL", CAMPAIGN_STATUS_NOT_DELETE = "CAMPAIGN_STATUS_NOT_DELETE" } export declare enum AdGroupSecondaryStatus { ADGROUP_STATUS_ALL = "ADGROUP_STATUS_ALL", ADGROUP_STATUS_NOT_DELETE = "ADGROUP_STATUS_NOT_DELETE", ADGROUP_STATUS_DELETE = "ADGROUP_STATUS_DELETE", ADGROUP_STATUS_CAMPAIGN_DELETE = "ADGROUP_STATUS_CAMPAIGN_DELETE", ADGROUP_STATUS_ADVERTISER_AUDIT_DENY = "ADGROUP_STATUS_ADVERTISER_AUDIT_DENY", ADGROUP_STATUS_ADVERTISER_AUDIT = "ADGROUP_STATUS_ADVERTISER_AUDIT", ADVERTISER_CONTRACT_PENDING = "ADVERTISER_CONTRACT_PENDING", ADVERTISER_ACCOUNT_PUNISH = "ADVERTISER_ACCOUNT_PUNISH", ADGROUP_STATUS_CAMPAIGN_EXCEED = "ADGROUP_STATUS_CAMPAIGN_EXCEED", ADGROUP_STATUS_BUDGET_EXCEED = "ADGROUP_STATUS_BUDGET_EXCEED", ADGROUP_STATUS_BALANCE_EXCEED = "ADGROUP_STATUS_BALANCE_EXCEED", ADGROUP_STATUS_AUDIT_DENY = "ADGROUP_STATUS_AUDIT_DENY", ADGROUP_STATUS_REAUDIT = "ADGROUP_STATUS_REAUDIT", ADGROUP_STATUS_AUDIT = "ADGROUP_STATUS_AUDIT", ADGROUP_STATUS_CREATE = "ADGROUP_STATUS_CREATE", ADGROUP_STATUS_FROZEN = "ADGROUP_STATUS_FROZEN", ADGROUP_STATUS_NOT_START = "ADGROUP_STATUS_NOT_START", ADGROUP_STATUS_TIME_DONE = "ADGROUP_STATUS_TIME_DONE", ADGROUP_STATUS_CAMPAIGN_DISABLE = "ADGROUP_STATUS_CAMPAIGN_DISABLE", ADGROUP_STATUS_DISABLE = "ADGROUP_STATUS_DISABLE", ADGROUP_STATUS_DELIVERY_OK = "ADGROUP_STATUS_DELIVERY_OK", ADGROUP_STATUS_SHADOW_ADGROUP_REAUDIT = "ADGROUP_STATUS_SHADOW_ADGROUP_REAUDIT", ADGROUP_STATUS_PIXEL_UNBIND = "ADGROUP_STATUS_PIXEL_UNBIND", ADGROUP_STATUS_LIVE_OFFLINE = "ADGROUP_STATUS_LIVE_OFFLINE", ADGROUP_STATUS_PARTIAL_AUDIT_NO_DELIVERY = "ADGROUP_STATUS_PARTIAL_AUDIT_NO_DELIVERY", ADGROUP_STATUS_PARTIAL_AUDIT_DELIVERY_OK = "ADGROUP_STATUS_PARTIAL_AUDIT_DELIVERY_OK", ADGROUP_STATUS_INDUSTRY_QUALIFICATION_MISSING = "ADGROUP_STATUS_INDUSTRY_QUALIFICATION_MISSING", ADGROUP_STATUS_INDUSTRY_QUALIFICATION_EXPIRED = "ADGROUP_STATUS_INDUSTRY_QUALIFICATION_EXPIRED", ADGROUP_STATUS_INDUSTRY_QUALIFICATION_DENY = "ADGROUP_STATUS_INDUSTRY_QUALIFICATION_DENY" } export declare enum AdSecondaryStatus { AD_STATUS_ALL = "AD_STATUS_ALL", AD_STATUS_NOT_DELETE = "AD_STATUS_NOT_DELETE", AD_STATUS_CAMPAIGN_DELETE = "AD_STATUS_CAMPAIGN_DELETE", AD_STATUS_ADGROUP_DELETE = "AD_STATUS_ADGROUP_DELETE", AD_STATUS_DELETE = "AD_STATUS_DELETE", AD_STATUS_ADVERTISER_AUDIT_DENY = "AD_STATUS_ADVERTISER_AUDIT_DENY", AD_STATUS_ADVERTISER_AUDIT = "AD_STATUS_ADVERTISER_AUDIT", ADVERTISER_CONTRACT_PENDING = "ADVERTISER_CONTRACT_PENDING", ADVERTISER_ACCOUNT_PUNISH = "ADVERTISER_ACCOUNT_PUNISH", AD_STATUS_BALANCE_EXCEED = "AD_STATUS_BALANCE_EXCEED", AD_STATUS_CAMPAIGN_EXCEED = "AD_STATUS_CAMPAIGN_EXCEED", AD_STATUS_BUDGET_EXCEED = "AD_STATUS_BUDGET_EXCEED", AD_STATUS_AUDIT = "AD_STATUS_AUDIT", AD_STATUS_REAUDIT = "AD_STATUS_REAUDIT", AD_STATUS_AUDIT_DENY = "AD_STATUS_AUDIT_DENY", AD_STATUS_ADGROUP_AUDIT_DENY = "AD_STATUS_ADGROUP_AUDIT_DENY", AD_STATUS_ADGROUP_PARTIAL_AUDIT_NO_DELIVERY = "AD_STATUS_ADGROUP_PARTIAL_AUDIT_NO_DELIVERY", AD_STATUS_PARTIAL_AUDIT_DELIVERY_OK = "AD_STATUS_PARTIAL_AUDIT_DELIVERY_OK", AD_STATUS_PARTIAL_AUDIT_NO_DELIVERY = "AD_STATUS_PARTIAL_AUDIT_NO_DELIVERY", AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_MISSING = "AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_MISSING", AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_EXPIRED = "AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_EXPIRED", AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_DENY = "AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_DENY", AD_STATUS_MUSIC_AUTHORIZATION_MISSING = "AD_STATUS_MUSIC_AUTHORIZATION_MISSING", AD_STATUS_PIXEL_UNBIND = "AD_STAUS_PIXEL_UNBIND", AD_STATUS_LIVE_OFFLINE = "AD_STATUS_LIVE_OFFLINE", AD_STATUS_NOT_START = "AD_STATUS_NOT_START", AD_STATUS_DONE = "AD_STATUS_DONE", AD_STATUS_CAMPAIGN_DISABLE = "AD_STATUS_CAMPAIGN_DISABLE", AD_STATUS_ADGROUP_DISABLE = "AD_STATUS_ADGROUP_DISABLE", ADGROUP_STATUS_FROZEN = "ADGROUP_STATUS_FROZEN", AD_STATUS_DISABLE = "AD_STATUS_DISABLE", AD_STATUS_DELIVERY_OK = "AD_STATUS_DELIVERY_OK", AD_STATUS_PROCESS_AUDIO = "AD_STATUS_PROCESS_AUDIO" } export declare enum AdAccountStatus { STATUS_DISABLE = "STATUS_DISABLE", STATUS_PENDING_CONFIRM = "STATUS_PENDING_CONFIRM", STATUS_PENDING_VERIFIED = "STATUS_PENDING_VERIFIED", STATUS_CONFIRM_FAIL = "STATUS_CONFIRM_FAIL", STATUS_ENABLE = "STATUS_ENABLE", STATUS_CONFIRM_FAIL_END = "STATUS_CONFIRM_FAIL_END", STATUS_PENDING_CONFIRM_MODIFY = "STATUS_PENDING_CONFIRM_MODIFY", STATUS_CONFIRM_MODIFY_FAIL = "STATUS_CONFIRM_MODIFY_FAIL", STATUS_LIMIT = "STATUS_LIMIT", STATUS_WAIT_FOR_BPM_AUDIT = "STATUS_WAIT_FOR_BPM_AUDIT", STATUS_WAIT_FOR_PUBLIC_AUTH = "STATUS_WAIT_FOR_PUBLIC_AUTH", STATUS_SELF_SERVICE_UNAUDITED = "STATUS_SELF_SERVICE_UNAUDITED", STATUS_CONTRACT_PENDING = "STATUS_CONTRACT_PENDING" } export interface CommonResponse<Field extends string = string> { list: Record<Field, any>[]; page_info: PageInfo; } export declare type VideoFilterField = "height" | "video_ids" | "material_ids" | "ratio" | "width" | "displayable"; export declare const VIDEO_FIELDS: readonly ["displayable", "width", "video_cover_url", "bit_rate", "format", "preview_url", "duration", "height", "signature", "video_id", "size", "material_id", "allowed_placements", "allow_download", "file_name", "create_time", "modify_time"]; declare type VideoFieldTuple = typeof AD_ACCOUNT_FIELDS; export declare type VideoField = VideoFieldTuple[number]; export declare type CampaignResponse = CommonResponse<CampaignField>; export declare type AdGroupResponse = CommonResponse<AdGroupField>; export declare type AdResponse = CommonResponse<AdField>; export declare type AdAccountResponse = CommonResponse<AdAccountField>; export declare type VideoResponse = CommonResponse<VideoField>; export declare const AD_ACCOUNT_FIELDS: readonly ["telephone_number", "contacter", "currency", "cellphone_number", "timezone", "advertiser_id", "role", "company", "status", "description", "rejection_reason", "address", "name", "language", "industry", "license_no", "email", "license_url", "country", "balance", "create_time", "display_timezone", "owner_bc_id"]; declare type AdAccountFieldTuple = typeof AD_ACCOUNT_FIELDS; export declare type AdAccountField = AdAccountFieldTuple[number]; export declare const TikTokReportField: Partial<Record<BasicMetric, BasicMetric>>; export {};