taboola-backstage-sdk 0.3.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -50
- package/dist/index.cjs +108 -680
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +447 -908
- package/dist/index.d.ts +447 -908
- package/dist/index.js +108 -680
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -149,23 +149,25 @@ type ItemStatus = 'RUNNING' | 'CRAWLING' | 'CRAWLING_ERROR' | 'NEED_TO_EDIT' | '
|
|
|
149
149
|
/**
|
|
150
150
|
* Pricing models
|
|
151
151
|
*/
|
|
152
|
-
type PricingModel = 'CPC' | 'CPM' | 'VCPM'
|
|
152
|
+
type PricingModel = 'CPC' | 'CPM' | 'VCPM';
|
|
153
153
|
/**
|
|
154
154
|
* Spending limit models
|
|
155
155
|
*/
|
|
156
156
|
type SpendingLimitModel = 'MONTHLY' | 'ENTIRE' | 'DAILY' | 'NONE';
|
|
157
157
|
/**
|
|
158
158
|
* Daily ad delivery models
|
|
159
|
+
*
|
|
160
|
+
* @remarks ACCELERATED is deprecated by Taboola
|
|
159
161
|
*/
|
|
160
162
|
type DailyAdDeliveryModel = 'ACCELERATED' | 'BALANCED' | 'STRICT';
|
|
161
163
|
/**
|
|
162
164
|
* Marketing objectives
|
|
163
165
|
*/
|
|
164
|
-
type MarketingObjective = 'DRIVE_WEBSITE_TRAFFIC' | 'BRAND_AWARENESS' | '
|
|
166
|
+
type MarketingObjective = 'DRIVE_WEBSITE_TRAFFIC' | 'BRAND_AWARENESS' | 'ONLINE_PURCHASES' | 'LEADS_GENERATION' | 'MOBILE_APP_INSTALL' | 'OTHER';
|
|
165
167
|
/**
|
|
166
168
|
* Bid strategies
|
|
167
169
|
*/
|
|
168
|
-
type BidStrategy = 'FIXED' | 'SMART' | 'TARGET_CPA' | 'MAX_CONVERSIONS'
|
|
170
|
+
type BidStrategy = 'FIXED' | 'SMART' | 'TARGET_CPA' | 'MAX_CONVERSIONS';
|
|
169
171
|
/**
|
|
170
172
|
* Traffic allocation modes
|
|
171
173
|
*/
|
|
@@ -197,13 +199,13 @@ type BrandSafetyProvider = 'IAS' | 'DV' | 'MOAT' | 'NONE';
|
|
|
197
199
|
/**
|
|
198
200
|
* Report dimension types
|
|
199
201
|
*/
|
|
200
|
-
type ReportDimension = 'day' | 'by_hour_of_day' | 'week' | 'month' | 'content_provider_breakdown' | 'campaign_breakdown' | '
|
|
202
|
+
type ReportDimension = 'day' | 'by_hour_of_day' | 'week' | 'month' | 'content_provider_breakdown' | 'campaign_breakdown' | 'campaign_hour_breakdown' | 'site_breakdown' | 'country_breakdown' | 'content_provider_country_breakdown' | 'region_breakdown' | 'dma_breakdown' | 'platform_breakdown' | 'campaign_day_breakdown' | 'campaign_site_day_breakdown' | 'user_segment_breakdown' | 'os_family_breakdown' | 'os_version_breakdown' | 'browser_breakdown' | 'contextual_breakdown';
|
|
201
203
|
/**
|
|
202
204
|
* Realtime Campaign Report dimension types
|
|
203
205
|
*
|
|
204
206
|
* @see https://developers.taboola.com/backstage-api/reference/realtime-campaign-report
|
|
205
207
|
*/
|
|
206
|
-
type RealtimeCampaignDimension = 'by_hour' | 'by_campaign' | 'by_site' | 'by_country' | 'by_platform' | 'by_campaign_by_hour' | 'by_campaign_by_site' | 'by_campaign_by_country' | 'by_campaign_by_platform' | 'by_campaign_by_country_by_platform' | 'by_platform_by_country';
|
|
208
|
+
type RealtimeCampaignDimension = 'by_hour' | 'by_campaign' | 'by_site' | 'by_country' | 'by_platform' | 'by_campaign_by_hour' | 'by_campaign_by_site' | 'by_campaign_by_country' | 'by_campaign_by_platform' | 'by_campaign_by_country_by_platform' | 'by_platform_by_country' | 'by_hour_by_smallest_time_bucket' | 'by_campaign_by_smallest_time_bucket' | 'by_site_by_smallest_time_bucket' | 'by_country_by_smallest_time_bucket' | 'by_platform_by_smallest_time_bucket';
|
|
207
209
|
/**
|
|
208
210
|
* Realtime Ads Report dimension types
|
|
209
211
|
*
|
|
@@ -286,6 +288,8 @@ interface Account {
|
|
|
286
288
|
campaign_types: CampaignType[];
|
|
287
289
|
/** Account currency */
|
|
288
290
|
currency: CurrencyCode;
|
|
291
|
+
/** Account time zone name */
|
|
292
|
+
time_zone_name?: string;
|
|
289
293
|
}
|
|
290
294
|
/**
|
|
291
295
|
* Advertiser account in network
|
|
@@ -305,19 +309,17 @@ interface AdvertiserAccount {
|
|
|
305
309
|
campaign_types: CampaignType[];
|
|
306
310
|
/** Account currency */
|
|
307
311
|
currency: CurrencyCode;
|
|
312
|
+
/** Account time zone name */
|
|
313
|
+
time_zone_name?: string;
|
|
308
314
|
}
|
|
309
315
|
/**
|
|
310
316
|
* Response for allowed accounts list
|
|
311
317
|
*/
|
|
312
|
-
|
|
313
|
-
results: Account[];
|
|
314
|
-
}
|
|
318
|
+
type AllowedAccountsResponse = ListResponse<Account>;
|
|
315
319
|
/**
|
|
316
320
|
* Response for network advertisers list
|
|
317
321
|
*/
|
|
318
|
-
|
|
319
|
-
results: AdvertiserAccount[];
|
|
320
|
-
}
|
|
322
|
+
type NetworkAdvertisersResponse = ListResponse<AdvertiserAccount>;
|
|
321
323
|
|
|
322
324
|
/**
|
|
323
325
|
* Campaign types for Taboola Backstage API
|
|
@@ -534,14 +536,16 @@ interface CreateCampaignRequest {
|
|
|
534
536
|
name: string;
|
|
535
537
|
/** Branding text (required) */
|
|
536
538
|
branding_text: string;
|
|
539
|
+
/** Marketing objective (required) */
|
|
540
|
+
marketing_objective: MarketingObjective;
|
|
541
|
+
/** Pricing model */
|
|
542
|
+
pricing_model?: PricingModel;
|
|
537
543
|
/** Cost per click */
|
|
538
544
|
cpc?: number;
|
|
539
545
|
/** Spending limit */
|
|
540
546
|
spending_limit?: number;
|
|
541
547
|
/** Spending limit model */
|
|
542
548
|
spending_limit_model?: SpendingLimitModel;
|
|
543
|
-
/** Marketing objective (required) */
|
|
544
|
-
marketing_objective: MarketingObjective;
|
|
545
549
|
/** Daily cap */
|
|
546
550
|
daily_cap?: number;
|
|
547
551
|
/** Daily ad delivery model */
|
|
@@ -552,51 +556,72 @@ interface CreateCampaignRequest {
|
|
|
552
556
|
cpa_goal?: number;
|
|
553
557
|
/** Country targeting */
|
|
554
558
|
country_targeting?: TargetingValue;
|
|
559
|
+
/** Sub-country (region) targeting */
|
|
560
|
+
sub_country_targeting?: TargetingValue;
|
|
561
|
+
/** DMA targeting (US only) */
|
|
562
|
+
dma_country_targeting?: TargetingValue;
|
|
563
|
+
/** Region targeting */
|
|
564
|
+
region_country_targeting?: TargetingValue;
|
|
565
|
+
/** City targeting */
|
|
566
|
+
city_targeting?: TargetingValue;
|
|
567
|
+
/** Postal code targeting */
|
|
568
|
+
postal_code_targeting?: TargetingValue;
|
|
569
|
+
/** Contextual targeting */
|
|
570
|
+
contextual_targeting?: TargetingValue;
|
|
555
571
|
/** Platform targeting */
|
|
556
572
|
platform_targeting?: TargetingValue;
|
|
573
|
+
/** Publisher targeting (blocking) */
|
|
574
|
+
publisher_targeting?: TargetingValue;
|
|
557
575
|
/** OS targeting */
|
|
558
576
|
os_targeting?: TargetingValue;
|
|
559
|
-
/**
|
|
577
|
+
/** Connection type targeting */
|
|
578
|
+
connection_type_targeting?: TargetingValue;
|
|
579
|
+
/** Browser targeting */
|
|
580
|
+
browser_targeting?: TargetingValue;
|
|
581
|
+
/** Auto publisher targeting */
|
|
582
|
+
auto_publisher_targeting?: TargetingValue;
|
|
583
|
+
/** Publisher bid modifiers */
|
|
584
|
+
publisher_bid_modifier?: PublisherBidModifierCollection;
|
|
585
|
+
/** Publisher bid strategy modifiers */
|
|
586
|
+
publisher_bid_strategy_modifiers?: PublisherBidStrategyModifierCollection;
|
|
587
|
+
/** Start date (defaults to 'now' if omitted) */
|
|
560
588
|
start_date?: DateString;
|
|
561
589
|
/** End date */
|
|
562
590
|
end_date?: DateString;
|
|
591
|
+
/** Whether campaign is active */
|
|
592
|
+
is_active?: boolean;
|
|
563
593
|
/** Tracking code */
|
|
564
594
|
tracking_code?: string;
|
|
565
595
|
/** Comments */
|
|
566
596
|
comments?: string;
|
|
567
597
|
/** Traffic allocation mode */
|
|
568
598
|
traffic_allocation_mode?: TrafficAllocationMode;
|
|
599
|
+
/** A/B test end date */
|
|
600
|
+
traffic_allocation_ab_test_end_date?: DateString | null;
|
|
601
|
+
/** External brand safety config */
|
|
602
|
+
external_brand_safety?: ExternalBrandSafety;
|
|
603
|
+
/** Marketplace audience targeting */
|
|
604
|
+
audience_segments_multi_targeting?: MultiTargeting;
|
|
605
|
+
/** Custom audience targeting */
|
|
606
|
+
custom_audience_targeting?: MultiTargeting;
|
|
607
|
+
/** Marking label targeting */
|
|
608
|
+
marking_label_multi_targeting?: MultiTargeting;
|
|
609
|
+
/** Lookalike audience targeting */
|
|
610
|
+
lookalike_audience_targeting?: MultiTargeting;
|
|
611
|
+
/** Contextual segments targeting */
|
|
612
|
+
contextual_segments_targeting?: MultiTargeting;
|
|
613
|
+
/** Verification pixel config */
|
|
614
|
+
verification_pixel?: VerificationPixel;
|
|
615
|
+
/** Viewability tag config */
|
|
616
|
+
viewability_tag?: ViewabilityTag;
|
|
617
|
+
/** Activity schedule */
|
|
618
|
+
activity_schedule?: ActivitySchedule;
|
|
569
619
|
}
|
|
570
620
|
/**
|
|
571
621
|
* Campaign update request
|
|
572
622
|
*
|
|
573
623
|
* Submit a JSON object with only the fields you want to update.
|
|
574
624
|
* Fields that are omitted or null will not be updated.
|
|
575
|
-
*
|
|
576
|
-
* @example Update a single field
|
|
577
|
-
* ```typescript
|
|
578
|
-
* await client.campaigns.update('account-id', 'campaign-id', {
|
|
579
|
-
* name: 'DemoCampaign - Edited'
|
|
580
|
-
* });
|
|
581
|
-
* ```
|
|
582
|
-
*
|
|
583
|
-
* @example Update multiple fields
|
|
584
|
-
* ```typescript
|
|
585
|
-
* await client.campaigns.update('account-id', 'campaign-id', {
|
|
586
|
-
* name: 'Demo Campaign - Edited Again',
|
|
587
|
-
* branding_text: 'New branding text',
|
|
588
|
-
* spending_limit: 10000,
|
|
589
|
-
* spending_limit_model: 'ENTIRE',
|
|
590
|
-
* country_targeting: {
|
|
591
|
-
* type: 'INCLUDE',
|
|
592
|
-
* value: ['AU', 'GB']
|
|
593
|
-
* },
|
|
594
|
-
* platform_targeting: {
|
|
595
|
-
* type: 'INCLUDE',
|
|
596
|
-
* value: ['TBLT', 'PHON']
|
|
597
|
-
* }
|
|
598
|
-
* });
|
|
599
|
-
* ```
|
|
600
625
|
*/
|
|
601
626
|
interface UpdateCampaignRequest {
|
|
602
627
|
/** Campaign name */
|
|
@@ -696,35 +721,29 @@ interface CampaignListResponse {
|
|
|
696
721
|
count: number;
|
|
697
722
|
};
|
|
698
723
|
}
|
|
699
|
-
/**
|
|
700
|
-
* Bulk campaign update request item
|
|
701
|
-
*/
|
|
702
|
-
interface BulkCampaignUpdate {
|
|
703
|
-
/** Campaign ID to update */
|
|
704
|
-
campaign_id: string;
|
|
705
|
-
/** Fields to update */
|
|
706
|
-
update: UpdateCampaignRequest;
|
|
707
|
-
}
|
|
708
724
|
/**
|
|
709
725
|
* Bulk campaign update request
|
|
710
726
|
*/
|
|
711
727
|
interface BulkCampaignUpdateRequest {
|
|
712
|
-
|
|
728
|
+
/** Campaign IDs to update */
|
|
729
|
+
campaigns: number[];
|
|
730
|
+
/** Order IDs to update (alternative to campaign IDs) */
|
|
731
|
+
order_ids?: string[];
|
|
732
|
+
/** Fields to update on all specified campaigns */
|
|
733
|
+
update: UpdateCampaignRequest;
|
|
713
734
|
}
|
|
714
735
|
/**
|
|
715
736
|
* Campaign patch operation
|
|
716
737
|
*/
|
|
717
738
|
type PatchOperation = 'ADD' | 'REMOVE' | 'REPLACE';
|
|
718
739
|
/**
|
|
719
|
-
* Campaign patch request
|
|
740
|
+
* Campaign patch request
|
|
720
741
|
*/
|
|
721
742
|
interface CampaignPatchRequest {
|
|
722
|
-
/**
|
|
723
|
-
|
|
724
|
-
/**
|
|
725
|
-
|
|
726
|
-
/** Value to set */
|
|
727
|
-
value: unknown;
|
|
743
|
+
/** Patch operation type */
|
|
744
|
+
patch_operation: PatchOperation;
|
|
745
|
+
/** Additional fields for the patch */
|
|
746
|
+
[key: string]: unknown;
|
|
728
747
|
}
|
|
729
748
|
/**
|
|
730
749
|
* Campaign reach estimation request
|
|
@@ -801,6 +820,24 @@ interface CampaignTargetingCollection {
|
|
|
801
820
|
value: string[];
|
|
802
821
|
href?: string | null;
|
|
803
822
|
}
|
|
823
|
+
/**
|
|
824
|
+
* Settings for campaign duplication
|
|
825
|
+
*/
|
|
826
|
+
interface DuplicateSettings {
|
|
827
|
+
/** Whether to copy items from the source campaign */
|
|
828
|
+
copy_items?: boolean;
|
|
829
|
+
/** Whether to copy targeting from the source campaign */
|
|
830
|
+
copy_targeting?: boolean;
|
|
831
|
+
}
|
|
832
|
+
/**
|
|
833
|
+
* Campaign duplication request
|
|
834
|
+
*/
|
|
835
|
+
interface DuplicateCampaignRequest {
|
|
836
|
+
/** Name for the duplicated campaign */
|
|
837
|
+
name?: string;
|
|
838
|
+
/** Duplication settings */
|
|
839
|
+
duplicate_settings?: DuplicateSettings;
|
|
840
|
+
}
|
|
804
841
|
|
|
805
842
|
/**
|
|
806
843
|
* Campaign Item (Ad) types for Taboola Backstage API
|
|
@@ -920,16 +957,33 @@ interface CampaignItem {
|
|
|
920
957
|
logo?: Record<string, unknown>;
|
|
921
958
|
/** Disclaimer text */
|
|
922
959
|
disclaimer?: string;
|
|
960
|
+
/** Creative type */
|
|
961
|
+
creative_type?: string;
|
|
962
|
+
/** Image orientation */
|
|
963
|
+
orientation?: string;
|
|
964
|
+
/** Performance video data (motion ads) */
|
|
965
|
+
performance_video_data?: PerformanceVideoData;
|
|
966
|
+
/** Item start date */
|
|
967
|
+
start_date?: string;
|
|
968
|
+
/** Item end date */
|
|
969
|
+
end_date?: string;
|
|
923
970
|
}
|
|
924
971
|
/**
|
|
925
|
-
* Create campaign item request
|
|
972
|
+
* Create campaign item request (static ads only)
|
|
926
973
|
*/
|
|
927
974
|
interface CreateItemRequest {
|
|
928
975
|
/** Landing page URL (required) */
|
|
929
976
|
url: string;
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
977
|
+
}
|
|
978
|
+
/**
|
|
979
|
+
* Item data for bulk creation endpoints
|
|
980
|
+
*/
|
|
981
|
+
interface BulkCreateItemData {
|
|
982
|
+
/** Landing page URL (required) */
|
|
983
|
+
url: string;
|
|
984
|
+
/** Ad title/headline */
|
|
985
|
+
title?: string;
|
|
986
|
+
/** Thumbnail image URL (static ads) */
|
|
933
987
|
thumbnail_url?: string;
|
|
934
988
|
/** Ad description */
|
|
935
989
|
description?: string;
|
|
@@ -941,6 +995,16 @@ interface CreateItemRequest {
|
|
|
941
995
|
third_party_tags?: string[];
|
|
942
996
|
/** RSS feed URL (creates RSS item) */
|
|
943
997
|
rss_url?: string;
|
|
998
|
+
/** Performance video data (motion ads only) */
|
|
999
|
+
performance_video_data?: PerformanceVideoData;
|
|
1000
|
+
/** Whether the item is active */
|
|
1001
|
+
is_active?: boolean;
|
|
1002
|
+
/** Creative crop configuration */
|
|
1003
|
+
creative_crop?: Record<string, unknown>;
|
|
1004
|
+
/** Verification pixel */
|
|
1005
|
+
verification_pixel?: ItemVerificationPixel;
|
|
1006
|
+
/** Viewability tag */
|
|
1007
|
+
viewability_tag?: ItemViewabilityTag;
|
|
944
1008
|
}
|
|
945
1009
|
/**
|
|
946
1010
|
* Performance video data for motion ads
|
|
@@ -950,33 +1014,11 @@ interface PerformanceVideoData {
|
|
|
950
1014
|
video_url: string;
|
|
951
1015
|
/** URL to the fallback image (JPG/PNG format) */
|
|
952
1016
|
fallback_url: string;
|
|
1017
|
+
/** URL to the GIF preview */
|
|
1018
|
+
gif_url?: string;
|
|
953
1019
|
}
|
|
954
1020
|
/**
|
|
955
1021
|
* Update campaign item request
|
|
956
|
-
*
|
|
957
|
-
* Submit only the fields you want to update. Fields that are omitted or null
|
|
958
|
-
* will remain unchanged.
|
|
959
|
-
*
|
|
960
|
-
* Note: While status is CRAWLING, the Item is in a read-only state - no fields can be modified.
|
|
961
|
-
*
|
|
962
|
-
* @example Update a static item
|
|
963
|
-
* ```typescript
|
|
964
|
-
* await client.items.update('account-id', 'campaign-id', 'item-id', {
|
|
965
|
-
* title: 'Updated Title',
|
|
966
|
-
* is_active: true,
|
|
967
|
-
* });
|
|
968
|
-
* ```
|
|
969
|
-
*
|
|
970
|
-
* @example Update a motion ad
|
|
971
|
-
* ```typescript
|
|
972
|
-
* await client.items.update('account-id', 'campaign-id', 'item-id', {
|
|
973
|
-
* title: 'Updated Motion Ad',
|
|
974
|
-
* performance_video_data: {
|
|
975
|
-
* video_url: 'https://example.com/video.mp4',
|
|
976
|
-
* fallback_url: 'https://example.com/fallback.jpg',
|
|
977
|
-
* },
|
|
978
|
-
* });
|
|
979
|
-
* ```
|
|
980
1022
|
*/
|
|
981
1023
|
interface UpdateItemRequest {
|
|
982
1024
|
/** Ad title */
|
|
@@ -1004,10 +1046,7 @@ interface UpdateItemRequest {
|
|
|
1004
1046
|
custom_data?: string;
|
|
1005
1047
|
/** Third-party tracking pixels */
|
|
1006
1048
|
third_party_tags?: string[];
|
|
1007
|
-
/**
|
|
1008
|
-
* Performance video data (motion ads only)
|
|
1009
|
-
* Contains video_url (MP4) and fallback_url (JPG/PNG)
|
|
1010
|
-
*/
|
|
1049
|
+
/** Performance video data (motion ads only) */
|
|
1011
1050
|
performance_video_data?: PerformanceVideoData;
|
|
1012
1051
|
}
|
|
1013
1052
|
/**
|
|
@@ -1021,10 +1060,10 @@ interface CampaignItemListResponse {
|
|
|
1021
1060
|
};
|
|
1022
1061
|
}
|
|
1023
1062
|
/**
|
|
1024
|
-
* Bulk item creation request
|
|
1063
|
+
* Bulk item creation request (within a single campaign)
|
|
1025
1064
|
*/
|
|
1026
1065
|
interface BulkCreateItemsRequest {
|
|
1027
|
-
items:
|
|
1066
|
+
items: BulkCreateItemData[];
|
|
1028
1067
|
}
|
|
1029
1068
|
/**
|
|
1030
1069
|
* Bulk item creation response
|
|
@@ -1032,7 +1071,7 @@ interface BulkCreateItemsRequest {
|
|
|
1032
1071
|
interface BulkCreateItemsResponse {
|
|
1033
1072
|
results: CampaignItem[];
|
|
1034
1073
|
failed?: {
|
|
1035
|
-
item:
|
|
1074
|
+
item: BulkCreateItemData;
|
|
1036
1075
|
error: string;
|
|
1037
1076
|
}[];
|
|
1038
1077
|
}
|
|
@@ -1045,8 +1084,18 @@ interface BulkUpdateItemsRequest {
|
|
|
1045
1084
|
id: string;
|
|
1046
1085
|
/** Campaign ID */
|
|
1047
1086
|
campaign_id: string;
|
|
1048
|
-
/**
|
|
1049
|
-
|
|
1087
|
+
/** Ad title */
|
|
1088
|
+
title?: string;
|
|
1089
|
+
/** Landing page URL */
|
|
1090
|
+
url?: string;
|
|
1091
|
+
/** Ad description */
|
|
1092
|
+
description?: string;
|
|
1093
|
+
/** Thumbnail image URL */
|
|
1094
|
+
thumbnail_url?: string;
|
|
1095
|
+
/** Whether item is active */
|
|
1096
|
+
is_active?: boolean;
|
|
1097
|
+
/** CTA configuration */
|
|
1098
|
+
cta?: CTA;
|
|
1050
1099
|
}[];
|
|
1051
1100
|
}
|
|
1052
1101
|
/**
|
|
@@ -1142,7 +1191,6 @@ interface Country {
|
|
|
1142
1191
|
interface Region {
|
|
1143
1192
|
name: string;
|
|
1144
1193
|
value: string;
|
|
1145
|
-
country: string;
|
|
1146
1194
|
}
|
|
1147
1195
|
/**
|
|
1148
1196
|
* DMA (Designated Market Area) - US only
|
|
@@ -1209,39 +1257,35 @@ interface MinimumCPC {
|
|
|
1209
1257
|
* Marketplace audience segment
|
|
1210
1258
|
*/
|
|
1211
1259
|
interface MarketplaceAudience {
|
|
1212
|
-
|
|
1213
|
-
|
|
1260
|
+
taboola_audience_id: number;
|
|
1261
|
+
audience_name: string;
|
|
1214
1262
|
description: string | null;
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
full_path: string | null;
|
|
1263
|
+
data_partner: string | null;
|
|
1264
|
+
data_partner_audience_id: string | null;
|
|
1265
|
+
allowed_countries: string[];
|
|
1266
|
+
data_partner_group?: string | null;
|
|
1267
|
+
taxonomy_categories?: string[] | null;
|
|
1268
|
+
audience_size?: number | null;
|
|
1222
1269
|
}
|
|
1223
1270
|
/**
|
|
1224
1271
|
* Lookalike audience
|
|
1225
1272
|
*/
|
|
1226
1273
|
interface LookalikeAudience {
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
source_audience_id: string | null;
|
|
1231
|
-
status: string;
|
|
1232
|
-
size: number | null;
|
|
1233
|
-
country: string | null;
|
|
1274
|
+
rule_id: number;
|
|
1275
|
+
audience_name: string;
|
|
1276
|
+
similarity_level_to_size: Record<number, number> | null;
|
|
1234
1277
|
}
|
|
1235
1278
|
/**
|
|
1236
1279
|
* Contextual segment
|
|
1237
1280
|
*/
|
|
1238
1281
|
interface ContextualSegment {
|
|
1239
|
-
id:
|
|
1240
|
-
|
|
1282
|
+
id: number;
|
|
1283
|
+
label: string;
|
|
1241
1284
|
description: string | null;
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1285
|
+
taxonomy: string | null;
|
|
1286
|
+
provider?: string | null;
|
|
1287
|
+
allowed_countries?: string[] | null;
|
|
1288
|
+
size?: number | null;
|
|
1245
1289
|
}
|
|
1246
1290
|
/**
|
|
1247
1291
|
* Campaign property enums response
|
|
@@ -1294,26 +1338,24 @@ interface ImageTaxonomy {
|
|
|
1294
1338
|
* Publisher information
|
|
1295
1339
|
*/
|
|
1296
1340
|
interface Publisher {
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1341
|
+
id: number;
|
|
1342
|
+
name: string;
|
|
1343
|
+
account_id: string;
|
|
1344
|
+
partner_types?: string[];
|
|
1345
|
+
type?: string;
|
|
1346
|
+
campaign_types?: string[];
|
|
1347
|
+
currency?: CurrencyCode;
|
|
1348
|
+
time_zone_name?: string;
|
|
1300
1349
|
}
|
|
1301
1350
|
/**
|
|
1302
1351
|
* Response for listing publishers
|
|
1303
1352
|
*/
|
|
1304
1353
|
type PublisherListResponse = ListResponse<Publisher>;
|
|
1305
|
-
/**
|
|
1306
|
-
* Blocked publisher at account level
|
|
1307
|
-
*/
|
|
1308
|
-
interface BlockedPublisher {
|
|
1309
|
-
site: string;
|
|
1310
|
-
site_id: string;
|
|
1311
|
-
}
|
|
1312
1354
|
/**
|
|
1313
1355
|
* Response for blocked publishers
|
|
1314
1356
|
*/
|
|
1315
1357
|
interface BlockedPublishersResponse {
|
|
1316
|
-
|
|
1358
|
+
sites: string[];
|
|
1317
1359
|
}
|
|
1318
1360
|
/**
|
|
1319
1361
|
* Request to update blocked publishers at account level
|
|
@@ -1328,107 +1370,93 @@ interface UpdateBlockedPublishersRequest {
|
|
|
1328
1370
|
* Types for Taboola Backstage API campaign targeting including
|
|
1329
1371
|
* postal codes, audience segments, and contextual targeting.
|
|
1330
1372
|
*/
|
|
1331
|
-
|
|
1332
1373
|
/**
|
|
1333
|
-
*
|
|
1374
|
+
* Generic targeting restriction with include/exclude
|
|
1334
1375
|
*/
|
|
1335
|
-
interface
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
restrictions: PostalCodeRestrictions | null;
|
|
1376
|
+
interface TargetingRestriction<T> {
|
|
1377
|
+
collection: T[];
|
|
1378
|
+
type: 'INCLUDE' | 'EXCLUDE';
|
|
1339
1379
|
}
|
|
1340
1380
|
/**
|
|
1341
|
-
*
|
|
1381
|
+
* Lookalike audience item for targeting
|
|
1342
1382
|
*/
|
|
1343
|
-
interface
|
|
1344
|
-
|
|
1345
|
-
|
|
1383
|
+
interface LookalikeAudienceItem {
|
|
1384
|
+
rule_id: number;
|
|
1385
|
+
similarity_level: number;
|
|
1346
1386
|
}
|
|
1347
1387
|
/**
|
|
1348
|
-
* Postal code targeting
|
|
1388
|
+
* Postal code targeting configuration
|
|
1349
1389
|
*/
|
|
1350
|
-
interface
|
|
1351
|
-
|
|
1352
|
-
|
|
1390
|
+
interface PostalCodeTargeting {
|
|
1391
|
+
type: 'INCLUDE' | 'EXCLUDE' | 'ALL';
|
|
1392
|
+
collection: string[];
|
|
1353
1393
|
}
|
|
1354
1394
|
/**
|
|
1355
1395
|
* Request to update postal code targeting
|
|
1356
1396
|
*/
|
|
1357
1397
|
interface UpdatePostalCodeTargetingRequest {
|
|
1358
1398
|
type: 'INCLUDE' | 'EXCLUDE' | 'ALL';
|
|
1359
|
-
|
|
1360
|
-
}
|
|
1361
|
-
/**
|
|
1362
|
-
* Audience segment for targeting
|
|
1363
|
-
*/
|
|
1364
|
-
interface AudienceSegment {
|
|
1365
|
-
id: string;
|
|
1366
|
-
name: string | null;
|
|
1399
|
+
collection: string[];
|
|
1367
1400
|
}
|
|
1368
1401
|
/**
|
|
1369
|
-
* Audience targeting configuration (marketplace, custom
|
|
1402
|
+
* Audience targeting configuration (marketplace, custom)
|
|
1370
1403
|
*/
|
|
1371
1404
|
interface AudienceTargeting {
|
|
1372
|
-
collection:
|
|
1373
|
-
type: MultiTargetingState;
|
|
1405
|
+
collection: TargetingRestriction<number>[];
|
|
1374
1406
|
}
|
|
1375
1407
|
/**
|
|
1376
1408
|
* Request to update audience targeting
|
|
1377
1409
|
*/
|
|
1378
1410
|
interface UpdateAudienceTargetingRequest {
|
|
1379
|
-
|
|
1380
|
-
collection?: AudienceSegment[] | undefined;
|
|
1381
|
-
and_collection?: AudienceSegment[][] | undefined;
|
|
1382
|
-
or_collection?: AudienceSegment[][] | undefined;
|
|
1383
|
-
}
|
|
1384
|
-
/**
|
|
1385
|
-
* Contextual segment for targeting
|
|
1386
|
-
*/
|
|
1387
|
-
interface ContextualSegmentValue {
|
|
1388
|
-
id: string;
|
|
1389
|
-
name: string | null;
|
|
1411
|
+
collection: TargetingRestriction<number>[];
|
|
1390
1412
|
}
|
|
1391
1413
|
/**
|
|
1392
1414
|
* Contextual targeting configuration
|
|
1393
1415
|
*/
|
|
1394
1416
|
interface ContextualTargeting {
|
|
1395
|
-
|
|
1396
|
-
collection: ContextualSegmentValue[];
|
|
1417
|
+
collection: TargetingRestriction<number>[];
|
|
1397
1418
|
}
|
|
1398
1419
|
/**
|
|
1399
1420
|
* Request to update contextual targeting
|
|
1400
1421
|
*/
|
|
1401
1422
|
interface UpdateContextualTargetingRequest {
|
|
1402
|
-
|
|
1403
|
-
collection: ContextualSegmentValue[];
|
|
1423
|
+
collection: TargetingRestriction<number>[];
|
|
1404
1424
|
}
|
|
1405
1425
|
/**
|
|
1406
1426
|
* First party audience targeting
|
|
1407
1427
|
*/
|
|
1408
1428
|
interface FirstPartyAudienceTargeting {
|
|
1409
|
-
|
|
1410
|
-
collection: AudienceSegment[];
|
|
1429
|
+
collection: TargetingRestriction<number>[];
|
|
1411
1430
|
}
|
|
1412
1431
|
/**
|
|
1413
1432
|
* Request to update first party audience targeting
|
|
1414
1433
|
*/
|
|
1415
1434
|
interface UpdateFirstPartyAudienceTargetingRequest {
|
|
1416
|
-
|
|
1417
|
-
collection: AudienceSegment[];
|
|
1435
|
+
collection: TargetingRestriction<number>[];
|
|
1418
1436
|
}
|
|
1419
1437
|
/**
|
|
1420
1438
|
* Marking labels (pixel retargeting) targeting configuration
|
|
1421
1439
|
*/
|
|
1422
1440
|
interface MarkingLabelsTargeting {
|
|
1423
|
-
|
|
1424
|
-
collection: string[];
|
|
1441
|
+
collection: TargetingRestriction<string>[];
|
|
1425
1442
|
}
|
|
1426
1443
|
/**
|
|
1427
1444
|
* Request to update marking labels targeting
|
|
1428
1445
|
*/
|
|
1429
1446
|
interface UpdateMarkingLabelsTargetingRequest {
|
|
1430
|
-
|
|
1431
|
-
|
|
1447
|
+
collection: TargetingRestriction<string>[];
|
|
1448
|
+
}
|
|
1449
|
+
/**
|
|
1450
|
+
* Lookalike audience targeting configuration
|
|
1451
|
+
*/
|
|
1452
|
+
interface LookalikeAudienceTargeting {
|
|
1453
|
+
collection: TargetingRestriction<LookalikeAudienceItem>[];
|
|
1454
|
+
}
|
|
1455
|
+
/**
|
|
1456
|
+
* Request to update lookalike audience targeting
|
|
1457
|
+
*/
|
|
1458
|
+
interface UpdateLookalikeAudienceTargetingRequest {
|
|
1459
|
+
collection: TargetingRestriction<LookalikeAudienceItem>[];
|
|
1432
1460
|
}
|
|
1433
1461
|
|
|
1434
1462
|
/**
|
|
@@ -1442,11 +1470,14 @@ interface UpdateMarkingLabelsTargetingRequest {
|
|
|
1442
1470
|
*/
|
|
1443
1471
|
interface CombinedAudience {
|
|
1444
1472
|
id: string;
|
|
1445
|
-
|
|
1473
|
+
display_name: string;
|
|
1446
1474
|
description: string | null;
|
|
1447
1475
|
status: CombinedAudienceStatus;
|
|
1448
1476
|
created_at: string;
|
|
1449
|
-
|
|
1477
|
+
last_modified_at: string;
|
|
1478
|
+
last_modified_by?: string;
|
|
1479
|
+
advertiser_id?: string;
|
|
1480
|
+
audience_size?: number | null;
|
|
1450
1481
|
include_rules: CombinedAudienceRule[];
|
|
1451
1482
|
exclude_rules: CombinedAudienceRule[];
|
|
1452
1483
|
}
|
|
@@ -1464,7 +1495,7 @@ interface CombinedAudienceRule {
|
|
|
1464
1495
|
/**
|
|
1465
1496
|
* Type of audience in a combined audience rule
|
|
1466
1497
|
*/
|
|
1467
|
-
type CombinedAudienceType = '
|
|
1498
|
+
type CombinedAudienceType = 'Custom' | 'Lookalike' | 'Third_Party' | 'First_Party';
|
|
1468
1499
|
/**
|
|
1469
1500
|
* Individual audience item in a rule
|
|
1470
1501
|
*/
|
|
@@ -1480,7 +1511,7 @@ type CombinedAudienceListResponse = ListResponse<CombinedAudience>;
|
|
|
1480
1511
|
* Request to create a combined audience
|
|
1481
1512
|
*/
|
|
1482
1513
|
interface CreateCombinedAudienceRequest {
|
|
1483
|
-
|
|
1514
|
+
display_name: string;
|
|
1484
1515
|
description?: string | undefined;
|
|
1485
1516
|
include_rules: CombinedAudienceRule[];
|
|
1486
1517
|
exclude_rules?: CombinedAudienceRule[] | undefined;
|
|
@@ -1489,7 +1520,7 @@ interface CreateCombinedAudienceRequest {
|
|
|
1489
1520
|
* Request to update a combined audience
|
|
1490
1521
|
*/
|
|
1491
1522
|
interface UpdateCombinedAudienceRequest {
|
|
1492
|
-
|
|
1523
|
+
display_name?: string | undefined;
|
|
1493
1524
|
description?: string | undefined;
|
|
1494
1525
|
include_rules?: CombinedAudienceRule[] | undefined;
|
|
1495
1526
|
exclude_rules?: CombinedAudienceRule[] | undefined;
|
|
@@ -1498,11 +1529,14 @@ interface UpdateCombinedAudienceRequest {
|
|
|
1498
1529
|
* Available audience for combined audience creation
|
|
1499
1530
|
*/
|
|
1500
1531
|
interface AvailableAudience {
|
|
1501
|
-
id:
|
|
1502
|
-
|
|
1503
|
-
|
|
1532
|
+
id: number;
|
|
1533
|
+
audience_name: string;
|
|
1534
|
+
data_type: CombinedAudienceType;
|
|
1504
1535
|
size: number | null;
|
|
1505
1536
|
status: string;
|
|
1537
|
+
provider?: string;
|
|
1538
|
+
description?: string | null;
|
|
1539
|
+
is_archived?: boolean;
|
|
1506
1540
|
}
|
|
1507
1541
|
/**
|
|
1508
1542
|
* Response for listing available audiences
|
|
@@ -1513,15 +1547,22 @@ type AvailableAudiencesResponse = ListResponse<AvailableAudience>;
|
|
|
1513
1547
|
*/
|
|
1514
1548
|
interface FirstPartyAudience {
|
|
1515
1549
|
id: string;
|
|
1516
|
-
|
|
1550
|
+
display_name: string;
|
|
1517
1551
|
description: string | null;
|
|
1518
1552
|
status: FirstPartyAudienceStatus;
|
|
1519
|
-
|
|
1553
|
+
audience_size: number | null;
|
|
1520
1554
|
match_rate: number | null;
|
|
1521
1555
|
created_at: string;
|
|
1522
|
-
|
|
1523
|
-
|
|
1556
|
+
last_modified_at: string;
|
|
1557
|
+
last_modified_by?: string;
|
|
1558
|
+
ttl_in_hours: number | null;
|
|
1559
|
+
ttl_type?: string;
|
|
1524
1560
|
source_type: FirstPartyAudienceSourceType;
|
|
1561
|
+
look_back_window?: number | null;
|
|
1562
|
+
category?: string | null;
|
|
1563
|
+
event_name?: string | null;
|
|
1564
|
+
exclude_from_campaigns?: boolean;
|
|
1565
|
+
advertiser_id?: string;
|
|
1525
1566
|
}
|
|
1526
1567
|
/**
|
|
1527
1568
|
* First party audience status
|
|
@@ -1535,44 +1576,32 @@ type FirstPartyAudienceSourceType = 'CRM' | 'EMAIL' | 'PHONE' | 'DEVICE_ID' | 'C
|
|
|
1535
1576
|
* Request to create a first party audience
|
|
1536
1577
|
*/
|
|
1537
1578
|
interface CreateFirstPartyAudienceRequest {
|
|
1538
|
-
|
|
1579
|
+
display_name: string;
|
|
1539
1580
|
description?: string | undefined;
|
|
1540
|
-
|
|
1581
|
+
ttl_in_hours?: number | undefined;
|
|
1541
1582
|
source_type: FirstPartyAudienceSourceType;
|
|
1542
1583
|
}
|
|
1543
1584
|
/**
|
|
1544
|
-
* User
|
|
1545
|
-
*/
|
|
1546
|
-
interface FirstPartyAudienceUser {
|
|
1547
|
-
identifier_type: FirstPartyIdentifierType;
|
|
1548
|
-
identifier_value: string;
|
|
1549
|
-
}
|
|
1550
|
-
/**
|
|
1551
|
-
* Type of user identifier
|
|
1552
|
-
*/
|
|
1553
|
-
type FirstPartyIdentifierType = 'EMAIL' | 'EMAIL_SHA256' | 'PHONE' | 'PHONE_SHA256' | 'DEVICE_ID' | 'DEVICE_ID_SHA256';
|
|
1554
|
-
/**
|
|
1555
|
-
* Request to add or remove users from first party audience
|
|
1585
|
+
* User identity item within a cluster
|
|
1556
1586
|
*/
|
|
1557
|
-
interface
|
|
1558
|
-
|
|
1559
|
-
|
|
1587
|
+
interface AudienceUserClusterItem {
|
|
1588
|
+
user_id: string;
|
|
1589
|
+
type: string;
|
|
1590
|
+
is_hashed: boolean;
|
|
1560
1591
|
}
|
|
1561
1592
|
/**
|
|
1562
|
-
*
|
|
1593
|
+
* User identity cluster
|
|
1563
1594
|
*/
|
|
1564
|
-
interface
|
|
1565
|
-
|
|
1566
|
-
removed_count: number;
|
|
1567
|
-
failed_count: number;
|
|
1568
|
-
errors: AddRemoveUserError[];
|
|
1595
|
+
interface AudienceUserIdentity {
|
|
1596
|
+
cluster: AudienceUserClusterItem[];
|
|
1569
1597
|
}
|
|
1570
1598
|
/**
|
|
1571
|
-
*
|
|
1599
|
+
* Request to add or remove users from first party audience
|
|
1572
1600
|
*/
|
|
1573
|
-
interface
|
|
1574
|
-
|
|
1575
|
-
|
|
1601
|
+
interface AudienceUsersRequest {
|
|
1602
|
+
operation: 'ADD' | 'REMOVE';
|
|
1603
|
+
audience_id: number;
|
|
1604
|
+
identities: AudienceUserIdentity[];
|
|
1576
1605
|
}
|
|
1577
1606
|
|
|
1578
1607
|
/**
|
|
@@ -1586,74 +1615,62 @@ interface AddRemoveUserError {
|
|
|
1586
1615
|
* Conversion rule for tracking conversions
|
|
1587
1616
|
*/
|
|
1588
1617
|
interface ConversionRule {
|
|
1589
|
-
id:
|
|
1618
|
+
id: number;
|
|
1590
1619
|
display_name: string;
|
|
1591
|
-
|
|
1620
|
+
advertiser_id: string;
|
|
1592
1621
|
type: ConversionRuleType;
|
|
1593
|
-
|
|
1594
|
-
include_in_total_value: boolean;
|
|
1595
|
-
category: ConversionCategory | null;
|
|
1596
|
-
conversion_window_days: number;
|
|
1597
|
-
view_through_window_days: number;
|
|
1598
|
-
counting_method: CountingMethod;
|
|
1599
|
-
aggregation_type: AggregationType;
|
|
1600
|
-
default_conversion_value: number | null;
|
|
1601
|
-
conditions: Condition[];
|
|
1602
|
-
effect: Effect;
|
|
1622
|
+
status: ConversionRuleStatus;
|
|
1603
1623
|
event_name: string | null;
|
|
1604
|
-
|
|
1605
|
-
|
|
1624
|
+
category: ConversionCategory | null;
|
|
1625
|
+
description: string | null;
|
|
1626
|
+
look_back_window: number;
|
|
1627
|
+
view_through_look_back_window: number | null;
|
|
1628
|
+
condition: ConversionCondition;
|
|
1629
|
+
effects: ConversionEffect[];
|
|
1630
|
+
include_in_total_conversions: boolean;
|
|
1631
|
+
exclude_from_campaigns: boolean;
|
|
1632
|
+
last_modified_by: string;
|
|
1633
|
+
last_modified_at: string;
|
|
1606
1634
|
}
|
|
1607
1635
|
/**
|
|
1608
1636
|
* Conversion rule status
|
|
1609
1637
|
*/
|
|
1610
|
-
type ConversionRuleStatus = 'ACTIVE' | 'ARCHIVED';
|
|
1638
|
+
type ConversionRuleStatus = 'ACTIVE' | 'DISABLED' | 'ARCHIVED';
|
|
1611
1639
|
/**
|
|
1612
1640
|
* Conversion rule type
|
|
1641
|
+
*
|
|
1642
|
+
* - BASIC: URL-based conversion rules using the condition object
|
|
1643
|
+
* - EVENT_BASED: Custom event-based rules using event_name
|
|
1613
1644
|
*/
|
|
1614
|
-
type ConversionRuleType = '
|
|
1645
|
+
type ConversionRuleType = 'BASIC' | 'EVENT_BASED';
|
|
1615
1646
|
/**
|
|
1616
1647
|
* Conversion category
|
|
1617
1648
|
*/
|
|
1618
|
-
type ConversionCategory = '
|
|
1619
|
-
/**
|
|
1620
|
-
* Counting method for conversions
|
|
1621
|
-
*/
|
|
1622
|
-
type CountingMethod = 'ALL' | 'ONE';
|
|
1623
|
-
/**
|
|
1624
|
-
* Aggregation type for conversion values
|
|
1625
|
-
*/
|
|
1626
|
-
type AggregationType = 'SUM' | 'COUNT';
|
|
1649
|
+
type ConversionCategory = 'VIEW_CONTENT' | 'SEARCH' | 'ADD_TO_CART' | 'ADD_TO_WISHLIST' | 'START_CHECKOUT' | 'ADD_PAYMENT_INFO' | 'MAKE_PURCHASE' | 'LEAD' | 'COMPLETE_REGISTRATION' | 'APP_INSTALL' | 'OTHER';
|
|
1627
1650
|
/**
|
|
1628
|
-
* Condition for matching conversions
|
|
1651
|
+
* Condition for matching conversions (tree structure)
|
|
1652
|
+
*
|
|
1653
|
+
* For a single condition, property/predicate/value are set directly.
|
|
1654
|
+
* For multiple conditions, the parent has predicate 'OR' and individual
|
|
1655
|
+
* conditions are in the children array.
|
|
1629
1656
|
*/
|
|
1630
|
-
interface
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
value: string;
|
|
1634
|
-
|
|
1657
|
+
interface ConversionCondition {
|
|
1658
|
+
property: string | null;
|
|
1659
|
+
predicate: ConversionConditionPredicate;
|
|
1660
|
+
value: string | null;
|
|
1661
|
+
children: ConversionCondition[];
|
|
1635
1662
|
}
|
|
1636
1663
|
/**
|
|
1637
|
-
* Condition
|
|
1638
|
-
*/
|
|
1639
|
-
type ConditionType = 'URL' | 'URL_PARAMETER' | 'EVENT_NAME' | 'EVENT_PARAMETER';
|
|
1640
|
-
/**
|
|
1641
|
-
* Condition operator
|
|
1664
|
+
* Condition predicate
|
|
1642
1665
|
*/
|
|
1643
|
-
type
|
|
1666
|
+
type ConversionConditionPredicate = 'CONTAINS' | 'EQUALS' | 'OR';
|
|
1644
1667
|
/**
|
|
1645
1668
|
* Effect of matching a conversion rule
|
|
1646
1669
|
*/
|
|
1647
|
-
interface
|
|
1648
|
-
type:
|
|
1649
|
-
|
|
1650
|
-
currency: string | null;
|
|
1651
|
-
value_parameter: string | null;
|
|
1670
|
+
interface ConversionEffect {
|
|
1671
|
+
type: string;
|
|
1672
|
+
data: string;
|
|
1652
1673
|
}
|
|
1653
|
-
/**
|
|
1654
|
-
* Effect type
|
|
1655
|
-
*/
|
|
1656
|
-
type EffectType = 'FIXED_VALUE' | 'DYNAMIC_VALUE' | 'NO_VALUE';
|
|
1657
1674
|
/**
|
|
1658
1675
|
* Response for listing conversion rules
|
|
1659
1676
|
*/
|
|
@@ -1664,34 +1681,32 @@ type ConversionRuleListResponse = ListResponse<ConversionRule>;
|
|
|
1664
1681
|
interface CreateConversionRuleRequest {
|
|
1665
1682
|
display_name: string;
|
|
1666
1683
|
type: ConversionRuleType;
|
|
1667
|
-
include_in_total_conversions?: boolean | undefined;
|
|
1668
|
-
include_in_total_value?: boolean | undefined;
|
|
1669
|
-
category?: ConversionCategory | undefined;
|
|
1670
|
-
conversion_window_days?: number | undefined;
|
|
1671
|
-
view_through_window_days?: number | undefined;
|
|
1672
|
-
counting_method?: CountingMethod | undefined;
|
|
1673
|
-
aggregation_type?: AggregationType | undefined;
|
|
1674
|
-
default_conversion_value?: number | undefined;
|
|
1675
|
-
conditions: Condition[];
|
|
1676
|
-
effect: Effect;
|
|
1677
1684
|
event_name?: string | undefined;
|
|
1685
|
+
category?: ConversionCategory | undefined;
|
|
1686
|
+
description?: string | undefined;
|
|
1687
|
+
look_back_window?: number | undefined;
|
|
1688
|
+
view_through_look_back_window?: number | undefined;
|
|
1689
|
+
condition?: ConversionCondition | undefined;
|
|
1690
|
+
effects?: ConversionEffect[] | undefined;
|
|
1691
|
+
include_in_total_conversions?: boolean | undefined;
|
|
1692
|
+
exclude_from_campaigns?: boolean | undefined;
|
|
1678
1693
|
}
|
|
1679
1694
|
/**
|
|
1680
1695
|
* Request to update a conversion rule
|
|
1696
|
+
*
|
|
1697
|
+
* Note: type and advertiser_id are final and cannot be changed after creation.
|
|
1681
1698
|
*/
|
|
1682
1699
|
interface UpdateConversionRuleRequest {
|
|
1683
1700
|
display_name?: string | undefined;
|
|
1684
1701
|
status?: ConversionRuleStatus | undefined;
|
|
1685
|
-
include_in_total_conversions?: boolean | undefined;
|
|
1686
|
-
include_in_total_value?: boolean | undefined;
|
|
1687
1702
|
category?: ConversionCategory | undefined;
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1703
|
+
description?: string | undefined;
|
|
1704
|
+
look_back_window?: number | undefined;
|
|
1705
|
+
view_through_look_back_window?: number | undefined;
|
|
1706
|
+
condition?: ConversionCondition | undefined;
|
|
1707
|
+
effects?: ConversionEffect[] | undefined;
|
|
1708
|
+
include_in_total_conversions?: boolean | undefined;
|
|
1709
|
+
exclude_from_campaigns?: boolean | undefined;
|
|
1695
1710
|
}
|
|
1696
1711
|
/**
|
|
1697
1712
|
* Custom audience rule for building audiences from pixel data
|
|
@@ -1700,7 +1715,7 @@ interface CustomAudienceRule {
|
|
|
1700
1715
|
id: string;
|
|
1701
1716
|
display_name: string;
|
|
1702
1717
|
status: CustomAudienceRuleStatus;
|
|
1703
|
-
conditions:
|
|
1718
|
+
conditions: CustomAudienceCondition[];
|
|
1704
1719
|
ttl_days: number;
|
|
1705
1720
|
size: number | null;
|
|
1706
1721
|
created_at: string;
|
|
@@ -1710,6 +1725,23 @@ interface CustomAudienceRule {
|
|
|
1710
1725
|
* Custom audience rule status
|
|
1711
1726
|
*/
|
|
1712
1727
|
type CustomAudienceRuleStatus = 'ACTIVE' | 'PAUSED' | 'ARCHIVED';
|
|
1728
|
+
/**
|
|
1729
|
+
* Condition for custom audience rules
|
|
1730
|
+
*/
|
|
1731
|
+
interface CustomAudienceCondition {
|
|
1732
|
+
type: CustomAudienceConditionType;
|
|
1733
|
+
operator: CustomAudienceConditionOperator;
|
|
1734
|
+
value: string;
|
|
1735
|
+
parameter?: string | undefined;
|
|
1736
|
+
}
|
|
1737
|
+
/**
|
|
1738
|
+
* Custom audience condition type
|
|
1739
|
+
*/
|
|
1740
|
+
type CustomAudienceConditionType = 'URL' | 'URL_PARAMETER' | 'EVENT_NAME' | 'EVENT_PARAMETER';
|
|
1741
|
+
/**
|
|
1742
|
+
* Custom audience condition operator
|
|
1743
|
+
*/
|
|
1744
|
+
type CustomAudienceConditionOperator = 'EQUALS' | 'NOT_EQUALS' | 'CONTAINS' | 'NOT_CONTAINS' | 'STARTS_WITH' | 'ENDS_WITH' | 'REGEX';
|
|
1713
1745
|
/**
|
|
1714
1746
|
* Response for listing custom audience rules
|
|
1715
1747
|
*/
|
|
@@ -1719,7 +1751,7 @@ type CustomAudienceRuleListResponse = ListResponse<CustomAudienceRule>;
|
|
|
1719
1751
|
*/
|
|
1720
1752
|
interface CreateCustomAudienceRuleRequest {
|
|
1721
1753
|
display_name: string;
|
|
1722
|
-
conditions:
|
|
1754
|
+
conditions: CustomAudienceCondition[];
|
|
1723
1755
|
ttl_days?: number | undefined;
|
|
1724
1756
|
}
|
|
1725
1757
|
/**
|
|
@@ -1728,16 +1760,19 @@ interface CreateCustomAudienceRuleRequest {
|
|
|
1728
1760
|
interface UpdateCustomAudienceRuleRequest {
|
|
1729
1761
|
display_name?: string | undefined;
|
|
1730
1762
|
status?: CustomAudienceRuleStatus | undefined;
|
|
1731
|
-
conditions?:
|
|
1763
|
+
conditions?: CustomAudienceCondition[] | undefined;
|
|
1732
1764
|
ttl_days?: number | undefined;
|
|
1733
1765
|
}
|
|
1734
1766
|
/**
|
|
1735
|
-
* Conversion rule with
|
|
1767
|
+
* Conversion rule wrapped with performance data
|
|
1768
|
+
*
|
|
1769
|
+
* Returned by the /data endpoint which wraps each rule
|
|
1770
|
+
* with last_received and total_received metrics.
|
|
1736
1771
|
*/
|
|
1737
|
-
interface ConversionRuleWithData
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1772
|
+
interface ConversionRuleWithData {
|
|
1773
|
+
last_received: string | null;
|
|
1774
|
+
total_received: number;
|
|
1775
|
+
unip_conversion_rule: ConversionRule;
|
|
1741
1776
|
}
|
|
1742
1777
|
/**
|
|
1743
1778
|
* Response for listing conversion rules with data
|
|
@@ -2031,6 +2066,10 @@ interface CampaignSummaryRow {
|
|
|
2031
2066
|
conversions_value: number;
|
|
2032
2067
|
/** Return on ad spend */
|
|
2033
2068
|
roas: number;
|
|
2069
|
+
/** ROAS from clicks */
|
|
2070
|
+
roas_clicks?: number | undefined;
|
|
2071
|
+
/** ROAS from views */
|
|
2072
|
+
roas_views?: number | undefined;
|
|
2034
2073
|
/** Cost per action (all) */
|
|
2035
2074
|
cpa: number;
|
|
2036
2075
|
/** CPA from clicks */
|
|
@@ -2055,6 +2094,16 @@ interface CampaignSummaryRow {
|
|
|
2055
2094
|
audience_name?: string | undefined;
|
|
2056
2095
|
/** Data partner audience ID (for user_segment_breakdown dimension) */
|
|
2057
2096
|
data_partner_audience_id?: string | undefined;
|
|
2097
|
+
/** Campaign learning state */
|
|
2098
|
+
campaign_learning_state?: string | undefined;
|
|
2099
|
+
/** Audience description */
|
|
2100
|
+
audience_description?: string | undefined;
|
|
2101
|
+
/** OS family (for os_family_breakdown dimension) */
|
|
2102
|
+
os_family?: string | undefined;
|
|
2103
|
+
/** OS version (for os_version_breakdown dimension) */
|
|
2104
|
+
os_version?: string | undefined;
|
|
2105
|
+
/** Browser (for browser_breakdown dimension) */
|
|
2106
|
+
browser?: string | undefined;
|
|
2058
2107
|
/** Custom conversion columns (dynamic based on include_conversions) */
|
|
2059
2108
|
[key: string]: unknown;
|
|
2060
2109
|
}
|
|
@@ -2086,6 +2135,16 @@ interface TopCampaignContentRow {
|
|
|
2086
2135
|
/** Content provider (publisher) */
|
|
2087
2136
|
content_provider?: string | undefined;
|
|
2088
2137
|
content_provider_name?: string | undefined;
|
|
2138
|
+
/** Ad description */
|
|
2139
|
+
description?: string | undefined;
|
|
2140
|
+
/** Creation time */
|
|
2141
|
+
create_time?: string | undefined;
|
|
2142
|
+
/** Learning display status */
|
|
2143
|
+
learning_display_status?: string | undefined;
|
|
2144
|
+
/** Ad name */
|
|
2145
|
+
ad_name?: string | undefined;
|
|
2146
|
+
/** Custom ID */
|
|
2147
|
+
custom_id?: string | undefined;
|
|
2089
2148
|
/** Metrics */
|
|
2090
2149
|
clicks: number;
|
|
2091
2150
|
impressions: number;
|
|
@@ -2104,8 +2163,6 @@ interface TopCampaignContentRow {
|
|
|
2104
2163
|
conversions_value: number;
|
|
2105
2164
|
roas: number;
|
|
2106
2165
|
cpa: number;
|
|
2107
|
-
cpa_actions_num: number;
|
|
2108
|
-
cpa_conversion_rate: number;
|
|
2109
2166
|
/** Custom conversion columns */
|
|
2110
2167
|
[key: string]: unknown;
|
|
2111
2168
|
}
|
|
@@ -2126,22 +2183,24 @@ interface RealtimeCampaignReport {
|
|
|
2126
2183
|
* Fields present depend on the chosen dimension.
|
|
2127
2184
|
*/
|
|
2128
2185
|
interface RealtimeCampaignRow {
|
|
2129
|
-
/**
|
|
2130
|
-
|
|
2186
|
+
/** Date/time bucket */
|
|
2187
|
+
date?: string | undefined;
|
|
2131
2188
|
/** Campaign ID (for by_campaign dimensions) */
|
|
2132
|
-
|
|
2189
|
+
campaign_id?: string | undefined;
|
|
2133
2190
|
campaign_name?: string | undefined;
|
|
2134
2191
|
/** Site name (for by_site dimensions) */
|
|
2135
|
-
|
|
2192
|
+
site_name?: string | undefined;
|
|
2136
2193
|
site_id?: string | undefined;
|
|
2137
2194
|
/** Country code (for by_country dimensions) */
|
|
2138
2195
|
country?: string | undefined;
|
|
2196
|
+
/** Country name */
|
|
2197
|
+
country_name?: string | undefined;
|
|
2139
2198
|
/** Platform (for by_platform dimensions) */
|
|
2140
2199
|
platform?: string | undefined;
|
|
2200
|
+
/** Platform name */
|
|
2201
|
+
platform_name?: string | undefined;
|
|
2141
2202
|
/** Number of clicks */
|
|
2142
2203
|
clicks: number;
|
|
2143
|
-
/** Number of impressions */
|
|
2144
|
-
impressions: number;
|
|
2145
2204
|
/** Number of visible impressions */
|
|
2146
2205
|
visible_impressions: number;
|
|
2147
2206
|
/** Total spend */
|
|
@@ -2164,6 +2223,10 @@ interface RealtimeCampaignRow {
|
|
|
2164
2223
|
cpa_conversion_rate: number;
|
|
2165
2224
|
/** Cost per action */
|
|
2166
2225
|
cpa: number;
|
|
2226
|
+
/** Total conversion value */
|
|
2227
|
+
conversions_value?: number | undefined;
|
|
2228
|
+
/** Return on ad spend */
|
|
2229
|
+
roas?: number | undefined;
|
|
2167
2230
|
/** Dynamic fields (e.g. from fetch_config) */
|
|
2168
2231
|
[key: string]: unknown;
|
|
2169
2232
|
}
|
|
@@ -2183,17 +2246,23 @@ interface RealtimeAdsReport {
|
|
|
2183
2246
|
*/
|
|
2184
2247
|
interface RealtimeAdsRow {
|
|
2185
2248
|
/** Item (ad) ID */
|
|
2186
|
-
|
|
2249
|
+
item_id: string;
|
|
2187
2250
|
item_name: string;
|
|
2188
2251
|
/** Thumbnail URL */
|
|
2189
2252
|
thumbnail_url: string;
|
|
2190
2253
|
/** Campaign ID */
|
|
2191
|
-
|
|
2254
|
+
campaign_id: string;
|
|
2192
2255
|
campaign_name: string;
|
|
2256
|
+
/** Ad description */
|
|
2257
|
+
description?: string | undefined;
|
|
2258
|
+
/** Landing page URL */
|
|
2259
|
+
url?: string | undefined;
|
|
2260
|
+
/** Item type */
|
|
2261
|
+
item_type?: string | undefined;
|
|
2262
|
+
/** Date/time bucket */
|
|
2263
|
+
date?: string | undefined;
|
|
2193
2264
|
/** Number of clicks */
|
|
2194
2265
|
clicks: number;
|
|
2195
|
-
/** Number of impressions */
|
|
2196
|
-
impressions: number;
|
|
2197
2266
|
/** Number of visible impressions */
|
|
2198
2267
|
visible_impressions: number;
|
|
2199
2268
|
/** Total spend */
|
|
@@ -2216,6 +2285,10 @@ interface RealtimeAdsRow {
|
|
|
2216
2285
|
cpa_conversion_rate: number;
|
|
2217
2286
|
/** Cost per action */
|
|
2218
2287
|
cpa: number;
|
|
2288
|
+
/** Total conversion value */
|
|
2289
|
+
conversions_value?: number | undefined;
|
|
2290
|
+
/** Return on ad spend */
|
|
2291
|
+
roas?: number | undefined;
|
|
2219
2292
|
/** Dynamic fields */
|
|
2220
2293
|
[key: string]: unknown;
|
|
2221
2294
|
}
|
|
@@ -2238,7 +2311,7 @@ interface ReportField {
|
|
|
2238
2311
|
/**
|
|
2239
2312
|
* Report data type
|
|
2240
2313
|
*/
|
|
2241
|
-
type ReportDataType = '
|
|
2314
|
+
type ReportDataType = 'STRING' | 'FLOAT' | 'MONEY' | 'PERCENT' | 'NUMERIC' | 'DATA' | 'DATE' | 'TIMESTAMP' | 'URL' | 'BOOLEAN';
|
|
2242
2315
|
|
|
2243
2316
|
/**
|
|
2244
2317
|
* Account API for Taboola Backstage
|
|
@@ -2332,244 +2405,69 @@ declare class CampaignsAPI {
|
|
|
2332
2405
|
constructor(http: HttpClient);
|
|
2333
2406
|
/**
|
|
2334
2407
|
* List all campaigns for an account
|
|
2335
|
-
*
|
|
2336
|
-
* @param accountId - Account ID
|
|
2337
|
-
* @param options - Pagination and filter options
|
|
2338
|
-
*
|
|
2339
|
-
* @example
|
|
2340
|
-
* ```typescript
|
|
2341
|
-
* const { results } = await client.campaigns.list('my-account');
|
|
2342
|
-
* for (const campaign of results) {
|
|
2343
|
-
* console.log(campaign.name, campaign.status);
|
|
2344
|
-
* }
|
|
2345
|
-
* ```
|
|
2346
2408
|
*/
|
|
2347
2409
|
list(accountId: string, options?: ListCampaignsOptions): Promise<CampaignListResponse>;
|
|
2348
2410
|
/**
|
|
2349
2411
|
* List all campaigns with base (partial) fields only
|
|
2350
|
-
*
|
|
2351
|
-
* Returns a lighter-weight response with fewer fields per campaign.
|
|
2352
|
-
* Useful for listing/overview pages where full campaign data is not needed.
|
|
2353
|
-
*
|
|
2354
|
-
* @param accountId - Account ID
|
|
2355
|
-
*
|
|
2356
|
-
* @example
|
|
2357
|
-
* ```typescript
|
|
2358
|
-
* const { results } = await client.campaigns.listBase('my-account');
|
|
2359
|
-
* for (const campaign of results) {
|
|
2360
|
-
* console.log(campaign.name, campaign.status);
|
|
2361
|
-
* }
|
|
2362
|
-
* ```
|
|
2363
2412
|
*/
|
|
2364
2413
|
listBase(accountId: string): Promise<CampaignBaseListResponse>;
|
|
2365
2414
|
/**
|
|
2366
2415
|
* Get a single campaign by ID
|
|
2367
|
-
*
|
|
2368
|
-
* @param accountId - Account ID
|
|
2369
|
-
* @param campaignId - Campaign ID
|
|
2370
|
-
*
|
|
2371
|
-
* @example
|
|
2372
|
-
* ```typescript
|
|
2373
|
-
* const campaign = await client.campaigns.get('my-account', '12345');
|
|
2374
|
-
* console.log(campaign.name, campaign.cpc);
|
|
2375
|
-
* ```
|
|
2376
2416
|
*/
|
|
2377
2417
|
get(accountId: string, campaignId: string): Promise<Campaign>;
|
|
2378
2418
|
/**
|
|
2379
2419
|
* Create a new campaign
|
|
2380
|
-
*
|
|
2381
|
-
* @param accountId - Account ID
|
|
2382
|
-
* @param campaign - Campaign data
|
|
2383
|
-
*
|
|
2384
|
-
* @example
|
|
2385
|
-
* ```typescript
|
|
2386
|
-
* const campaign = await client.campaigns.create('my-account', {
|
|
2387
|
-
* name: 'My New Campaign',
|
|
2388
|
-
* branding_text: 'My Brand',
|
|
2389
|
-
* cpc: 0.50,
|
|
2390
|
-
* spending_limit: 1000,
|
|
2391
|
-
* spending_limit_model: 'MONTHLY',
|
|
2392
|
-
* marketing_objective: 'DRIVE_WEBSITE_TRAFFIC',
|
|
2393
|
-
* });
|
|
2394
|
-
* console.log('Created campaign:', campaign.id);
|
|
2395
|
-
* ```
|
|
2396
2420
|
*/
|
|
2397
2421
|
create(accountId: string, campaign: CreateCampaignRequest): Promise<Campaign>;
|
|
2398
2422
|
/**
|
|
2399
2423
|
* Update an existing campaign
|
|
2400
|
-
*
|
|
2401
|
-
* Submit only the fields you want to update. Fields that are omitted or null
|
|
2402
|
-
* will remain unchanged.
|
|
2403
|
-
*
|
|
2404
|
-
* @param accountId - Account ID
|
|
2405
|
-
* @param campaignId - Campaign ID
|
|
2406
|
-
* @param updates - Fields to update (partial)
|
|
2407
|
-
*
|
|
2408
|
-
* @example Update a single field
|
|
2409
|
-
* ```typescript
|
|
2410
|
-
* const campaign = await client.campaigns.update('my-account', '12345', {
|
|
2411
|
-
* name: 'DemoCampaign - Edited',
|
|
2412
|
-
* });
|
|
2413
|
-
* ```
|
|
2414
|
-
*
|
|
2415
|
-
* @example Update multiple fields including targeting
|
|
2416
|
-
* ```typescript
|
|
2417
|
-
* const campaign = await client.campaigns.update('my-account', '12345', {
|
|
2418
|
-
* name: 'Demo Campaign - Edited Again',
|
|
2419
|
-
* branding_text: 'New branding text',
|
|
2420
|
-
* spending_limit: 10000,
|
|
2421
|
-
* spending_limit_model: 'ENTIRE',
|
|
2422
|
-
* country_targeting: {
|
|
2423
|
-
* type: 'INCLUDE',
|
|
2424
|
-
* value: ['AU', 'GB'],
|
|
2425
|
-
* },
|
|
2426
|
-
* platform_targeting: {
|
|
2427
|
-
* type: 'INCLUDE',
|
|
2428
|
-
* value: ['TBLT', 'PHON'],
|
|
2429
|
-
* },
|
|
2430
|
-
* });
|
|
2431
|
-
* ```
|
|
2432
|
-
*
|
|
2433
|
-
* @example Pause a campaign (alternatively, use pause() method)
|
|
2434
|
-
* ```typescript
|
|
2435
|
-
* const campaign = await client.campaigns.update('my-account', '12345', {
|
|
2436
|
-
* is_active: false,
|
|
2437
|
-
* });
|
|
2438
|
-
* ```
|
|
2439
2424
|
*/
|
|
2440
2425
|
update(accountId: string, campaignId: string, updates: UpdateCampaignRequest): Promise<Campaign>;
|
|
2441
2426
|
/**
|
|
2442
2427
|
* Delete a campaign
|
|
2443
|
-
*
|
|
2444
|
-
* @param accountId - Account ID
|
|
2445
|
-
* @param campaignId - Campaign ID
|
|
2446
|
-
*
|
|
2447
|
-
* @example
|
|
2448
|
-
* ```typescript
|
|
2449
|
-
* await client.campaigns.delete('my-account', '12345');
|
|
2450
|
-
* ```
|
|
2451
2428
|
*/
|
|
2452
2429
|
delete(accountId: string, campaignId: string): Promise<void>;
|
|
2453
2430
|
/**
|
|
2454
2431
|
* Duplicate a campaign
|
|
2455
2432
|
*
|
|
2456
|
-
* Creates a copy of an existing campaign with a new name.
|
|
2457
|
-
*
|
|
2458
2433
|
* @param accountId - Account ID
|
|
2459
2434
|
* @param campaignId - Campaign ID to duplicate
|
|
2460
|
-
* @param
|
|
2461
|
-
*
|
|
2462
|
-
* @example
|
|
2463
|
-
* ```typescript
|
|
2464
|
-
* const newCampaign = await client.campaigns.duplicate(
|
|
2465
|
-
* 'my-account',
|
|
2466
|
-
* '12345',
|
|
2467
|
-
* 'My Campaign - Copy'
|
|
2468
|
-
* );
|
|
2469
|
-
* ```
|
|
2435
|
+
* @param request - Duplication request with optional name and settings
|
|
2436
|
+
* @param destinationAccount - Optional destination account ID for cross-account duplication
|
|
2470
2437
|
*/
|
|
2471
|
-
duplicate(accountId: string, campaignId: string,
|
|
2438
|
+
duplicate(accountId: string, campaignId: string, request: DuplicateCampaignRequest, destinationAccount?: string): Promise<Campaign>;
|
|
2472
2439
|
/**
|
|
2473
2440
|
* Pause a campaign
|
|
2474
|
-
*
|
|
2475
|
-
* @param accountId - Account ID
|
|
2476
|
-
* @param campaignId - Campaign ID
|
|
2477
|
-
*
|
|
2478
|
-
* @example
|
|
2479
|
-
* ```typescript
|
|
2480
|
-
* await client.campaigns.pause('my-account', '12345');
|
|
2481
|
-
* ```
|
|
2482
2441
|
*/
|
|
2483
2442
|
pause(accountId: string, campaignId: string): Promise<Campaign>;
|
|
2484
2443
|
/**
|
|
2485
2444
|
* Unpause (resume) a campaign
|
|
2486
|
-
*
|
|
2487
|
-
* @param accountId - Account ID
|
|
2488
|
-
* @param campaignId - Campaign ID
|
|
2489
|
-
*
|
|
2490
|
-
* @example
|
|
2491
|
-
* ```typescript
|
|
2492
|
-
* await client.campaigns.unpause('my-account', '12345');
|
|
2493
|
-
* ```
|
|
2494
2445
|
*/
|
|
2495
2446
|
unpause(accountId: string, campaignId: string): Promise<Campaign>;
|
|
2496
2447
|
/**
|
|
2497
2448
|
* Bulk update multiple campaigns
|
|
2498
|
-
*
|
|
2499
|
-
* @param accountId - Account ID
|
|
2500
|
-
* @param updates - Array of campaign updates
|
|
2501
|
-
*
|
|
2502
|
-
* @example
|
|
2503
|
-
* ```typescript
|
|
2504
|
-
* await client.campaigns.bulkUpdate('my-account', {
|
|
2505
|
-
* campaigns: [
|
|
2506
|
-
* { campaign_id: '12345', update: { is_active: false } },
|
|
2507
|
-
* { campaign_id: '12346', update: { is_active: false } },
|
|
2508
|
-
* ],
|
|
2509
|
-
* });
|
|
2510
|
-
* ```
|
|
2511
2449
|
*/
|
|
2512
2450
|
bulkUpdate(accountId: string, updates: BulkCampaignUpdateRequest): Promise<CampaignListResponse>;
|
|
2513
2451
|
/**
|
|
2514
|
-
* Patch a campaign
|
|
2452
|
+
* Patch a campaign
|
|
2515
2453
|
*
|
|
2516
2454
|
* @param accountId - Account ID
|
|
2517
2455
|
* @param campaignId - Campaign ID
|
|
2518
|
-
* @param
|
|
2519
|
-
* @param patches - Patch operations
|
|
2520
|
-
*
|
|
2521
|
-
* @example
|
|
2522
|
-
* ```typescript
|
|
2523
|
-
* await client.campaigns.patch('my-account', '12345', 'publisher_targeting', [
|
|
2524
|
-
* { op: 'ADD', path: '/value', value: ['pub-123'] },
|
|
2525
|
-
* ]);
|
|
2526
|
-
* ```
|
|
2456
|
+
* @param patch - Patch operation
|
|
2527
2457
|
*/
|
|
2528
|
-
patch(accountId: string, campaignId: string,
|
|
2458
|
+
patch(accountId: string, campaignId: string, patch: CampaignPatchRequest): Promise<Campaign>;
|
|
2529
2459
|
/**
|
|
2530
2460
|
* Get all campaigns across a network
|
|
2531
2461
|
*
|
|
2532
2462
|
* @param networkAccountId - Network account ID
|
|
2533
|
-
*
|
|
2534
|
-
* @example
|
|
2535
|
-
* ```typescript
|
|
2536
|
-
* const { results } = await client.campaigns.listNetwork('my-network');
|
|
2537
|
-
* ```
|
|
2538
2463
|
*/
|
|
2539
|
-
listNetwork(networkAccountId: string): Promise<
|
|
2464
|
+
listNetwork(networkAccountId: string): Promise<CampaignBaseListResponse>;
|
|
2540
2465
|
/**
|
|
2541
2466
|
* Estimate campaign reach
|
|
2542
|
-
*
|
|
2543
|
-
* Get estimated impressions, clicks, and reach for a campaign configuration.
|
|
2544
|
-
*
|
|
2545
|
-
* @param accountId - Account ID
|
|
2546
|
-
* @param params - Targeting and budget parameters
|
|
2547
|
-
*
|
|
2548
|
-
* @example
|
|
2549
|
-
* ```typescript
|
|
2550
|
-
* const estimate = await client.campaigns.estimateReach('my-account', {
|
|
2551
|
-
* country_targeting: ['US'],
|
|
2552
|
-
* platform_targeting: ['DESK', 'PHON'],
|
|
2553
|
-
* daily_cap: 100,
|
|
2554
|
-
* cpc: 0.50,
|
|
2555
|
-
* });
|
|
2556
|
-
* console.log('Estimated clicks:', estimate.estimated_clicks);
|
|
2557
|
-
* ```
|
|
2558
2467
|
*/
|
|
2559
2468
|
estimateReach(accountId: string, params: CampaignReachEstimatorRequest): Promise<CampaignReachEstimatorResponse>;
|
|
2560
2469
|
/**
|
|
2561
2470
|
* Get publisher targeting whitelist for a campaign
|
|
2562
|
-
*
|
|
2563
|
-
* Returns the list of publishers that are whitelisted for this campaign.
|
|
2564
|
-
*
|
|
2565
|
-
* @param accountId - Account ID
|
|
2566
|
-
* @param campaignId - Campaign ID
|
|
2567
|
-
*
|
|
2568
|
-
* @example
|
|
2569
|
-
* ```typescript
|
|
2570
|
-
* const whitelist = await client.campaigns.getTargetingWhitelist('my-account', '12345');
|
|
2571
|
-
* console.log('Whitelisted publishers:', whitelist.value);
|
|
2572
|
-
* ```
|
|
2573
2471
|
*/
|
|
2574
2472
|
getTargetingWhitelist(accountId: string, campaignId: string): Promise<CampaignTargetingCollection>;
|
|
2575
2473
|
}
|
|
@@ -2628,22 +2526,26 @@ declare class ItemsAPI {
|
|
|
2628
2526
|
*/
|
|
2629
2527
|
get(accountId: string, campaignId: string, itemId: string): Promise<CampaignItem>;
|
|
2630
2528
|
/**
|
|
2631
|
-
* Create a new item (ad) in a campaign
|
|
2529
|
+
* Create a new item (static ad) in a campaign
|
|
2530
|
+
*
|
|
2531
|
+
* Only the `url` field is accepted. The item is created with a status of CRAWLING
|
|
2532
|
+
* (read-only). Poll until the status changes to RUNNING or NEED_TO_EDIT, then
|
|
2533
|
+
* use `update()` to modify fields.
|
|
2534
|
+
*
|
|
2535
|
+
* For creating items with more fields upfront, or for motion ads,
|
|
2536
|
+
* use `bulkCreateAcrossCampaigns()` instead.
|
|
2632
2537
|
*
|
|
2633
2538
|
* @param accountId - Account ID
|
|
2634
2539
|
* @param campaignId - Campaign ID
|
|
2635
|
-
* @param item - Item data
|
|
2540
|
+
* @param item - Item data (only `url` is accepted)
|
|
2636
2541
|
*
|
|
2637
2542
|
* @example
|
|
2638
2543
|
* ```typescript
|
|
2639
2544
|
* const item = await client.items.create('my-account', '12345', {
|
|
2640
2545
|
* url: 'https://example.com/landing-page',
|
|
2641
|
-
* title: 'Check Out Our Amazing Product!',
|
|
2642
|
-
* thumbnail_url: 'https://example.com/image.jpg',
|
|
2643
|
-
* description: 'Learn more about our product',
|
|
2644
|
-
* cta: { cta_type: 'LEARN_MORE' },
|
|
2645
2546
|
* });
|
|
2646
|
-
*
|
|
2547
|
+
* // Item starts in CRAWLING state - poll until status changes
|
|
2548
|
+
* console.log('Created item:', item.id, item.status); // CRAWLING
|
|
2647
2549
|
* ```
|
|
2648
2550
|
*/
|
|
2649
2551
|
create(accountId: string, campaignId: string, item: CreateItemRequest): Promise<CampaignItem>;
|
|
@@ -2728,7 +2630,9 @@ declare class ItemsAPI {
|
|
|
2728
2630
|
*/
|
|
2729
2631
|
unpause(accountId: string, campaignId: string, itemId: string): Promise<CampaignItem>;
|
|
2730
2632
|
/**
|
|
2731
|
-
* Create multiple items at once (mass create)
|
|
2633
|
+
* Create multiple items at once within a single campaign (mass create)
|
|
2634
|
+
*
|
|
2635
|
+
* Supports both static ads and motion ads via the bulk item data format.
|
|
2732
2636
|
*
|
|
2733
2637
|
* @param accountId - Account ID
|
|
2734
2638
|
* @param campaignId - Campaign ID
|
|
@@ -2736,31 +2640,46 @@ declare class ItemsAPI {
|
|
|
2736
2640
|
*
|
|
2737
2641
|
* @example
|
|
2738
2642
|
* ```typescript
|
|
2739
|
-
* const response = await client.items.bulkCreate('my-account', '12345',
|
|
2740
|
-
*
|
|
2741
|
-
*
|
|
2742
|
-
*
|
|
2743
|
-
* ],
|
|
2744
|
-
* });
|
|
2643
|
+
* const response = await client.items.bulkCreate('my-account', '12345', [
|
|
2644
|
+
* { url: 'https://example.com/page1', title: 'Title 1', thumbnail_url: '...' },
|
|
2645
|
+
* { url: 'https://example.com/page2', title: 'Title 2', thumbnail_url: '...' },
|
|
2646
|
+
* ]);
|
|
2745
2647
|
* console.log('Created', response.results.length, 'items');
|
|
2746
2648
|
* ```
|
|
2747
2649
|
*/
|
|
2748
|
-
bulkCreate(accountId: string, campaignId: string,
|
|
2650
|
+
bulkCreate(accountId: string, campaignId: string, items: BulkCreateItemData[]): Promise<BulkCreateItemsResponse>;
|
|
2749
2651
|
/**
|
|
2750
2652
|
* Bulk create items across multiple campaigns
|
|
2751
2653
|
*
|
|
2654
|
+
* Unified endpoint that supports both static ads and motion ads.
|
|
2655
|
+
*
|
|
2752
2656
|
* @param accountId - Account ID
|
|
2753
2657
|
* @param items - Array of items with campaign IDs
|
|
2754
2658
|
*
|
|
2755
|
-
* @example
|
|
2659
|
+
* @example Static ads
|
|
2660
|
+
* ```typescript
|
|
2661
|
+
* await client.items.bulkCreateAcrossCampaigns('my-account', [
|
|
2662
|
+
* { campaign_id: '12345', url: 'https://example.com/1', title: 'Title 1' },
|
|
2663
|
+
* { campaign_id: '12346', url: 'https://example.com/2', title: 'Title 2' },
|
|
2664
|
+
* ]);
|
|
2665
|
+
* ```
|
|
2666
|
+
*
|
|
2667
|
+
* @example Motion ads
|
|
2756
2668
|
* ```typescript
|
|
2757
2669
|
* await client.items.bulkCreateAcrossCampaigns('my-account', [
|
|
2758
|
-
* {
|
|
2759
|
-
*
|
|
2670
|
+
* {
|
|
2671
|
+
* campaign_id: '12345',
|
|
2672
|
+
* url: 'https://example.com/1',
|
|
2673
|
+
* title: 'Motion Ad',
|
|
2674
|
+
* performance_video_data: {
|
|
2675
|
+
* video_url: 'https://example.com/video.mp4',
|
|
2676
|
+
* fallback_url: 'https://example.com/fallback.jpg',
|
|
2677
|
+
* },
|
|
2678
|
+
* },
|
|
2760
2679
|
* ]);
|
|
2761
2680
|
* ```
|
|
2762
2681
|
*/
|
|
2763
|
-
bulkCreateAcrossCampaigns(accountId: string, items: (
|
|
2682
|
+
bulkCreateAcrossCampaigns(accountId: string, items: (BulkCreateItemData & {
|
|
2764
2683
|
campaign_id: string;
|
|
2765
2684
|
})[]): Promise<BulkCreateItemsResponse>;
|
|
2766
2685
|
/**
|
|
@@ -2851,22 +2770,14 @@ declare class DictionaryAPI {
|
|
|
2851
2770
|
getCountries(): Promise<Country[]>;
|
|
2852
2771
|
/**
|
|
2853
2772
|
* Get regions/states within a country
|
|
2854
|
-
*
|
|
2855
|
-
* @param countryCode - Country code (e.g., 'US', 'GB')
|
|
2856
2773
|
*/
|
|
2857
2774
|
getRegions(countryCode: string): Promise<Region[]>;
|
|
2858
2775
|
/**
|
|
2859
2776
|
* Get DMAs (Designated Market Areas) for a country
|
|
2860
|
-
* Note: Only available for US
|
|
2861
|
-
*
|
|
2862
|
-
* @param countryCode - Country code (typically 'US')
|
|
2863
2777
|
*/
|
|
2864
2778
|
getDMAs(countryCode: string): Promise<DMA[]>;
|
|
2865
2779
|
/**
|
|
2866
2780
|
* Get postal codes for a country
|
|
2867
|
-
*
|
|
2868
|
-
* @param countryCode - Country code (e.g., 'US', 'GB')
|
|
2869
|
-
* @param params - Optional search and pagination parameters
|
|
2870
2781
|
*/
|
|
2871
2782
|
getPostalCodes(countryCode: string, params?: PostalCodeSearchParams): Promise<PostalCode[]>;
|
|
2872
2783
|
/**
|
|
@@ -2923,40 +2834,26 @@ declare class DictionaryAPI {
|
|
|
2923
2834
|
getImageLibraryLanguages(): Promise<ImageLibraryLanguage[]>;
|
|
2924
2835
|
/**
|
|
2925
2836
|
* Get image taxonomies for categorizing images
|
|
2926
|
-
*
|
|
2927
|
-
* @param accountId - Account ID
|
|
2928
2837
|
*/
|
|
2929
2838
|
getImageTaxonomies(accountId: string): Promise<ImageTaxonomy[]>;
|
|
2930
2839
|
/**
|
|
2931
2840
|
* Get marketplace audience segments available for targeting
|
|
2932
|
-
*
|
|
2933
|
-
* @param accountId - Account ID
|
|
2934
2841
|
*/
|
|
2935
2842
|
getMarketplaceAudiences(accountId: string): Promise<MarketplaceAudience[]>;
|
|
2936
2843
|
/**
|
|
2937
2844
|
* Get marketplace audience segments for a specific country
|
|
2938
|
-
*
|
|
2939
|
-
* @param accountId - Account ID
|
|
2940
|
-
* @param countryCode - Country code (e.g., 'US', 'GB')
|
|
2941
2845
|
*/
|
|
2942
2846
|
getMarketplaceAudiencesByCountry(accountId: string, countryCode: string): Promise<MarketplaceAudience[]>;
|
|
2943
2847
|
/**
|
|
2944
2848
|
* Get lookalike audiences available for targeting
|
|
2945
|
-
*
|
|
2946
|
-
* @param accountId - Account ID
|
|
2947
2849
|
*/
|
|
2948
2850
|
getLookalikeAudiences(accountId: string): Promise<LookalikeAudience[]>;
|
|
2949
2851
|
/**
|
|
2950
2852
|
* Get lookalike audiences for a specific country
|
|
2951
|
-
*
|
|
2952
|
-
* @param accountId - Account ID
|
|
2953
|
-
* @param countryCode - Country code (e.g., 'US', 'GB')
|
|
2954
2853
|
*/
|
|
2955
2854
|
getLookalikeAudiencesByCountry(accountId: string, countryCode: string): Promise<LookalikeAudience[]>;
|
|
2956
2855
|
/**
|
|
2957
2856
|
* Get contextual segments available for targeting
|
|
2958
|
-
*
|
|
2959
|
-
* @param accountId - Account ID
|
|
2960
2857
|
*/
|
|
2961
2858
|
getContextualSegments(accountId: string): Promise<ContextualSegment[]>;
|
|
2962
2859
|
}
|
|
@@ -2977,84 +2874,31 @@ declare class PublishersAPI {
|
|
|
2977
2874
|
constructor(http: HttpClient);
|
|
2978
2875
|
/**
|
|
2979
2876
|
* List all available publishers for an account
|
|
2980
|
-
*
|
|
2981
|
-
* @param accountId - Account ID
|
|
2982
|
-
* @returns List of publishers with blocking status
|
|
2983
|
-
*
|
|
2984
|
-
* @example
|
|
2985
|
-
* ```typescript
|
|
2986
|
-
* const publishers = await client.publishers.list('my-account');
|
|
2987
|
-
* console.log(`Found ${publishers.length} publishers`);
|
|
2988
|
-
* ```
|
|
2989
2877
|
*/
|
|
2990
2878
|
list(accountId: string): Promise<Publisher[]>;
|
|
2991
2879
|
/**
|
|
2992
2880
|
* Get blocked publishers at the account level
|
|
2993
|
-
*
|
|
2994
|
-
* @param accountId - Account ID
|
|
2995
|
-
* @returns List of blocked publishers
|
|
2996
|
-
*
|
|
2997
|
-
* @example
|
|
2998
|
-
* ```typescript
|
|
2999
|
-
* const blocked = await client.publishers.getBlocked('my-account');
|
|
3000
|
-
* console.log(`${blocked.length} publishers blocked at account level`);
|
|
3001
|
-
* ```
|
|
3002
2881
|
*/
|
|
3003
|
-
getBlocked(accountId: string): Promise<
|
|
2882
|
+
getBlocked(accountId: string): Promise<string[]>;
|
|
3004
2883
|
/**
|
|
3005
2884
|
* Update blocked publishers at the account level
|
|
3006
2885
|
*
|
|
3007
2886
|
* This replaces the current list of blocked publishers with the
|
|
3008
|
-
* provided list.
|
|
3009
|
-
* list and append.
|
|
3010
|
-
*
|
|
3011
|
-
* @param accountId - Account ID
|
|
3012
|
-
* @param sites - Array of site names to block
|
|
3013
|
-
* @returns Updated list of blocked publishers
|
|
3014
|
-
*
|
|
3015
|
-
* @example
|
|
3016
|
-
* ```typescript
|
|
3017
|
-
* // Block specific publishers
|
|
3018
|
-
* await client.publishers.updateBlocked('my-account', {
|
|
3019
|
-
* sites: ['site1.com', 'site2.com']
|
|
3020
|
-
* });
|
|
3021
|
-
*
|
|
3022
|
-
* // Add to existing blocks
|
|
3023
|
-
* const current = await client.publishers.getBlocked('my-account');
|
|
3024
|
-
* const currentSites = current.map(p => p.site);
|
|
3025
|
-
* await client.publishers.updateBlocked('my-account', {
|
|
3026
|
-
* sites: [...currentSites, 'newsite.com']
|
|
3027
|
-
* });
|
|
3028
|
-
* ```
|
|
2887
|
+
* provided list.
|
|
3029
2888
|
*/
|
|
3030
|
-
updateBlocked(accountId: string, request: UpdateBlockedPublishersRequest): Promise<
|
|
2889
|
+
updateBlocked(accountId: string, request: UpdateBlockedPublishersRequest): Promise<string[]>;
|
|
3031
2890
|
/**
|
|
3032
2891
|
* Block a single publisher at the account level
|
|
3033
|
-
*
|
|
3034
|
-
* Convenience method that adds a publisher to the existing block list.
|
|
3035
|
-
*
|
|
3036
|
-
* @param accountId - Account ID
|
|
3037
|
-
* @param site - Site name to block
|
|
3038
|
-
* @returns Updated list of blocked publishers
|
|
3039
2892
|
*/
|
|
3040
|
-
blockPublisher(accountId: string, site: string): Promise<
|
|
2893
|
+
blockPublisher(accountId: string, site: string): Promise<string[]>;
|
|
3041
2894
|
/**
|
|
3042
2895
|
* Unblock a single publisher at the account level
|
|
3043
|
-
*
|
|
3044
|
-
* Convenience method that removes a publisher from the block list.
|
|
3045
|
-
*
|
|
3046
|
-
* @param accountId - Account ID
|
|
3047
|
-
* @param site - Site name to unblock
|
|
3048
|
-
* @returns Updated list of blocked publishers
|
|
3049
2896
|
*/
|
|
3050
|
-
unblockPublisher(accountId: string, site: string): Promise<
|
|
2897
|
+
unblockPublisher(accountId: string, site: string): Promise<string[]>;
|
|
3051
2898
|
/**
|
|
3052
2899
|
* Clear all blocked publishers at the account level
|
|
3053
|
-
*
|
|
3054
|
-
* @param accountId - Account ID
|
|
3055
|
-
* @returns Empty list
|
|
3056
2900
|
*/
|
|
3057
|
-
clearBlocked(accountId: string): Promise<
|
|
2901
|
+
clearBlocked(accountId: string): Promise<string[]>;
|
|
3058
2902
|
}
|
|
3059
2903
|
|
|
3060
2904
|
/**
|
|
@@ -3073,192 +2917,58 @@ declare class TargetingAPI {
|
|
|
3073
2917
|
constructor(http: HttpClient);
|
|
3074
2918
|
/**
|
|
3075
2919
|
* Get postal code targeting for a campaign
|
|
3076
|
-
*
|
|
3077
|
-
* @param accountId - Account ID
|
|
3078
|
-
* @param campaignId - Campaign ID
|
|
3079
|
-
* @returns Postal code targeting configuration
|
|
3080
|
-
*
|
|
3081
|
-
* @example
|
|
3082
|
-
* ```typescript
|
|
3083
|
-
* const targeting = await client.targeting.getPostalCodes('my-account', '12345');
|
|
3084
|
-
* console.log(`Targeting type: ${targeting.type}`);
|
|
3085
|
-
* console.log(`Postal codes: ${targeting.values.length}`);
|
|
3086
|
-
* ```
|
|
3087
2920
|
*/
|
|
3088
2921
|
getPostalCodes(accountId: string, campaignId: string): Promise<PostalCodeTargeting>;
|
|
3089
2922
|
/**
|
|
3090
2923
|
* Update postal code targeting for a campaign
|
|
3091
|
-
*
|
|
3092
|
-
* @param accountId - Account ID
|
|
3093
|
-
* @param campaignId - Campaign ID
|
|
3094
|
-
* @param targeting - Postal code targeting configuration
|
|
3095
|
-
* @returns Updated targeting configuration
|
|
3096
|
-
*
|
|
3097
|
-
* @example
|
|
3098
|
-
* ```typescript
|
|
3099
|
-
* await client.targeting.updatePostalCodes('my-account', '12345', {
|
|
3100
|
-
* type: 'INCLUDE',
|
|
3101
|
-
* values: [
|
|
3102
|
-
* { postal_code: '10001', country: 'US' },
|
|
3103
|
-
* { postal_code: '10002', country: 'US' },
|
|
3104
|
-
* ]
|
|
3105
|
-
* });
|
|
3106
|
-
* ```
|
|
3107
2924
|
*/
|
|
3108
2925
|
updatePostalCodes(accountId: string, campaignId: string, targeting: UpdatePostalCodeTargetingRequest): Promise<PostalCodeTargeting>;
|
|
3109
2926
|
/**
|
|
3110
2927
|
* Get marketplace audience targeting for a campaign
|
|
3111
|
-
*
|
|
3112
|
-
* Marketplace audiences are third-party audience segments
|
|
3113
|
-
* available for targeting through Taboola's marketplace.
|
|
3114
|
-
*
|
|
3115
|
-
* @param accountId - Account ID
|
|
3116
|
-
* @param campaignId - Campaign ID
|
|
3117
|
-
* @returns Audience targeting configuration
|
|
3118
2928
|
*/
|
|
3119
2929
|
getMarketplaceAudiences(accountId: string, campaignId: string): Promise<AudienceTargeting>;
|
|
3120
2930
|
/**
|
|
3121
2931
|
* Update marketplace audience targeting for a campaign
|
|
3122
|
-
*
|
|
3123
|
-
* @param accountId - Account ID
|
|
3124
|
-
* @param campaignId - Campaign ID
|
|
3125
|
-
* @param targeting - Audience targeting configuration
|
|
3126
|
-
* @returns Updated targeting configuration
|
|
3127
|
-
*
|
|
3128
|
-
* @example
|
|
3129
|
-
* ```typescript
|
|
3130
|
-
* await client.targeting.updateMarketplaceAudiences('my-account', '12345', {
|
|
3131
|
-
* type: 'INCLUDE',
|
|
3132
|
-
* collection: [
|
|
3133
|
-
* { id: 'segment-1', name: null },
|
|
3134
|
-
* { id: 'segment-2', name: null },
|
|
3135
|
-
* ]
|
|
3136
|
-
* });
|
|
3137
|
-
* ```
|
|
3138
2932
|
*/
|
|
3139
2933
|
updateMarketplaceAudiences(accountId: string, campaignId: string, targeting: UpdateAudienceTargetingRequest): Promise<AudienceTargeting>;
|
|
3140
2934
|
/**
|
|
3141
2935
|
* Get custom audience targeting for a campaign
|
|
3142
|
-
*
|
|
3143
|
-
* Custom audiences are audiences created from pixel data
|
|
3144
|
-
* or uploaded lists.
|
|
3145
|
-
*
|
|
3146
|
-
* @param accountId - Account ID
|
|
3147
|
-
* @param campaignId - Campaign ID
|
|
3148
|
-
* @returns Audience targeting configuration
|
|
3149
2936
|
*/
|
|
3150
2937
|
getCustomAudiences(accountId: string, campaignId: string): Promise<AudienceTargeting>;
|
|
3151
2938
|
/**
|
|
3152
2939
|
* Update custom audience targeting for a campaign
|
|
3153
|
-
*
|
|
3154
|
-
* @param accountId - Account ID
|
|
3155
|
-
* @param campaignId - Campaign ID
|
|
3156
|
-
* @param targeting - Audience targeting configuration
|
|
3157
|
-
* @returns Updated targeting configuration
|
|
3158
2940
|
*/
|
|
3159
2941
|
updateCustomAudiences(accountId: string, campaignId: string, targeting: UpdateAudienceTargetingRequest): Promise<AudienceTargeting>;
|
|
3160
2942
|
/**
|
|
3161
2943
|
* Get lookalike audience targeting for a campaign
|
|
3162
|
-
*
|
|
3163
|
-
* Lookalike audiences are modeled after your existing
|
|
3164
|
-
* custom audiences to find similar users.
|
|
3165
|
-
*
|
|
3166
|
-
* @param accountId - Account ID
|
|
3167
|
-
* @param campaignId - Campaign ID
|
|
3168
|
-
* @returns Audience targeting configuration
|
|
3169
2944
|
*/
|
|
3170
|
-
getLookalikeAudiences(accountId: string, campaignId: string): Promise<
|
|
2945
|
+
getLookalikeAudiences(accountId: string, campaignId: string): Promise<LookalikeAudienceTargeting>;
|
|
3171
2946
|
/**
|
|
3172
2947
|
* Update lookalike audience targeting for a campaign
|
|
3173
|
-
*
|
|
3174
|
-
* @param accountId - Account ID
|
|
3175
|
-
* @param campaignId - Campaign ID
|
|
3176
|
-
* @param targeting - Audience targeting configuration
|
|
3177
|
-
* @returns Updated targeting configuration
|
|
3178
2948
|
*/
|
|
3179
|
-
updateLookalikeAudiences(accountId: string, campaignId: string, targeting:
|
|
2949
|
+
updateLookalikeAudiences(accountId: string, campaignId: string, targeting: UpdateLookalikeAudienceTargetingRequest): Promise<LookalikeAudienceTargeting>;
|
|
3180
2950
|
/**
|
|
3181
2951
|
* Get contextual targeting for a campaign
|
|
3182
|
-
*
|
|
3183
|
-
* Contextual targeting allows you to target based on the
|
|
3184
|
-
* content of the pages where your ads appear.
|
|
3185
|
-
*
|
|
3186
|
-
* @param accountId - Account ID
|
|
3187
|
-
* @param campaignId - Campaign ID
|
|
3188
|
-
* @returns Contextual targeting configuration
|
|
3189
2952
|
*/
|
|
3190
2953
|
getContextual(accountId: string, campaignId: string): Promise<ContextualTargeting>;
|
|
3191
2954
|
/**
|
|
3192
2955
|
* Update contextual targeting for a campaign
|
|
3193
|
-
*
|
|
3194
|
-
* @param accountId - Account ID
|
|
3195
|
-
* @param campaignId - Campaign ID
|
|
3196
|
-
* @param targeting - Contextual targeting configuration
|
|
3197
|
-
* @returns Updated targeting configuration
|
|
3198
|
-
*
|
|
3199
|
-
* @example
|
|
3200
|
-
* ```typescript
|
|
3201
|
-
* await client.targeting.updateContextual('my-account', '12345', {
|
|
3202
|
-
* type: 'INCLUDE',
|
|
3203
|
-
* collection: [
|
|
3204
|
-
* { id: 'context-1', name: null },
|
|
3205
|
-
* { id: 'context-2', name: null },
|
|
3206
|
-
* ]
|
|
3207
|
-
* });
|
|
3208
|
-
* ```
|
|
3209
2956
|
*/
|
|
3210
2957
|
updateContextual(accountId: string, campaignId: string, targeting: UpdateContextualTargetingRequest): Promise<ContextualTargeting>;
|
|
3211
2958
|
/**
|
|
3212
2959
|
* Get first party audience targeting for a campaign
|
|
3213
|
-
*
|
|
3214
|
-
* First party audiences are your own uploaded audience data.
|
|
3215
|
-
*
|
|
3216
|
-
* @param accountId - Account ID
|
|
3217
|
-
* @param campaignId - Campaign ID
|
|
3218
|
-
* @returns First party audience targeting configuration
|
|
3219
2960
|
*/
|
|
3220
2961
|
getFirstPartyAudiences(accountId: string, campaignId: string): Promise<FirstPartyAudienceTargeting>;
|
|
3221
2962
|
/**
|
|
3222
2963
|
* Update first party audience targeting for a campaign
|
|
3223
|
-
*
|
|
3224
|
-
* @param accountId - Account ID
|
|
3225
|
-
* @param campaignId - Campaign ID
|
|
3226
|
-
* @param targeting - First party audience targeting configuration
|
|
3227
|
-
* @returns Updated targeting configuration
|
|
3228
2964
|
*/
|
|
3229
2965
|
updateFirstPartyAudiences(accountId: string, campaignId: string, targeting: UpdateFirstPartyAudienceTargetingRequest): Promise<FirstPartyAudienceTargeting>;
|
|
3230
2966
|
/**
|
|
3231
2967
|
* Get marking labels (pixel retargeting) targeting for a campaign
|
|
3232
|
-
*
|
|
3233
|
-
* Marking labels allow you to target users based on pixel-tracked
|
|
3234
|
-
* behavior using custom labels.
|
|
3235
|
-
*
|
|
3236
|
-
* @param accountId - Account ID
|
|
3237
|
-
* @param campaignId - Campaign ID
|
|
3238
|
-
* @returns Marking labels targeting configuration
|
|
3239
|
-
*
|
|
3240
|
-
* @example
|
|
3241
|
-
* ```typescript
|
|
3242
|
-
* const targeting = await client.targeting.getMarkingLabels('my-account', '12345');
|
|
3243
|
-
* console.log('Labels:', targeting.collection);
|
|
3244
|
-
* ```
|
|
3245
2968
|
*/
|
|
3246
2969
|
getMarkingLabels(accountId: string, campaignId: string): Promise<MarkingLabelsTargeting>;
|
|
3247
2970
|
/**
|
|
3248
2971
|
* Update marking labels targeting for a campaign
|
|
3249
|
-
*
|
|
3250
|
-
* @param accountId - Account ID
|
|
3251
|
-
* @param campaignId - Campaign ID
|
|
3252
|
-
* @param targeting - Marking labels targeting configuration
|
|
3253
|
-
* @returns Updated targeting configuration
|
|
3254
|
-
*
|
|
3255
|
-
* @example
|
|
3256
|
-
* ```typescript
|
|
3257
|
-
* await client.targeting.updateMarkingLabels('my-account', '12345', {
|
|
3258
|
-
* type: 'EXISTS',
|
|
3259
|
-
* collection: ['label-1', 'label-2'],
|
|
3260
|
-
* });
|
|
3261
|
-
* ```
|
|
3262
2972
|
*/
|
|
3263
2973
|
updateMarkingLabels(accountId: string, campaignId: string, targeting: UpdateMarkingLabelsTargetingRequest): Promise<MarkingLabelsTargeting>;
|
|
3264
2974
|
}
|
|
@@ -3278,82 +2988,22 @@ declare class CombinedAudiencesAPI {
|
|
|
3278
2988
|
constructor(http: HttpClient);
|
|
3279
2989
|
/**
|
|
3280
2990
|
* List available audiences for combining
|
|
3281
|
-
*
|
|
3282
|
-
* Returns all audiences that can be used in combined audience rules,
|
|
3283
|
-
* including custom, lookalike, marketplace, and first-party audiences.
|
|
3284
|
-
*
|
|
3285
|
-
* @param accountId - Account ID
|
|
3286
|
-
* @returns List of available audiences
|
|
3287
|
-
*
|
|
3288
|
-
* @example
|
|
3289
|
-
* ```typescript
|
|
3290
|
-
* const available = await client.combinedAudiences.listAvailable('my-account');
|
|
3291
|
-
* console.log(`${available.length} audiences available for combining`);
|
|
3292
|
-
* ```
|
|
3293
2991
|
*/
|
|
3294
2992
|
listAvailable(accountId: string): Promise<AvailableAudience[]>;
|
|
3295
2993
|
/**
|
|
3296
2994
|
* List all combined audiences
|
|
3297
|
-
*
|
|
3298
|
-
* @param accountId - Account ID
|
|
3299
|
-
* @returns List of combined audiences
|
|
3300
|
-
*
|
|
3301
|
-
* @example
|
|
3302
|
-
* ```typescript
|
|
3303
|
-
* const audiences = await client.combinedAudiences.list('my-account');
|
|
3304
|
-
* for (const audience of audiences) {
|
|
3305
|
-
* console.log(`${audience.name}: ${audience.status}`);
|
|
3306
|
-
* }
|
|
3307
|
-
* ```
|
|
3308
2995
|
*/
|
|
3309
2996
|
list(accountId: string): Promise<CombinedAudience[]>;
|
|
3310
2997
|
/**
|
|
3311
2998
|
* Get a single combined audience
|
|
3312
|
-
*
|
|
3313
|
-
* @param accountId - Account ID
|
|
3314
|
-
* @param audienceId - Combined audience ID
|
|
3315
|
-
* @returns Combined audience details
|
|
3316
2999
|
*/
|
|
3317
3000
|
get(accountId: string, audienceId: string): Promise<CombinedAudience>;
|
|
3318
3001
|
/**
|
|
3319
3002
|
* Create a combined audience
|
|
3320
|
-
*
|
|
3321
|
-
* @param accountId - Account ID
|
|
3322
|
-
* @param audience - Combined audience configuration
|
|
3323
|
-
* @returns Created combined audience
|
|
3324
|
-
*
|
|
3325
|
-
* @example
|
|
3326
|
-
* ```typescript
|
|
3327
|
-
* const audience = await client.combinedAudiences.create('my-account', {
|
|
3328
|
-
* name: 'High-Value Engaged Users',
|
|
3329
|
-
* description: 'Users who are both high-value and engaged',
|
|
3330
|
-
* include_rules: [
|
|
3331
|
-
* {
|
|
3332
|
-
* audience_type: 'CUSTOM_AUDIENCE',
|
|
3333
|
-
* audiences: [{ id: 'custom-1', name: null }]
|
|
3334
|
-
* },
|
|
3335
|
-
* {
|
|
3336
|
-
* audience_type: 'LOOKALIKE_AUDIENCE',
|
|
3337
|
-
* audiences: [{ id: 'lookalike-1', name: null }]
|
|
3338
|
-
* }
|
|
3339
|
-
* ],
|
|
3340
|
-
* exclude_rules: [
|
|
3341
|
-
* {
|
|
3342
|
-
* audience_type: 'CUSTOM_AUDIENCE',
|
|
3343
|
-
* audiences: [{ id: 'converters', name: null }]
|
|
3344
|
-
* }
|
|
3345
|
-
* ]
|
|
3346
|
-
* });
|
|
3347
|
-
* ```
|
|
3348
3003
|
*/
|
|
3349
3004
|
create(accountId: string, audience: CreateCombinedAudienceRequest): Promise<CombinedAudience>;
|
|
3350
3005
|
/**
|
|
3351
3006
|
* Update a combined audience
|
|
3352
|
-
*
|
|
3353
|
-
* @param accountId - Account ID
|
|
3354
|
-
* @param audienceId - Combined audience ID
|
|
3355
|
-
* @param updates - Fields to update
|
|
3356
|
-
* @returns Updated combined audience
|
|
3357
3007
|
*/
|
|
3358
3008
|
update(accountId: string, audienceId: string, updates: UpdateCombinedAudienceRequest): Promise<CombinedAudience>;
|
|
3359
3009
|
}
|
|
@@ -3373,98 +3023,20 @@ declare class FirstPartyAudiencesAPI {
|
|
|
3373
3023
|
constructor(http: HttpClient);
|
|
3374
3024
|
/**
|
|
3375
3025
|
* List all first party audiences
|
|
3376
|
-
*
|
|
3377
|
-
* @param accountId - Account ID
|
|
3378
|
-
* @returns List of first party audiences
|
|
3379
|
-
*
|
|
3380
|
-
* @example
|
|
3381
|
-
* ```typescript
|
|
3382
|
-
* const audiences = await client.firstPartyAudiences.list('my-account');
|
|
3383
|
-
* for (const audience of audiences) {
|
|
3384
|
-
* console.log(`${audience.name}: ${audience.status} (${audience.size} users)`);
|
|
3385
|
-
* }
|
|
3386
|
-
* ```
|
|
3387
3026
|
*/
|
|
3388
3027
|
list(accountId: string): Promise<FirstPartyAudience[]>;
|
|
3389
3028
|
/**
|
|
3390
3029
|
* Get a single first party audience
|
|
3391
|
-
*
|
|
3392
|
-
* @param accountId - Account ID
|
|
3393
|
-
* @param audienceId - Audience ID
|
|
3394
|
-
* @returns First party audience details
|
|
3395
3030
|
*/
|
|
3396
3031
|
get(accountId: string, audienceId: string): Promise<FirstPartyAudience>;
|
|
3397
3032
|
/**
|
|
3398
3033
|
* Create a first party audience
|
|
3399
|
-
*
|
|
3400
|
-
* After creation, use addUsers() to populate the audience with identifiers.
|
|
3401
|
-
*
|
|
3402
|
-
* @param accountId - Account ID
|
|
3403
|
-
* @param audience - Audience configuration
|
|
3404
|
-
* @returns Created audience
|
|
3405
|
-
*
|
|
3406
|
-
* @example
|
|
3407
|
-
* ```typescript
|
|
3408
|
-
* const audience = await client.firstPartyAudiences.create('my-account', {
|
|
3409
|
-
* name: 'High-Value Customers',
|
|
3410
|
-
* description: 'Customers with LTV > $1000',
|
|
3411
|
-
* source_type: 'CRM',
|
|
3412
|
-
* ttl_days: 90
|
|
3413
|
-
* });
|
|
3414
|
-
*
|
|
3415
|
-
* // Then add users
|
|
3416
|
-
* await client.firstPartyAudiences.addUsers('my-account', audience.id, {
|
|
3417
|
-
* add: [
|
|
3418
|
-
* { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash1' },
|
|
3419
|
-
* { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash2' },
|
|
3420
|
-
* ]
|
|
3421
|
-
* });
|
|
3422
|
-
* ```
|
|
3423
3034
|
*/
|
|
3424
3035
|
create(accountId: string, audience: CreateFirstPartyAudienceRequest): Promise<FirstPartyAudience>;
|
|
3425
3036
|
/**
|
|
3426
3037
|
* Add or remove users from a first party audience
|
|
3427
|
-
*
|
|
3428
|
-
* Users are identified by hashed identifiers (email, phone, device ID).
|
|
3429
|
-
* It's recommended to use SHA256 hashed values for privacy.
|
|
3430
|
-
*
|
|
3431
|
-
* @param accountId - Account ID
|
|
3432
|
-
* @param audienceId - Audience ID
|
|
3433
|
-
* @param request - Add/remove request with user identifiers
|
|
3434
|
-
* @returns Operation result with counts
|
|
3435
|
-
*
|
|
3436
|
-
* @example
|
|
3437
|
-
* ```typescript
|
|
3438
|
-
* // Add users
|
|
3439
|
-
* const result = await client.firstPartyAudiences.addUsers('my-account', 'audience-1', {
|
|
3440
|
-
* add: [
|
|
3441
|
-
* { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash1' },
|
|
3442
|
-
* { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash2' },
|
|
3443
|
-
* ]
|
|
3444
|
-
* });
|
|
3445
|
-
* console.log(`Added ${result.added_count} users`);
|
|
3446
|
-
*
|
|
3447
|
-
* // Remove users
|
|
3448
|
-
* const result2 = await client.firstPartyAudiences.addUsers('my-account', 'audience-1', {
|
|
3449
|
-
* remove: [
|
|
3450
|
-
* { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash3' },
|
|
3451
|
-
* ]
|
|
3452
|
-
* });
|
|
3453
|
-
* console.log(`Removed ${result2.removed_count} users`);
|
|
3454
|
-
* ```
|
|
3455
3038
|
*/
|
|
3456
|
-
|
|
3457
|
-
/**
|
|
3458
|
-
* Remove users from a first party audience
|
|
3459
|
-
*
|
|
3460
|
-
* Convenience method that wraps addUsers with only remove operations.
|
|
3461
|
-
*
|
|
3462
|
-
* @param accountId - Account ID
|
|
3463
|
-
* @param audienceId - Audience ID
|
|
3464
|
-
* @param request - Remove request with user identifiers
|
|
3465
|
-
* @returns Operation result with counts
|
|
3466
|
-
*/
|
|
3467
|
-
removeUsers(accountId: string, audienceId: string, request: Pick<AddRemoveUsersRequest, 'remove'>): Promise<AddRemoveUsersResponse>;
|
|
3039
|
+
manageUsers(accountId: string, request: AudienceUsersRequest): Promise<void>;
|
|
3468
3040
|
}
|
|
3469
3041
|
|
|
3470
3042
|
/**
|
|
@@ -3503,7 +3075,7 @@ declare class PixelAPI {
|
|
|
3503
3075
|
* @param ruleId - Conversion rule ID
|
|
3504
3076
|
* @returns Conversion rule details
|
|
3505
3077
|
*/
|
|
3506
|
-
getConversionRule(accountId: string, ruleId:
|
|
3078
|
+
getConversionRule(accountId: string, ruleId: number): Promise<ConversionRule>;
|
|
3507
3079
|
/**
|
|
3508
3080
|
* List conversion rules with performance data
|
|
3509
3081
|
*
|
|
@@ -3526,23 +3098,17 @@ declare class PixelAPI {
|
|
|
3526
3098
|
* // URL-based conversion rule
|
|
3527
3099
|
* const rule = await client.pixel.createConversionRule('my-account', {
|
|
3528
3100
|
* display_name: 'Purchase Completed',
|
|
3529
|
-
* type: '
|
|
3530
|
-
* category: '
|
|
3531
|
-
*
|
|
3532
|
-
*
|
|
3533
|
-
*
|
|
3534
|
-
*
|
|
3535
|
-
*
|
|
3536
|
-
* }
|
|
3537
|
-
* ],
|
|
3538
|
-
* effect: {
|
|
3539
|
-
* type: 'DYNAMIC_VALUE',
|
|
3540
|
-
* value: null,
|
|
3541
|
-
* currency: 'USD',
|
|
3542
|
-
* value_parameter: 'order_total'
|
|
3101
|
+
* type: 'BASIC',
|
|
3102
|
+
* category: 'MAKE_PURCHASE',
|
|
3103
|
+
* condition: {
|
|
3104
|
+
* property: 'URL',
|
|
3105
|
+
* predicate: 'CONTAINS',
|
|
3106
|
+
* value: '/thank-you',
|
|
3107
|
+
* children: [],
|
|
3543
3108
|
* },
|
|
3544
|
-
*
|
|
3545
|
-
*
|
|
3109
|
+
* effects: [{ type: 'REVENUE', data: '15' }],
|
|
3110
|
+
* look_back_window: 30,
|
|
3111
|
+
* view_through_look_back_window: 1,
|
|
3546
3112
|
* });
|
|
3547
3113
|
*
|
|
3548
3114
|
* // Event-based conversion rule
|
|
@@ -3551,13 +3117,7 @@ declare class PixelAPI {
|
|
|
3551
3117
|
* type: 'EVENT_BASED',
|
|
3552
3118
|
* category: 'ADD_TO_CART',
|
|
3553
3119
|
* event_name: 'add_to_cart',
|
|
3554
|
-
*
|
|
3555
|
-
* effect: {
|
|
3556
|
-
* type: 'FIXED_VALUE',
|
|
3557
|
-
* value: 10,
|
|
3558
|
-
* currency: 'USD',
|
|
3559
|
-
* value_parameter: null
|
|
3560
|
-
* }
|
|
3120
|
+
* effects: [{ type: 'REVENUE', data: '10' }],
|
|
3561
3121
|
* });
|
|
3562
3122
|
* ```
|
|
3563
3123
|
*/
|
|
@@ -3570,7 +3130,7 @@ declare class PixelAPI {
|
|
|
3570
3130
|
* @param updates - Fields to update
|
|
3571
3131
|
* @returns Updated conversion rule
|
|
3572
3132
|
*/
|
|
3573
|
-
updateConversionRule(accountId: string, ruleId:
|
|
3133
|
+
updateConversionRule(accountId: string, ruleId: number, updates: UpdateConversionRuleRequest): Promise<ConversionRule>;
|
|
3574
3134
|
/**
|
|
3575
3135
|
* Archive a conversion rule
|
|
3576
3136
|
*
|
|
@@ -3581,7 +3141,7 @@ declare class PixelAPI {
|
|
|
3581
3141
|
* @param ruleId - Conversion rule ID
|
|
3582
3142
|
* @returns Archived conversion rule
|
|
3583
3143
|
*/
|
|
3584
|
-
archiveConversionRule(accountId: string, ruleId:
|
|
3144
|
+
archiveConversionRule(accountId: string, ruleId: number): Promise<ConversionRule>;
|
|
3585
3145
|
/**
|
|
3586
3146
|
* Unarchive a conversion rule
|
|
3587
3147
|
*
|
|
@@ -3591,7 +3151,7 @@ declare class PixelAPI {
|
|
|
3591
3151
|
* @param ruleId - Conversion rule ID
|
|
3592
3152
|
* @returns Reactivated conversion rule
|
|
3593
3153
|
*/
|
|
3594
|
-
unarchiveConversionRule(accountId: string, ruleId:
|
|
3154
|
+
unarchiveConversionRule(accountId: string, ruleId: number): Promise<ConversionRule>;
|
|
3595
3155
|
/**
|
|
3596
3156
|
* List all custom audience rules
|
|
3597
3157
|
*
|
|
@@ -3627,37 +3187,16 @@ declare class PixelAPI {
|
|
|
3627
3187
|
*
|
|
3628
3188
|
* @example
|
|
3629
3189
|
* ```typescript
|
|
3630
|
-
* // All visitors audience
|
|
3631
3190
|
* const allVisitors = await client.pixel.createCustomAudienceRule('my-account', {
|
|
3632
3191
|
* display_name: 'All Visitors - 30 Days',
|
|
3633
3192
|
* conditions: [],
|
|
3634
|
-
* ttl_days: 30
|
|
3193
|
+
* ttl_days: 30,
|
|
3635
3194
|
* });
|
|
3636
3195
|
*
|
|
3637
|
-
* // Product page visitors
|
|
3638
3196
|
* const productViewers = await client.pixel.createCustomAudienceRule('my-account', {
|
|
3639
3197
|
* display_name: 'Product Page Viewers',
|
|
3640
|
-
* conditions: [
|
|
3641
|
-
*
|
|
3642
|
-
* type: 'URL',
|
|
3643
|
-
* operator: 'CONTAINS',
|
|
3644
|
-
* value: '/products/'
|
|
3645
|
-
* }
|
|
3646
|
-
* ],
|
|
3647
|
-
* ttl_days: 14
|
|
3648
|
-
* });
|
|
3649
|
-
*
|
|
3650
|
-
* // Cart abandoners
|
|
3651
|
-
* const cartAbandoners = await client.pixel.createCustomAudienceRule('my-account', {
|
|
3652
|
-
* display_name: 'Cart Abandoners',
|
|
3653
|
-
* conditions: [
|
|
3654
|
-
* {
|
|
3655
|
-
* type: 'EVENT_NAME',
|
|
3656
|
-
* operator: 'EQUALS',
|
|
3657
|
-
* value: 'add_to_cart'
|
|
3658
|
-
* }
|
|
3659
|
-
* ],
|
|
3660
|
-
* ttl_days: 7
|
|
3198
|
+
* conditions: [{ type: 'URL', operator: 'CONTAINS', value: '/products/' }],
|
|
3199
|
+
* ttl_days: 14,
|
|
3661
3200
|
* });
|
|
3662
3201
|
* ```
|
|
3663
3202
|
*/
|
|
@@ -4159,4 +3698,4 @@ declare class TaboolaServerError extends TaboolaError {
|
|
|
4159
3698
|
*/
|
|
4160
3699
|
declare function parseApiError(statusCode: number, response: unknown, url: string): TaboolaError;
|
|
4161
3700
|
|
|
4162
|
-
export { type Account, type AccountType, AccountsAPI, type ActivitySchedule, type ActivityScheduleRule, type
|
|
3701
|
+
export { type Account, type AccountType, AccountsAPI, type ActivitySchedule, type ActivityScheduleRule, type AdvertiserAccount, type AllowedAccountsResponse, type ApprovalState, type AudienceTargeting, type AudienceUserClusterItem, type AudienceUserIdentity, type AudienceUsersRequest, type AvailableAudience, type AvailableAudiencesResponse, type BidStrategy, type BlockedPublishersResponse, type BrandSafetyProvider, type Browser, type BulkCampaignUpdateRequest, type BulkCreateItemsRequest, type BulkCreateItemsResponse, type BulkDeleteItemsRequest, type BulkUpdateItemsRequest, type CTA, type CTAType, type Campaign, type CampaignBase, type CampaignBaseListResponse, type CampaignEnums, type CampaignItem, type CampaignItemListResponse, type CampaignListResponse, type CampaignPatchRequest, type CampaignReachEstimatorRequest, type CampaignReachEstimatorResponse, type CampaignStatus, type CampaignSummaryReport, type CampaignSummaryReportParams, type CampaignSummaryRow, type CampaignTargetingCollection, type CampaignType, CampaignsAPI, type CombinedAudience, type CombinedAudienceListResponse, type CombinedAudienceRule, CombinedAudiencesAPI, type ConnectionType, type ContextualSegment, type ContextualTargeting, type ConversionCategory, type ConversionCondition, type ConversionConditionPredicate, type ConversionEffect, type ConversionRule, type ConversionRuleListResponse, type ConversionRuleStatus, type ConversionRuleType, type ConversionRuleWithData, type ConversionRuleWithDataListResponse, type Coordinates, type Country, type CreateCampaignRequest, type CreateCombinedAudienceRequest, type CreateConversionRuleRequest, type CreateCustomAudienceRuleRequest, type CreateFirstPartyAudienceRequest, type CreateItemRequest, type CreateSharedBudgetRequest, type CreativeFocus, type CreativeFocusType, type CurrencyCode, type CustomAudienceCondition, type CustomAudienceConditionOperator, type CustomAudienceConditionType, type CustomAudienceRule, type CustomAudienceRuleListResponse, type CustomAudienceRuleStatus, DEFAULT_BASE_URL, type DMA, type DailyAdDeliveryModel, type DateString, type DayOfWeek, DictionaryAPI, type DuplicateCampaignRequest, type DuplicateSettings, type ExternalBrandSafety, type FirstPartyAudience, type FirstPartyAudienceTargeting, FirstPartyAudiencesAPI, HttpClient, type HttpClientOptions, type ImageLibraryItem, type ImageLibrarySearchParams, type ImageLibrarySearchResponse, type ImageUploadResponse, type ItemEnums, type ItemPolicyReview, type ItemStatus, type ItemType, type ItemVerificationPixel, type ItemViewabilityTag, ItemsAPI, type ListCampaignsOptions, type ListItemsOptions, type ListResponse, type LookalikeAudience, type LookalikeAudienceItem, type LookalikeAudienceTargeting, type MarketingObjective, type MarketplaceAudience, type MarkingLabelsTargeting, type MinimumCPC, type MultiTargeting, type MultiTargetingState, type NetworkAdvertisersResponse, OAuthManager, type OSVersion, type OperatingSystem, type OperatingSystemInfo, type PaginationParams, type PartnerType, type PatchOperation, PixelAPI, type Platform, type PlatformType, type PolicyReview, type PostalCode, type PostalCodeTargeting, type PricingModel, type Publisher, type PublisherBidModifier, type PublisherBidModifierCollection, type PublisherBidStrategyModifier, type PublisherBidStrategyModifierCollection, type PublisherListResponse, PublishersAPI, type RSSChildItem, type RSSChildrenListResponse, type RealtimeAdsDimension, type RealtimeAdsReport, type RealtimeAdsReportParams, type RealtimeAdsRow, type RealtimeCampaignDimension, type RealtimeCampaignReport, type RealtimeCampaignReportParams, type RealtimeCampaignRow, type Region, type ReportDimension, type ReportMetadata, ReportsAPI, type SharedBudget, SharedBudgetAPI, type SharedBudgetBase, type SharedBudgetBaseListResponse, type SharedBudgetCampaign, type SharedBudgetCampaignAttribute, type SpendingLimitModel, type StoredToken, TaboolaAuthError, TaboolaClient, type TaboolaConfig, TaboolaError, TaboolaForbiddenError, TaboolaNotFoundError, TaboolaRateLimitError, TaboolaServerError, TaboolaValidationError, TargetingAPI, type TargetingRestriction, type TargetingType, type TargetingValue, type TokenResponse, type TopCampaignContentReport, type TopCampaignContentReportParams, type TopCampaignContentRow, type TrafficAllocationMode, type UpdateAudienceTargetingRequest, type UpdateBlockedPublishersRequest, type UpdateCampaignRequest, type UpdateCombinedAudienceRequest, type UpdateContextualTargetingRequest, type UpdateConversionRuleRequest, type UpdateCustomAudienceRuleRequest, type UpdateFirstPartyAudienceTargetingRequest, type UpdateItemRequest, type UpdateLookalikeAudienceTargetingRequest, type UpdateMarkingLabelsTargetingRequest, type UpdatePostalCodeTargetingRequest, type UpdateSharedBudgetRequest, type VerificationPixel, type ViewabilityTag, createClient, parseApiError };
|