taboola-backstage-sdk 0.2.1 → 0.6.0

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/dist/index.d.ts 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' | 'CPV' | 'CPA';
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' | 'DRIVE_PURCHASES' | 'GENERATE_LEADS' | 'DRIVE_APP_INSTALLS' | 'MAX_CONVERSIONS';
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' | 'TARGET_ROAS';
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' | 'site_breakdown' | 'country_breakdown' | 'region_breakdown' | 'dma_breakdown' | 'platform_breakdown' | 'campaign_day_breakdown' | 'campaign_site_day_breakdown' | 'user_segment_breakdown' | 'campaign_week' | 'campaign_month' | 'site_day' | 'country_day' | 'platform_day' | 'browser' | 'browser_day' | 'os_family' | 'os_family_day' | 'item_breakdown' | 'campaign' | 'site' | 'country' | 'platform';
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
- interface AllowedAccountsResponse {
313
- results: Account[];
314
- }
318
+ type AllowedAccountsResponse = ListResponse<Account>;
315
319
  /**
316
320
  * Response for network advertisers list
317
321
  */
318
- interface NetworkAdvertisersResponse {
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,29 +556,80 @@ 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
- /** Start date */
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
622
+ *
623
+ * Submit a JSON object with only the fields you want to update.
624
+ * Fields that are omitted or null will not be updated.
572
625
  */
573
626
  interface UpdateCampaignRequest {
574
627
  /** Campaign name */
575
628
  name?: string;
576
629
  /** Branding text */
577
630
  branding_text?: string;
631
+ /** Pricing model */
632
+ pricing_model?: PricingModel;
578
633
  /** Cost per click */
579
634
  cpc?: number;
580
635
  /** Spending limit */
@@ -591,20 +646,68 @@ interface UpdateCampaignRequest {
591
646
  cpa_goal?: number;
592
647
  /** Country targeting */
593
648
  country_targeting?: TargetingValue;
649
+ /** Sub-country (region) targeting */
650
+ sub_country_targeting?: TargetingValue;
651
+ /** DMA targeting (US only) */
652
+ dma_country_targeting?: TargetingValue;
653
+ /** Region targeting */
654
+ region_country_targeting?: TargetingValue;
655
+ /** City targeting */
656
+ city_targeting?: TargetingValue;
657
+ /** Postal code targeting */
658
+ postal_code_targeting?: TargetingValue;
659
+ /** Contextual targeting */
660
+ contextual_targeting?: TargetingValue;
594
661
  /** Platform targeting */
595
662
  platform_targeting?: TargetingValue;
663
+ /** Publisher targeting (blocking) */
664
+ publisher_targeting?: TargetingValue;
596
665
  /** OS targeting */
597
666
  os_targeting?: TargetingValue;
667
+ /** Connection type targeting */
668
+ connection_type_targeting?: TargetingValue;
669
+ /** Browser targeting */
670
+ browser_targeting?: TargetingValue;
671
+ /** Auto publisher targeting */
672
+ auto_publisher_targeting?: TargetingValue;
673
+ /** Publisher bid modifiers */
674
+ publisher_bid_modifier?: PublisherBidModifierCollection;
675
+ /** Publisher bid strategy modifiers */
676
+ publisher_bid_strategy_modifiers?: PublisherBidStrategyModifierCollection;
677
+ /** Campaign profile ID */
678
+ campaign_profile?: string | null;
598
679
  /** Start date */
599
- start_date?: DateString;
680
+ start_date?: DateString | null;
600
681
  /** End date */
601
- end_date?: DateString;
602
- /** Whether campaign is active */
682
+ end_date?: DateString | null;
683
+ /** Whether campaign is active (use for pause/unpause) */
603
684
  is_active?: boolean;
604
685
  /** Tracking code */
605
686
  tracking_code?: string;
606
687
  /** Comments */
607
688
  comments?: string;
689
+ /** Traffic allocation mode */
690
+ traffic_allocation_mode?: TrafficAllocationMode;
691
+ /** A/B test end date */
692
+ traffic_allocation_ab_test_end_date?: DateString | null;
693
+ /** External brand safety config */
694
+ external_brand_safety?: ExternalBrandSafety;
695
+ /** Marketplace audience targeting */
696
+ audience_segments_multi_targeting?: MultiTargeting;
697
+ /** Custom audience targeting */
698
+ custom_audience_targeting?: MultiTargeting;
699
+ /** Marking label targeting */
700
+ marking_label_multi_targeting?: MultiTargeting;
701
+ /** Lookalike audience targeting */
702
+ lookalike_audience_targeting?: MultiTargeting;
703
+ /** Contextual segments targeting */
704
+ contextual_segments_targeting?: MultiTargeting;
705
+ /** Marketing objective */
706
+ marketing_objective?: MarketingObjective;
707
+ /** Verification pixel config */
708
+ verification_pixel?: VerificationPixel;
709
+ /** Viewability tag config */
710
+ viewability_tag?: ViewabilityTag;
608
711
  /** Activity schedule */
609
712
  activity_schedule?: ActivitySchedule;
610
713
  }
@@ -618,35 +721,29 @@ interface CampaignListResponse {
618
721
  count: number;
619
722
  };
620
723
  }
621
- /**
622
- * Bulk campaign update request item
623
- */
624
- interface BulkCampaignUpdate {
625
- /** Campaign ID to update */
626
- campaign_id: string;
627
- /** Fields to update */
628
- update: UpdateCampaignRequest;
629
- }
630
724
  /**
631
725
  * Bulk campaign update request
632
726
  */
633
727
  interface BulkCampaignUpdateRequest {
634
- campaigns: BulkCampaignUpdate[];
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;
635
734
  }
636
735
  /**
637
736
  * Campaign patch operation
638
737
  */
639
738
  type PatchOperation = 'ADD' | 'REMOVE' | 'REPLACE';
640
739
  /**
641
- * Campaign patch request for collections
740
+ * Campaign patch request
642
741
  */
643
742
  interface CampaignPatchRequest {
644
- /** Operation type */
645
- op: PatchOperation;
646
- /** Path to the field */
647
- path: string;
648
- /** Value to set */
649
- value: unknown;
743
+ /** Patch operation type */
744
+ patch_operation: PatchOperation;
745
+ /** Additional fields for the patch */
746
+ [key: string]: unknown;
650
747
  }
651
748
  /**
652
749
  * Campaign reach estimation request
@@ -723,6 +820,24 @@ interface CampaignTargetingCollection {
723
820
  value: string[];
724
821
  href?: string | null;
725
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
+ }
726
841
 
727
842
  /**
728
843
  * Campaign Item (Ad) types for Taboola Backstage API
@@ -842,16 +957,33 @@ interface CampaignItem {
842
957
  logo?: Record<string, unknown>;
843
958
  /** Disclaimer text */
844
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;
845
970
  }
846
971
  /**
847
- * Create campaign item request
972
+ * Create campaign item request (static ads only)
848
973
  */
849
974
  interface CreateItemRequest {
850
975
  /** Landing page URL (required) */
851
976
  url: string;
852
- /** Ad title/headline (required) */
853
- title: string;
854
- /** Thumbnail image URL (required unless uploading) */
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) */
855
987
  thumbnail_url?: string;
856
988
  /** Ad description */
857
989
  description?: string;
@@ -863,6 +995,27 @@ interface CreateItemRequest {
863
995
  third_party_tags?: string[];
864
996
  /** RSS feed URL (creates RSS item) */
865
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;
1008
+ }
1009
+ /**
1010
+ * Performance video data for motion ads
1011
+ */
1012
+ interface PerformanceVideoData {
1013
+ /** URL to the video file (MP4 format) */
1014
+ video_url: string;
1015
+ /** URL to the fallback image (JPG/PNG format) */
1016
+ fallback_url: string;
1017
+ /** URL to the GIF preview */
1018
+ gif_url?: string;
866
1019
  }
867
1020
  /**
868
1021
  * Update campaign item request
@@ -870,18 +1023,31 @@ interface CreateItemRequest {
870
1023
  interface UpdateItemRequest {
871
1024
  /** Ad title */
872
1025
  title?: string;
1026
+ /** Landing page URL */
1027
+ url?: string;
873
1028
  /** Ad description */
874
1029
  description?: string;
875
- /** Thumbnail image URL */
1030
+ /** Thumbnail image URL (static items only) */
876
1031
  thumbnail_url?: string;
877
- /** Whether item is active */
1032
+ /** Whether item is active (use for pause/unpause) */
878
1033
  is_active?: boolean;
879
1034
  /** CTA configuration */
880
1035
  cta?: CTA;
1036
+ /**
1037
+ * Creative focus configuration
1038
+ * @deprecated This field has been deprecated
1039
+ */
1040
+ creative_focus?: CreativeFocus;
1041
+ /** Verification pixel */
1042
+ verification_pixel?: ItemVerificationPixel;
1043
+ /** Viewability tag */
1044
+ viewability_tag?: ItemViewabilityTag;
881
1045
  /** Custom tracking data */
882
1046
  custom_data?: string;
883
1047
  /** Third-party tracking pixels */
884
1048
  third_party_tags?: string[];
1049
+ /** Performance video data (motion ads only) */
1050
+ performance_video_data?: PerformanceVideoData;
885
1051
  }
886
1052
  /**
887
1053
  * Campaign item list response
@@ -894,10 +1060,10 @@ interface CampaignItemListResponse {
894
1060
  };
895
1061
  }
896
1062
  /**
897
- * Bulk item creation request
1063
+ * Bulk item creation request (within a single campaign)
898
1064
  */
899
1065
  interface BulkCreateItemsRequest {
900
- items: CreateItemRequest[];
1066
+ items: BulkCreateItemData[];
901
1067
  }
902
1068
  /**
903
1069
  * Bulk item creation response
@@ -905,7 +1071,7 @@ interface BulkCreateItemsRequest {
905
1071
  interface BulkCreateItemsResponse {
906
1072
  results: CampaignItem[];
907
1073
  failed?: {
908
- item: CreateItemRequest;
1074
+ item: BulkCreateItemData;
909
1075
  error: string;
910
1076
  }[];
911
1077
  }
@@ -918,8 +1084,18 @@ interface BulkUpdateItemsRequest {
918
1084
  id: string;
919
1085
  /** Campaign ID */
920
1086
  campaign_id: string;
921
- /** Fields to update */
922
- update: UpdateItemRequest;
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;
923
1099
  }[];
924
1100
  }
925
1101
  /**
@@ -1015,7 +1191,6 @@ interface Country {
1015
1191
  interface Region {
1016
1192
  name: string;
1017
1193
  value: string;
1018
- country: string;
1019
1194
  }
1020
1195
  /**
1021
1196
  * DMA (Designated Market Area) - US only
@@ -1082,39 +1257,35 @@ interface MinimumCPC {
1082
1257
  * Marketplace audience segment
1083
1258
  */
1084
1259
  interface MarketplaceAudience {
1085
- id: string;
1086
- name: string;
1260
+ taboola_audience_id: number;
1261
+ audience_name: string;
1087
1262
  description: string | null;
1088
- provider: string | null;
1089
- data_partner_id: string | null;
1090
- parent_id: string | null;
1091
- has_children: boolean;
1092
- country: string | null;
1093
- platform: string | null;
1094
- 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;
1095
1269
  }
1096
1270
  /**
1097
1271
  * Lookalike audience
1098
1272
  */
1099
1273
  interface LookalikeAudience {
1100
- id: string;
1101
- name: string;
1102
- description: string | null;
1103
- source_audience_id: string | null;
1104
- status: string;
1105
- size: number | null;
1106
- country: string | null;
1274
+ rule_id: number;
1275
+ audience_name: string;
1276
+ similarity_level_to_size: Record<number, number> | null;
1107
1277
  }
1108
1278
  /**
1109
1279
  * Contextual segment
1110
1280
  */
1111
1281
  interface ContextualSegment {
1112
- id: string;
1113
- name: string;
1282
+ id: number;
1283
+ label: string;
1114
1284
  description: string | null;
1115
- category: string | null;
1116
- parent_id: string | null;
1117
- has_children: boolean;
1285
+ taxonomy: string | null;
1286
+ provider?: string | null;
1287
+ allowed_countries?: string[] | null;
1288
+ size?: number | null;
1118
1289
  }
1119
1290
  /**
1120
1291
  * Campaign property enums response
@@ -1167,26 +1338,24 @@ interface ImageTaxonomy {
1167
1338
  * Publisher information
1168
1339
  */
1169
1340
  interface Publisher {
1170
- site: string;
1171
- site_id: string;
1172
- is_blocked: boolean;
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;
1173
1349
  }
1174
1350
  /**
1175
1351
  * Response for listing publishers
1176
1352
  */
1177
1353
  type PublisherListResponse = ListResponse<Publisher>;
1178
- /**
1179
- * Blocked publisher at account level
1180
- */
1181
- interface BlockedPublisher {
1182
- site: string;
1183
- site_id: string;
1184
- }
1185
1354
  /**
1186
1355
  * Response for blocked publishers
1187
1356
  */
1188
1357
  interface BlockedPublishersResponse {
1189
- results: BlockedPublisher[];
1358
+ sites: string[];
1190
1359
  }
1191
1360
  /**
1192
1361
  * Request to update blocked publishers at account level
@@ -1201,107 +1370,93 @@ interface UpdateBlockedPublishersRequest {
1201
1370
  * Types for Taboola Backstage API campaign targeting including
1202
1371
  * postal codes, audience segments, and contextual targeting.
1203
1372
  */
1204
-
1205
1373
  /**
1206
- * Postal code targeting configuration
1374
+ * Generic targeting restriction with include/exclude
1207
1375
  */
1208
- interface PostalCodeTargeting {
1209
- type: 'INCLUDE' | 'EXCLUDE' | 'ALL';
1210
- values: PostalCodeValue[];
1211
- restrictions: PostalCodeRestrictions | null;
1376
+ interface TargetingRestriction<T> {
1377
+ collection: T[];
1378
+ type: 'INCLUDE' | 'EXCLUDE';
1212
1379
  }
1213
1380
  /**
1214
- * Individual postal code value
1381
+ * Lookalike audience item for targeting
1215
1382
  */
1216
- interface PostalCodeValue {
1217
- postal_code: string;
1218
- country: string;
1383
+ interface LookalikeAudienceItem {
1384
+ rule_id: number;
1385
+ similarity_level: number;
1219
1386
  }
1220
1387
  /**
1221
- * Postal code targeting restrictions
1388
+ * Postal code targeting configuration
1222
1389
  */
1223
- interface PostalCodeRestrictions {
1224
- max_postal_codes: number;
1225
- supported_countries: string[];
1390
+ interface PostalCodeTargeting {
1391
+ type: 'INCLUDE' | 'EXCLUDE' | 'ALL';
1392
+ collection: string[];
1226
1393
  }
1227
1394
  /**
1228
1395
  * Request to update postal code targeting
1229
1396
  */
1230
1397
  interface UpdatePostalCodeTargetingRequest {
1231
1398
  type: 'INCLUDE' | 'EXCLUDE' | 'ALL';
1232
- values: PostalCodeValue[];
1233
- }
1234
- /**
1235
- * Audience segment for targeting
1236
- */
1237
- interface AudienceSegment {
1238
- id: string;
1239
- name: string | null;
1399
+ collection: string[];
1240
1400
  }
1241
1401
  /**
1242
- * Audience targeting configuration (marketplace, custom, lookalike)
1402
+ * Audience targeting configuration (marketplace, custom)
1243
1403
  */
1244
1404
  interface AudienceTargeting {
1245
- collection: AudienceSegment[];
1246
- type: MultiTargetingState;
1405
+ collection: TargetingRestriction<number>[];
1247
1406
  }
1248
1407
  /**
1249
1408
  * Request to update audience targeting
1250
1409
  */
1251
1410
  interface UpdateAudienceTargetingRequest {
1252
- type: MultiTargetingState;
1253
- collection?: AudienceSegment[] | undefined;
1254
- and_collection?: AudienceSegment[][] | undefined;
1255
- or_collection?: AudienceSegment[][] | undefined;
1256
- }
1257
- /**
1258
- * Contextual segment for targeting
1259
- */
1260
- interface ContextualSegmentValue {
1261
- id: string;
1262
- name: string | null;
1411
+ collection: TargetingRestriction<number>[];
1263
1412
  }
1264
1413
  /**
1265
1414
  * Contextual targeting configuration
1266
1415
  */
1267
1416
  interface ContextualTargeting {
1268
- type: MultiTargetingState;
1269
- collection: ContextualSegmentValue[];
1417
+ collection: TargetingRestriction<number>[];
1270
1418
  }
1271
1419
  /**
1272
1420
  * Request to update contextual targeting
1273
1421
  */
1274
1422
  interface UpdateContextualTargetingRequest {
1275
- type: MultiTargetingState;
1276
- collection: ContextualSegmentValue[];
1423
+ collection: TargetingRestriction<number>[];
1277
1424
  }
1278
1425
  /**
1279
1426
  * First party audience targeting
1280
1427
  */
1281
1428
  interface FirstPartyAudienceTargeting {
1282
- type: MultiTargetingState;
1283
- collection: AudienceSegment[];
1429
+ collection: TargetingRestriction<number>[];
1284
1430
  }
1285
1431
  /**
1286
1432
  * Request to update first party audience targeting
1287
1433
  */
1288
1434
  interface UpdateFirstPartyAudienceTargetingRequest {
1289
- type: MultiTargetingState;
1290
- collection: AudienceSegment[];
1435
+ collection: TargetingRestriction<number>[];
1291
1436
  }
1292
1437
  /**
1293
1438
  * Marking labels (pixel retargeting) targeting configuration
1294
1439
  */
1295
1440
  interface MarkingLabelsTargeting {
1296
- type: MultiTargetingState;
1297
- collection: string[];
1441
+ collection: TargetingRestriction<string>[];
1298
1442
  }
1299
1443
  /**
1300
1444
  * Request to update marking labels targeting
1301
1445
  */
1302
1446
  interface UpdateMarkingLabelsTargetingRequest {
1303
- type: MultiTargetingState;
1304
- collection: string[];
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>[];
1305
1460
  }
1306
1461
 
1307
1462
  /**
@@ -1315,11 +1470,14 @@ interface UpdateMarkingLabelsTargetingRequest {
1315
1470
  */
1316
1471
  interface CombinedAudience {
1317
1472
  id: string;
1318
- name: string;
1473
+ display_name: string;
1319
1474
  description: string | null;
1320
1475
  status: CombinedAudienceStatus;
1321
1476
  created_at: string;
1322
- updated_at: string;
1477
+ last_modified_at: string;
1478
+ last_modified_by?: string;
1479
+ advertiser_id?: string;
1480
+ audience_size?: number | null;
1323
1481
  include_rules: CombinedAudienceRule[];
1324
1482
  exclude_rules: CombinedAudienceRule[];
1325
1483
  }
@@ -1337,7 +1495,7 @@ interface CombinedAudienceRule {
1337
1495
  /**
1338
1496
  * Type of audience in a combined audience rule
1339
1497
  */
1340
- type CombinedAudienceType = 'CUSTOM_AUDIENCE' | 'LOOKALIKE_AUDIENCE' | 'MARKETPLACE_AUDIENCE' | 'FIRST_PARTY_AUDIENCE';
1498
+ type CombinedAudienceType = 'Custom' | 'Lookalike' | 'Third_Party' | 'First_Party';
1341
1499
  /**
1342
1500
  * Individual audience item in a rule
1343
1501
  */
@@ -1353,7 +1511,7 @@ type CombinedAudienceListResponse = ListResponse<CombinedAudience>;
1353
1511
  * Request to create a combined audience
1354
1512
  */
1355
1513
  interface CreateCombinedAudienceRequest {
1356
- name: string;
1514
+ display_name: string;
1357
1515
  description?: string | undefined;
1358
1516
  include_rules: CombinedAudienceRule[];
1359
1517
  exclude_rules?: CombinedAudienceRule[] | undefined;
@@ -1362,7 +1520,7 @@ interface CreateCombinedAudienceRequest {
1362
1520
  * Request to update a combined audience
1363
1521
  */
1364
1522
  interface UpdateCombinedAudienceRequest {
1365
- name?: string | undefined;
1523
+ display_name?: string | undefined;
1366
1524
  description?: string | undefined;
1367
1525
  include_rules?: CombinedAudienceRule[] | undefined;
1368
1526
  exclude_rules?: CombinedAudienceRule[] | undefined;
@@ -1371,11 +1529,14 @@ interface UpdateCombinedAudienceRequest {
1371
1529
  * Available audience for combined audience creation
1372
1530
  */
1373
1531
  interface AvailableAudience {
1374
- id: string;
1375
- name: string;
1376
- type: CombinedAudienceType;
1532
+ id: number;
1533
+ audience_name: string;
1534
+ data_type: CombinedAudienceType;
1377
1535
  size: number | null;
1378
1536
  status: string;
1537
+ provider?: string;
1538
+ description?: string | null;
1539
+ is_archived?: boolean;
1379
1540
  }
1380
1541
  /**
1381
1542
  * Response for listing available audiences
@@ -1386,15 +1547,22 @@ type AvailableAudiencesResponse = ListResponse<AvailableAudience>;
1386
1547
  */
1387
1548
  interface FirstPartyAudience {
1388
1549
  id: string;
1389
- name: string;
1550
+ display_name: string;
1390
1551
  description: string | null;
1391
1552
  status: FirstPartyAudienceStatus;
1392
- size: number | null;
1553
+ audience_size: number | null;
1393
1554
  match_rate: number | null;
1394
1555
  created_at: string;
1395
- updated_at: string;
1396
- ttl_days: number | null;
1556
+ last_modified_at: string;
1557
+ last_modified_by?: string;
1558
+ ttl_in_hours: number | null;
1559
+ ttl_type?: string;
1397
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;
1398
1566
  }
1399
1567
  /**
1400
1568
  * First party audience status
@@ -1408,44 +1576,32 @@ type FirstPartyAudienceSourceType = 'CRM' | 'EMAIL' | 'PHONE' | 'DEVICE_ID' | 'C
1408
1576
  * Request to create a first party audience
1409
1577
  */
1410
1578
  interface CreateFirstPartyAudienceRequest {
1411
- name: string;
1579
+ display_name: string;
1412
1580
  description?: string | undefined;
1413
- ttl_days?: number | undefined;
1581
+ ttl_in_hours?: number | undefined;
1414
1582
  source_type: FirstPartyAudienceSourceType;
1415
1583
  }
1416
1584
  /**
1417
- * User identifier for first party audience
1585
+ * User identity item within a cluster
1418
1586
  */
1419
- interface FirstPartyAudienceUser {
1420
- identifier_type: FirstPartyIdentifierType;
1421
- identifier_value: string;
1422
- }
1423
- /**
1424
- * Type of user identifier
1425
- */
1426
- type FirstPartyIdentifierType = 'EMAIL' | 'EMAIL_SHA256' | 'PHONE' | 'PHONE_SHA256' | 'DEVICE_ID' | 'DEVICE_ID_SHA256';
1427
- /**
1428
- * Request to add or remove users from first party audience
1429
- */
1430
- interface AddRemoveUsersRequest {
1431
- add?: FirstPartyAudienceUser[] | undefined;
1432
- remove?: FirstPartyAudienceUser[] | undefined;
1587
+ interface AudienceUserClusterItem {
1588
+ user_id: string;
1589
+ type: string;
1590
+ is_hashed: boolean;
1433
1591
  }
1434
1592
  /**
1435
- * Response for add/remove users operation
1593
+ * User identity cluster
1436
1594
  */
1437
- interface AddRemoveUsersResponse {
1438
- added_count: number;
1439
- removed_count: number;
1440
- failed_count: number;
1441
- errors: AddRemoveUserError[];
1595
+ interface AudienceUserIdentity {
1596
+ cluster: AudienceUserClusterItem[];
1442
1597
  }
1443
1598
  /**
1444
- * Error from add/remove users operation
1599
+ * Request to add or remove users from first party audience
1445
1600
  */
1446
- interface AddRemoveUserError {
1447
- identifier: string;
1448
- error: string;
1601
+ interface AudienceUsersRequest {
1602
+ operation: 'ADD' | 'REMOVE';
1603
+ audience_id: number;
1604
+ identities: AudienceUserIdentity[];
1449
1605
  }
1450
1606
 
1451
1607
  /**
@@ -1459,74 +1615,62 @@ interface AddRemoveUserError {
1459
1615
  * Conversion rule for tracking conversions
1460
1616
  */
1461
1617
  interface ConversionRule {
1462
- id: string;
1618
+ id: number;
1463
1619
  display_name: string;
1464
- status: ConversionRuleStatus;
1620
+ advertiser_id: string;
1465
1621
  type: ConversionRuleType;
1466
- include_in_total_conversions: boolean;
1467
- include_in_total_value: boolean;
1468
- category: ConversionCategory | null;
1469
- conversion_window_days: number;
1470
- view_through_window_days: number;
1471
- counting_method: CountingMethod;
1472
- aggregation_type: AggregationType;
1473
- default_conversion_value: number | null;
1474
- conditions: Condition[];
1475
- effect: Effect;
1622
+ status: ConversionRuleStatus;
1476
1623
  event_name: string | null;
1477
- created_at: string;
1478
- updated_at: string;
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;
1479
1634
  }
1480
1635
  /**
1481
1636
  * Conversion rule status
1482
1637
  */
1483
- type ConversionRuleStatus = 'ACTIVE' | 'ARCHIVED';
1638
+ type ConversionRuleStatus = 'ACTIVE' | 'DISABLED' | 'ARCHIVED';
1484
1639
  /**
1485
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
1486
1644
  */
1487
- type ConversionRuleType = 'EVENT_BASED' | 'URL_BASED' | 'CUSTOM';
1645
+ type ConversionRuleType = 'BASIC' | 'EVENT_BASED';
1488
1646
  /**
1489
1647
  * Conversion category
1490
1648
  */
1491
- type ConversionCategory = 'PURCHASE' | 'LEAD' | 'SIGN_UP' | 'ADD_TO_CART' | 'CHECKOUT' | 'CONTENT_VIEW' | 'SEARCH' | 'ADD_PAYMENT_INFO' | 'SUBSCRIBE' | 'PAGE_VIEW' | 'COMPLETE_REGISTRATION' | 'OTHER';
1492
- /**
1493
- * Counting method for conversions
1494
- */
1495
- type CountingMethod = 'ALL' | 'ONE';
1496
- /**
1497
- * Aggregation type for conversion values
1498
- */
1499
- 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';
1500
1650
  /**
1501
- * 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.
1502
1656
  */
1503
- interface Condition {
1504
- type: ConditionType;
1505
- operator: ConditionOperator;
1506
- value: string;
1507
- parameter?: string | undefined;
1657
+ interface ConversionCondition {
1658
+ property: string | null;
1659
+ predicate: ConversionConditionPredicate;
1660
+ value: string | null;
1661
+ children: ConversionCondition[];
1508
1662
  }
1509
1663
  /**
1510
- * Condition type
1664
+ * Condition predicate
1511
1665
  */
1512
- type ConditionType = 'URL' | 'URL_PARAMETER' | 'EVENT_NAME' | 'EVENT_PARAMETER';
1513
- /**
1514
- * Condition operator
1515
- */
1516
- type ConditionOperator = 'EQUALS' | 'NOT_EQUALS' | 'CONTAINS' | 'NOT_CONTAINS' | 'STARTS_WITH' | 'ENDS_WITH' | 'REGEX';
1666
+ type ConversionConditionPredicate = 'CONTAINS' | 'EQUALS' | 'OR';
1517
1667
  /**
1518
1668
  * Effect of matching a conversion rule
1519
1669
  */
1520
- interface Effect {
1521
- type: EffectType;
1522
- value: number | null;
1523
- currency: string | null;
1524
- value_parameter: string | null;
1670
+ interface ConversionEffect {
1671
+ type: string;
1672
+ data: string;
1525
1673
  }
1526
- /**
1527
- * Effect type
1528
- */
1529
- type EffectType = 'FIXED_VALUE' | 'DYNAMIC_VALUE' | 'NO_VALUE';
1530
1674
  /**
1531
1675
  * Response for listing conversion rules
1532
1676
  */
@@ -1537,34 +1681,32 @@ type ConversionRuleListResponse = ListResponse<ConversionRule>;
1537
1681
  interface CreateConversionRuleRequest {
1538
1682
  display_name: string;
1539
1683
  type: ConversionRuleType;
1540
- include_in_total_conversions?: boolean | undefined;
1541
- include_in_total_value?: boolean | undefined;
1542
- category?: ConversionCategory | undefined;
1543
- conversion_window_days?: number | undefined;
1544
- view_through_window_days?: number | undefined;
1545
- counting_method?: CountingMethod | undefined;
1546
- aggregation_type?: AggregationType | undefined;
1547
- default_conversion_value?: number | undefined;
1548
- conditions: Condition[];
1549
- effect: Effect;
1550
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;
1551
1693
  }
1552
1694
  /**
1553
1695
  * Request to update a conversion rule
1696
+ *
1697
+ * Note: type and advertiser_id are final and cannot be changed after creation.
1554
1698
  */
1555
1699
  interface UpdateConversionRuleRequest {
1556
1700
  display_name?: string | undefined;
1557
1701
  status?: ConversionRuleStatus | undefined;
1558
- include_in_total_conversions?: boolean | undefined;
1559
- include_in_total_value?: boolean | undefined;
1560
1702
  category?: ConversionCategory | undefined;
1561
- conversion_window_days?: number | undefined;
1562
- view_through_window_days?: number | undefined;
1563
- counting_method?: CountingMethod | undefined;
1564
- aggregation_type?: AggregationType | undefined;
1565
- default_conversion_value?: number | undefined;
1566
- conditions?: Condition[] | undefined;
1567
- effect?: Effect | undefined;
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;
1568
1710
  }
1569
1711
  /**
1570
1712
  * Custom audience rule for building audiences from pixel data
@@ -1573,7 +1715,7 @@ interface CustomAudienceRule {
1573
1715
  id: string;
1574
1716
  display_name: string;
1575
1717
  status: CustomAudienceRuleStatus;
1576
- conditions: Condition[];
1718
+ conditions: CustomAudienceCondition[];
1577
1719
  ttl_days: number;
1578
1720
  size: number | null;
1579
1721
  created_at: string;
@@ -1583,6 +1725,23 @@ interface CustomAudienceRule {
1583
1725
  * Custom audience rule status
1584
1726
  */
1585
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';
1586
1745
  /**
1587
1746
  * Response for listing custom audience rules
1588
1747
  */
@@ -1592,7 +1751,7 @@ type CustomAudienceRuleListResponse = ListResponse<CustomAudienceRule>;
1592
1751
  */
1593
1752
  interface CreateCustomAudienceRuleRequest {
1594
1753
  display_name: string;
1595
- conditions: Condition[];
1754
+ conditions: CustomAudienceCondition[];
1596
1755
  ttl_days?: number | undefined;
1597
1756
  }
1598
1757
  /**
@@ -1601,16 +1760,19 @@ interface CreateCustomAudienceRuleRequest {
1601
1760
  interface UpdateCustomAudienceRuleRequest {
1602
1761
  display_name?: string | undefined;
1603
1762
  status?: CustomAudienceRuleStatus | undefined;
1604
- conditions?: Condition[] | undefined;
1763
+ conditions?: CustomAudienceCondition[] | undefined;
1605
1764
  ttl_days?: number | undefined;
1606
1765
  }
1607
1766
  /**
1608
- * Conversion rule with additional performance data
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.
1609
1771
  */
1610
- interface ConversionRuleWithData extends ConversionRule {
1611
- conversions_30d: number;
1612
- conversions_value_30d: number;
1613
- last_conversion_at: string | null;
1772
+ interface ConversionRuleWithData {
1773
+ last_received: string | null;
1774
+ total_received: number;
1775
+ unip_conversion_rule: ConversionRule;
1614
1776
  }
1615
1777
  /**
1616
1778
  * Response for listing conversion rules with data
@@ -1904,6 +2066,10 @@ interface CampaignSummaryRow {
1904
2066
  conversions_value: number;
1905
2067
  /** Return on ad spend */
1906
2068
  roas: number;
2069
+ /** ROAS from clicks */
2070
+ roas_clicks?: number | undefined;
2071
+ /** ROAS from views */
2072
+ roas_views?: number | undefined;
1907
2073
  /** Cost per action (all) */
1908
2074
  cpa: number;
1909
2075
  /** CPA from clicks */
@@ -1928,6 +2094,16 @@ interface CampaignSummaryRow {
1928
2094
  audience_name?: string | undefined;
1929
2095
  /** Data partner audience ID (for user_segment_breakdown dimension) */
1930
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;
1931
2107
  /** Custom conversion columns (dynamic based on include_conversions) */
1932
2108
  [key: string]: unknown;
1933
2109
  }
@@ -1959,6 +2135,16 @@ interface TopCampaignContentRow {
1959
2135
  /** Content provider (publisher) */
1960
2136
  content_provider?: string | undefined;
1961
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;
1962
2148
  /** Metrics */
1963
2149
  clicks: number;
1964
2150
  impressions: number;
@@ -1977,8 +2163,6 @@ interface TopCampaignContentRow {
1977
2163
  conversions_value: number;
1978
2164
  roas: number;
1979
2165
  cpa: number;
1980
- cpa_actions_num: number;
1981
- cpa_conversion_rate: number;
1982
2166
  /** Custom conversion columns */
1983
2167
  [key: string]: unknown;
1984
2168
  }
@@ -1999,22 +2183,24 @@ interface RealtimeCampaignReport {
1999
2183
  * Fields present depend on the chosen dimension.
2000
2184
  */
2001
2185
  interface RealtimeCampaignRow {
2002
- /** Hour (for by_hour dimensions) */
2003
- hour?: string | undefined;
2186
+ /** Date/time bucket */
2187
+ date?: string | undefined;
2004
2188
  /** Campaign ID (for by_campaign dimensions) */
2005
- campaign?: string | undefined;
2189
+ campaign_id?: string | undefined;
2006
2190
  campaign_name?: string | undefined;
2007
2191
  /** Site name (for by_site dimensions) */
2008
- site?: string | undefined;
2192
+ site_name?: string | undefined;
2009
2193
  site_id?: string | undefined;
2010
2194
  /** Country code (for by_country dimensions) */
2011
2195
  country?: string | undefined;
2196
+ /** Country name */
2197
+ country_name?: string | undefined;
2012
2198
  /** Platform (for by_platform dimensions) */
2013
2199
  platform?: string | undefined;
2200
+ /** Platform name */
2201
+ platform_name?: string | undefined;
2014
2202
  /** Number of clicks */
2015
2203
  clicks: number;
2016
- /** Number of impressions */
2017
- impressions: number;
2018
2204
  /** Number of visible impressions */
2019
2205
  visible_impressions: number;
2020
2206
  /** Total spend */
@@ -2037,6 +2223,10 @@ interface RealtimeCampaignRow {
2037
2223
  cpa_conversion_rate: number;
2038
2224
  /** Cost per action */
2039
2225
  cpa: number;
2226
+ /** Total conversion value */
2227
+ conversions_value?: number | undefined;
2228
+ /** Return on ad spend */
2229
+ roas?: number | undefined;
2040
2230
  /** Dynamic fields (e.g. from fetch_config) */
2041
2231
  [key: string]: unknown;
2042
2232
  }
@@ -2056,17 +2246,23 @@ interface RealtimeAdsReport {
2056
2246
  */
2057
2247
  interface RealtimeAdsRow {
2058
2248
  /** Item (ad) ID */
2059
- item: string;
2249
+ item_id: string;
2060
2250
  item_name: string;
2061
2251
  /** Thumbnail URL */
2062
2252
  thumbnail_url: string;
2063
2253
  /** Campaign ID */
2064
- campaign: string;
2254
+ campaign_id: string;
2065
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;
2066
2264
  /** Number of clicks */
2067
2265
  clicks: number;
2068
- /** Number of impressions */
2069
- impressions: number;
2070
2266
  /** Number of visible impressions */
2071
2267
  visible_impressions: number;
2072
2268
  /** Total spend */
@@ -2089,6 +2285,10 @@ interface RealtimeAdsRow {
2089
2285
  cpa_conversion_rate: number;
2090
2286
  /** Cost per action */
2091
2287
  cpa: number;
2288
+ /** Total conversion value */
2289
+ conversions_value?: number | undefined;
2290
+ /** Return on ad spend */
2291
+ roas?: number | undefined;
2092
2292
  /** Dynamic fields */
2093
2293
  [key: string]: unknown;
2094
2294
  }
@@ -2111,7 +2311,7 @@ interface ReportField {
2111
2311
  /**
2112
2312
  * Report data type
2113
2313
  */
2114
- type ReportDataType = 'DATE' | 'STRING' | 'NUMERIC' | 'CURRENCY' | 'PERCENTAGE';
2314
+ type ReportDataType = 'STRING' | 'FLOAT' | 'MONEY' | 'PERCENT' | 'NUMERIC' | 'DATA' | 'DATE' | 'TIMESTAMP' | 'URL' | 'BOOLEAN';
2115
2315
 
2116
2316
  /**
2117
2317
  * Account API for Taboola Backstage
@@ -2205,217 +2405,69 @@ declare class CampaignsAPI {
2205
2405
  constructor(http: HttpClient);
2206
2406
  /**
2207
2407
  * List all campaigns for an account
2208
- *
2209
- * @param accountId - Account ID
2210
- * @param options - Pagination and filter options
2211
- *
2212
- * @example
2213
- * ```typescript
2214
- * const { results } = await client.campaigns.list('my-account');
2215
- * for (const campaign of results) {
2216
- * console.log(campaign.name, campaign.status);
2217
- * }
2218
- * ```
2219
2408
  */
2220
2409
  list(accountId: string, options?: ListCampaignsOptions): Promise<CampaignListResponse>;
2221
2410
  /**
2222
2411
  * List all campaigns with base (partial) fields only
2223
- *
2224
- * Returns a lighter-weight response with fewer fields per campaign.
2225
- * Useful for listing/overview pages where full campaign data is not needed.
2226
- *
2227
- * @param accountId - Account ID
2228
- *
2229
- * @example
2230
- * ```typescript
2231
- * const { results } = await client.campaigns.listBase('my-account');
2232
- * for (const campaign of results) {
2233
- * console.log(campaign.name, campaign.status);
2234
- * }
2235
- * ```
2236
2412
  */
2237
2413
  listBase(accountId: string): Promise<CampaignBaseListResponse>;
2238
2414
  /**
2239
2415
  * Get a single campaign by ID
2240
- *
2241
- * @param accountId - Account ID
2242
- * @param campaignId - Campaign ID
2243
- *
2244
- * @example
2245
- * ```typescript
2246
- * const campaign = await client.campaigns.get('my-account', '12345');
2247
- * console.log(campaign.name, campaign.cpc);
2248
- * ```
2249
2416
  */
2250
2417
  get(accountId: string, campaignId: string): Promise<Campaign>;
2251
2418
  /**
2252
2419
  * Create a new campaign
2253
- *
2254
- * @param accountId - Account ID
2255
- * @param campaign - Campaign data
2256
- *
2257
- * @example
2258
- * ```typescript
2259
- * const campaign = await client.campaigns.create('my-account', {
2260
- * name: 'My New Campaign',
2261
- * branding_text: 'My Brand',
2262
- * cpc: 0.50,
2263
- * spending_limit: 1000,
2264
- * spending_limit_model: 'MONTHLY',
2265
- * marketing_objective: 'DRIVE_WEBSITE_TRAFFIC',
2266
- * });
2267
- * console.log('Created campaign:', campaign.id);
2268
- * ```
2269
2420
  */
2270
2421
  create(accountId: string, campaign: CreateCampaignRequest): Promise<Campaign>;
2271
2422
  /**
2272
2423
  * Update an existing campaign
2273
- *
2274
- * @param accountId - Account ID
2275
- * @param campaignId - Campaign ID
2276
- * @param updates - Fields to update
2277
- *
2278
- * @example
2279
- * ```typescript
2280
- * const campaign = await client.campaigns.update('my-account', '12345', {
2281
- * cpc: 0.75,
2282
- * daily_cap: 500,
2283
- * });
2284
- * ```
2285
2424
  */
2286
2425
  update(accountId: string, campaignId: string, updates: UpdateCampaignRequest): Promise<Campaign>;
2287
2426
  /**
2288
2427
  * Delete a campaign
2289
- *
2290
- * @param accountId - Account ID
2291
- * @param campaignId - Campaign ID
2292
- *
2293
- * @example
2294
- * ```typescript
2295
- * await client.campaigns.delete('my-account', '12345');
2296
- * ```
2297
2428
  */
2298
2429
  delete(accountId: string, campaignId: string): Promise<void>;
2299
2430
  /**
2300
2431
  * Duplicate a campaign
2301
2432
  *
2302
- * Creates a copy of an existing campaign with a new name.
2303
- *
2304
2433
  * @param accountId - Account ID
2305
2434
  * @param campaignId - Campaign ID to duplicate
2306
- * @param newName - Name for the new campaign
2307
- *
2308
- * @example
2309
- * ```typescript
2310
- * const newCampaign = await client.campaigns.duplicate(
2311
- * 'my-account',
2312
- * '12345',
2313
- * 'My Campaign - Copy'
2314
- * );
2315
- * ```
2435
+ * @param request - Duplication request with optional name and settings
2436
+ * @param destinationAccount - Optional destination account ID for cross-account duplication
2316
2437
  */
2317
- duplicate(accountId: string, campaignId: string, newName: string): Promise<Campaign>;
2438
+ duplicate(accountId: string, campaignId: string, request: DuplicateCampaignRequest, destinationAccount?: string): Promise<Campaign>;
2318
2439
  /**
2319
2440
  * Pause a campaign
2320
- *
2321
- * @param accountId - Account ID
2322
- * @param campaignId - Campaign ID
2323
- *
2324
- * @example
2325
- * ```typescript
2326
- * await client.campaigns.pause('my-account', '12345');
2327
- * ```
2328
2441
  */
2329
2442
  pause(accountId: string, campaignId: string): Promise<Campaign>;
2330
2443
  /**
2331
2444
  * Unpause (resume) a campaign
2332
- *
2333
- * @param accountId - Account ID
2334
- * @param campaignId - Campaign ID
2335
- *
2336
- * @example
2337
- * ```typescript
2338
- * await client.campaigns.unpause('my-account', '12345');
2339
- * ```
2340
2445
  */
2341
2446
  unpause(accountId: string, campaignId: string): Promise<Campaign>;
2342
2447
  /**
2343
2448
  * Bulk update multiple campaigns
2344
- *
2345
- * @param accountId - Account ID
2346
- * @param updates - Array of campaign updates
2347
- *
2348
- * @example
2349
- * ```typescript
2350
- * await client.campaigns.bulkUpdate('my-account', {
2351
- * campaigns: [
2352
- * { campaign_id: '12345', update: { is_active: false } },
2353
- * { campaign_id: '12346', update: { is_active: false } },
2354
- * ],
2355
- * });
2356
- * ```
2357
2449
  */
2358
2450
  bulkUpdate(accountId: string, updates: BulkCampaignUpdateRequest): Promise<CampaignListResponse>;
2359
2451
  /**
2360
- * Patch a campaign collection (targeting, bid modifiers, etc.)
2452
+ * Patch a campaign
2361
2453
  *
2362
2454
  * @param accountId - Account ID
2363
2455
  * @param campaignId - Campaign ID
2364
- * @param collection - Collection name (e.g., 'publisher_targeting')
2365
- * @param patches - Patch operations
2366
- *
2367
- * @example
2368
- * ```typescript
2369
- * await client.campaigns.patch('my-account', '12345', 'publisher_targeting', [
2370
- * { op: 'ADD', path: '/value', value: ['pub-123'] },
2371
- * ]);
2372
- * ```
2456
+ * @param patch - Patch operation
2373
2457
  */
2374
- patch(accountId: string, campaignId: string, collection: string, patches: CampaignPatchRequest[]): Promise<Campaign>;
2458
+ patch(accountId: string, campaignId: string, patch: CampaignPatchRequest): Promise<Campaign>;
2375
2459
  /**
2376
2460
  * Get all campaigns across a network
2377
2461
  *
2378
2462
  * @param networkAccountId - Network account ID
2379
- *
2380
- * @example
2381
- * ```typescript
2382
- * const { results } = await client.campaigns.listNetwork('my-network');
2383
- * ```
2384
2463
  */
2385
- listNetwork(networkAccountId: string): Promise<CampaignListResponse>;
2464
+ listNetwork(networkAccountId: string): Promise<CampaignBaseListResponse>;
2386
2465
  /**
2387
2466
  * Estimate campaign reach
2388
- *
2389
- * Get estimated impressions, clicks, and reach for a campaign configuration.
2390
- *
2391
- * @param accountId - Account ID
2392
- * @param params - Targeting and budget parameters
2393
- *
2394
- * @example
2395
- * ```typescript
2396
- * const estimate = await client.campaigns.estimateReach('my-account', {
2397
- * country_targeting: ['US'],
2398
- * platform_targeting: ['DESK', 'PHON'],
2399
- * daily_cap: 100,
2400
- * cpc: 0.50,
2401
- * });
2402
- * console.log('Estimated clicks:', estimate.estimated_clicks);
2403
- * ```
2404
2467
  */
2405
2468
  estimateReach(accountId: string, params: CampaignReachEstimatorRequest): Promise<CampaignReachEstimatorResponse>;
2406
2469
  /**
2407
2470
  * Get publisher targeting whitelist for a campaign
2408
- *
2409
- * Returns the list of publishers that are whitelisted for this campaign.
2410
- *
2411
- * @param accountId - Account ID
2412
- * @param campaignId - Campaign ID
2413
- *
2414
- * @example
2415
- * ```typescript
2416
- * const whitelist = await client.campaigns.getTargetingWhitelist('my-account', '12345');
2417
- * console.log('Whitelisted publishers:', whitelist.value);
2418
- * ```
2419
2471
  */
2420
2472
  getTargetingWhitelist(accountId: string, campaignId: string): Promise<CampaignTargetingCollection>;
2421
2473
  }
@@ -2474,40 +2526,68 @@ declare class ItemsAPI {
2474
2526
  */
2475
2527
  get(accountId: string, campaignId: string, itemId: string): Promise<CampaignItem>;
2476
2528
  /**
2477
- * 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.
2478
2537
  *
2479
2538
  * @param accountId - Account ID
2480
2539
  * @param campaignId - Campaign ID
2481
- * @param item - Item data
2540
+ * @param item - Item data (only `url` is accepted)
2482
2541
  *
2483
2542
  * @example
2484
2543
  * ```typescript
2485
2544
  * const item = await client.items.create('my-account', '12345', {
2486
2545
  * url: 'https://example.com/landing-page',
2487
- * title: 'Check Out Our Amazing Product!',
2488
- * thumbnail_url: 'https://example.com/image.jpg',
2489
- * description: 'Learn more about our product',
2490
- * cta: { cta_type: 'LEARN_MORE' },
2491
2546
  * });
2492
- * console.log('Created item:', item.id);
2547
+ * // Item starts in CRAWLING state - poll until status changes
2548
+ * console.log('Created item:', item.id, item.status); // CRAWLING
2493
2549
  * ```
2494
2550
  */
2495
2551
  create(accountId: string, campaignId: string, item: CreateItemRequest): Promise<CampaignItem>;
2496
2552
  /**
2497
- * Update an existing item
2553
+ * Update an existing item (static or motion ad)
2554
+ *
2555
+ * Submit only the fields you want to update. Fields that are omitted or null
2556
+ * will remain unchanged. The endpoint automatically detects the item type.
2557
+ *
2558
+ * Note: While status is CRAWLING, the Item is in a read-only state - no fields can be modified.
2498
2559
  *
2499
2560
  * @param accountId - Account ID
2500
2561
  * @param campaignId - Campaign ID
2501
2562
  * @param itemId - Item ID
2502
- * @param updates - Fields to update
2563
+ * @param updates - Fields to update (partial)
2503
2564
  *
2504
- * @example
2565
+ * @example Update a static item
2505
2566
  * ```typescript
2506
2567
  * const item = await client.items.update('my-account', '12345', '67890', {
2507
2568
  * title: 'Updated Title!',
2508
2569
  * is_active: true,
2509
2570
  * });
2510
2571
  * ```
2572
+ *
2573
+ * @example Update a motion ad
2574
+ * ```typescript
2575
+ * const item = await client.items.update('my-account', '12345', '67890', {
2576
+ * title: 'Updated Motion Ad Title',
2577
+ * description: 'New description',
2578
+ * performance_video_data: {
2579
+ * video_url: 'https://example.com/video.mp4',
2580
+ * fallback_url: 'https://example.com/fallback.jpg',
2581
+ * },
2582
+ * });
2583
+ * ```
2584
+ *
2585
+ * @example Pause an item (alternatively, use pause() method)
2586
+ * ```typescript
2587
+ * const item = await client.items.update('my-account', '12345', '67890', {
2588
+ * is_active: false,
2589
+ * });
2590
+ * ```
2511
2591
  */
2512
2592
  update(accountId: string, campaignId: string, itemId: string, updates: UpdateItemRequest): Promise<CampaignItem>;
2513
2593
  /**
@@ -2550,11 +2630,13 @@ declare class ItemsAPI {
2550
2630
  */
2551
2631
  unpause(accountId: string, campaignId: string, itemId: string): Promise<CampaignItem>;
2552
2632
  /**
2553
- * 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.
2554
2636
  *
2555
2637
  * @param accountId - Account ID
2556
2638
  * @param campaignId - Campaign ID
2557
- * @param items - Array of items to create
2639
+ * @param request - Bulk create request with items array
2558
2640
  *
2559
2641
  * @example
2560
2642
  * ```typescript
@@ -2571,18 +2653,35 @@ declare class ItemsAPI {
2571
2653
  /**
2572
2654
  * Bulk create items across multiple campaigns
2573
2655
  *
2656
+ * Unified endpoint that supports both static ads and motion ads.
2657
+ *
2574
2658
  * @param accountId - Account ID
2575
2659
  * @param items - Array of items with campaign IDs
2576
2660
  *
2577
- * @example
2661
+ * @example Static ads
2662
+ * ```typescript
2663
+ * await client.items.bulkCreateAcrossCampaigns('my-account', [
2664
+ * { campaign_id: '12345', url: 'https://example.com/1', title: 'Title 1' },
2665
+ * { campaign_id: '12346', url: 'https://example.com/2', title: 'Title 2' },
2666
+ * ]);
2667
+ * ```
2668
+ *
2669
+ * @example Motion ads
2578
2670
  * ```typescript
2579
2671
  * await client.items.bulkCreateAcrossCampaigns('my-account', [
2580
- * { campaign_id: '12345', url: '...', title: '...' },
2581
- * { campaign_id: '12346', url: '...', title: '...' },
2672
+ * {
2673
+ * campaign_id: '12345',
2674
+ * url: 'https://example.com/1',
2675
+ * title: 'Motion Ad',
2676
+ * performance_video_data: {
2677
+ * video_url: 'https://example.com/video.mp4',
2678
+ * fallback_url: 'https://example.com/fallback.jpg',
2679
+ * },
2680
+ * },
2582
2681
  * ]);
2583
2682
  * ```
2584
2683
  */
2585
- bulkCreateAcrossCampaigns(accountId: string, items: (CreateItemRequest & {
2684
+ bulkCreateAcrossCampaigns(accountId: string, items: (BulkCreateItemData & {
2586
2685
  campaign_id: string;
2587
2686
  })[]): Promise<BulkCreateItemsResponse>;
2588
2687
  /**
@@ -2673,22 +2772,14 @@ declare class DictionaryAPI {
2673
2772
  getCountries(): Promise<Country[]>;
2674
2773
  /**
2675
2774
  * Get regions/states within a country
2676
- *
2677
- * @param countryCode - Country code (e.g., 'US', 'GB')
2678
2775
  */
2679
2776
  getRegions(countryCode: string): Promise<Region[]>;
2680
2777
  /**
2681
2778
  * Get DMAs (Designated Market Areas) for a country
2682
- * Note: Only available for US
2683
- *
2684
- * @param countryCode - Country code (typically 'US')
2685
2779
  */
2686
2780
  getDMAs(countryCode: string): Promise<DMA[]>;
2687
2781
  /**
2688
2782
  * Get postal codes for a country
2689
- *
2690
- * @param countryCode - Country code (e.g., 'US', 'GB')
2691
- * @param params - Optional search and pagination parameters
2692
2783
  */
2693
2784
  getPostalCodes(countryCode: string, params?: PostalCodeSearchParams): Promise<PostalCode[]>;
2694
2785
  /**
@@ -2745,40 +2836,26 @@ declare class DictionaryAPI {
2745
2836
  getImageLibraryLanguages(): Promise<ImageLibraryLanguage[]>;
2746
2837
  /**
2747
2838
  * Get image taxonomies for categorizing images
2748
- *
2749
- * @param accountId - Account ID
2750
2839
  */
2751
2840
  getImageTaxonomies(accountId: string): Promise<ImageTaxonomy[]>;
2752
2841
  /**
2753
2842
  * Get marketplace audience segments available for targeting
2754
- *
2755
- * @param accountId - Account ID
2756
2843
  */
2757
2844
  getMarketplaceAudiences(accountId: string): Promise<MarketplaceAudience[]>;
2758
2845
  /**
2759
2846
  * Get marketplace audience segments for a specific country
2760
- *
2761
- * @param accountId - Account ID
2762
- * @param countryCode - Country code (e.g., 'US', 'GB')
2763
2847
  */
2764
2848
  getMarketplaceAudiencesByCountry(accountId: string, countryCode: string): Promise<MarketplaceAudience[]>;
2765
2849
  /**
2766
2850
  * Get lookalike audiences available for targeting
2767
- *
2768
- * @param accountId - Account ID
2769
2851
  */
2770
2852
  getLookalikeAudiences(accountId: string): Promise<LookalikeAudience[]>;
2771
2853
  /**
2772
2854
  * Get lookalike audiences for a specific country
2773
- *
2774
- * @param accountId - Account ID
2775
- * @param countryCode - Country code (e.g., 'US', 'GB')
2776
2855
  */
2777
2856
  getLookalikeAudiencesByCountry(accountId: string, countryCode: string): Promise<LookalikeAudience[]>;
2778
2857
  /**
2779
2858
  * Get contextual segments available for targeting
2780
- *
2781
- * @param accountId - Account ID
2782
2859
  */
2783
2860
  getContextualSegments(accountId: string): Promise<ContextualSegment[]>;
2784
2861
  }
@@ -2799,84 +2876,31 @@ declare class PublishersAPI {
2799
2876
  constructor(http: HttpClient);
2800
2877
  /**
2801
2878
  * List all available publishers for an account
2802
- *
2803
- * @param accountId - Account ID
2804
- * @returns List of publishers with blocking status
2805
- *
2806
- * @example
2807
- * ```typescript
2808
- * const publishers = await client.publishers.list('my-account');
2809
- * console.log(`Found ${publishers.length} publishers`);
2810
- * ```
2811
2879
  */
2812
2880
  list(accountId: string): Promise<Publisher[]>;
2813
2881
  /**
2814
2882
  * Get blocked publishers at the account level
2815
- *
2816
- * @param accountId - Account ID
2817
- * @returns List of blocked publishers
2818
- *
2819
- * @example
2820
- * ```typescript
2821
- * const blocked = await client.publishers.getBlocked('my-account');
2822
- * console.log(`${blocked.length} publishers blocked at account level`);
2823
- * ```
2824
2883
  */
2825
- getBlocked(accountId: string): Promise<BlockedPublisher[]>;
2884
+ getBlocked(accountId: string): Promise<string[]>;
2826
2885
  /**
2827
2886
  * Update blocked publishers at the account level
2828
2887
  *
2829
2888
  * This replaces the current list of blocked publishers with the
2830
- * provided list. To add to existing blocks, first get the current
2831
- * list and append.
2832
- *
2833
- * @param accountId - Account ID
2834
- * @param sites - Array of site names to block
2835
- * @returns Updated list of blocked publishers
2836
- *
2837
- * @example
2838
- * ```typescript
2839
- * // Block specific publishers
2840
- * await client.publishers.updateBlocked('my-account', {
2841
- * sites: ['site1.com', 'site2.com']
2842
- * });
2843
- *
2844
- * // Add to existing blocks
2845
- * const current = await client.publishers.getBlocked('my-account');
2846
- * const currentSites = current.map(p => p.site);
2847
- * await client.publishers.updateBlocked('my-account', {
2848
- * sites: [...currentSites, 'newsite.com']
2849
- * });
2850
- * ```
2889
+ * provided list.
2851
2890
  */
2852
- updateBlocked(accountId: string, request: UpdateBlockedPublishersRequest): Promise<BlockedPublisher[]>;
2891
+ updateBlocked(accountId: string, request: UpdateBlockedPublishersRequest): Promise<string[]>;
2853
2892
  /**
2854
2893
  * Block a single publisher at the account level
2855
- *
2856
- * Convenience method that adds a publisher to the existing block list.
2857
- *
2858
- * @param accountId - Account ID
2859
- * @param site - Site name to block
2860
- * @returns Updated list of blocked publishers
2861
2894
  */
2862
- blockPublisher(accountId: string, site: string): Promise<BlockedPublisher[]>;
2895
+ blockPublisher(accountId: string, site: string): Promise<string[]>;
2863
2896
  /**
2864
2897
  * Unblock a single publisher at the account level
2865
- *
2866
- * Convenience method that removes a publisher from the block list.
2867
- *
2868
- * @param accountId - Account ID
2869
- * @param site - Site name to unblock
2870
- * @returns Updated list of blocked publishers
2871
2898
  */
2872
- unblockPublisher(accountId: string, site: string): Promise<BlockedPublisher[]>;
2899
+ unblockPublisher(accountId: string, site: string): Promise<string[]>;
2873
2900
  /**
2874
2901
  * Clear all blocked publishers at the account level
2875
- *
2876
- * @param accountId - Account ID
2877
- * @returns Empty list
2878
2902
  */
2879
- clearBlocked(accountId: string): Promise<BlockedPublisher[]>;
2903
+ clearBlocked(accountId: string): Promise<string[]>;
2880
2904
  }
2881
2905
 
2882
2906
  /**
@@ -2895,192 +2919,58 @@ declare class TargetingAPI {
2895
2919
  constructor(http: HttpClient);
2896
2920
  /**
2897
2921
  * Get postal code targeting for a campaign
2898
- *
2899
- * @param accountId - Account ID
2900
- * @param campaignId - Campaign ID
2901
- * @returns Postal code targeting configuration
2902
- *
2903
- * @example
2904
- * ```typescript
2905
- * const targeting = await client.targeting.getPostalCodes('my-account', '12345');
2906
- * console.log(`Targeting type: ${targeting.type}`);
2907
- * console.log(`Postal codes: ${targeting.values.length}`);
2908
- * ```
2909
2922
  */
2910
2923
  getPostalCodes(accountId: string, campaignId: string): Promise<PostalCodeTargeting>;
2911
2924
  /**
2912
2925
  * Update postal code targeting for a campaign
2913
- *
2914
- * @param accountId - Account ID
2915
- * @param campaignId - Campaign ID
2916
- * @param targeting - Postal code targeting configuration
2917
- * @returns Updated targeting configuration
2918
- *
2919
- * @example
2920
- * ```typescript
2921
- * await client.targeting.updatePostalCodes('my-account', '12345', {
2922
- * type: 'INCLUDE',
2923
- * values: [
2924
- * { postal_code: '10001', country: 'US' },
2925
- * { postal_code: '10002', country: 'US' },
2926
- * ]
2927
- * });
2928
- * ```
2929
2926
  */
2930
2927
  updatePostalCodes(accountId: string, campaignId: string, targeting: UpdatePostalCodeTargetingRequest): Promise<PostalCodeTargeting>;
2931
2928
  /**
2932
2929
  * Get marketplace audience targeting for a campaign
2933
- *
2934
- * Marketplace audiences are third-party audience segments
2935
- * available for targeting through Taboola's marketplace.
2936
- *
2937
- * @param accountId - Account ID
2938
- * @param campaignId - Campaign ID
2939
- * @returns Audience targeting configuration
2940
2930
  */
2941
2931
  getMarketplaceAudiences(accountId: string, campaignId: string): Promise<AudienceTargeting>;
2942
2932
  /**
2943
2933
  * Update marketplace audience targeting for a campaign
2944
- *
2945
- * @param accountId - Account ID
2946
- * @param campaignId - Campaign ID
2947
- * @param targeting - Audience targeting configuration
2948
- * @returns Updated targeting configuration
2949
- *
2950
- * @example
2951
- * ```typescript
2952
- * await client.targeting.updateMarketplaceAudiences('my-account', '12345', {
2953
- * type: 'INCLUDE',
2954
- * collection: [
2955
- * { id: 'segment-1', name: null },
2956
- * { id: 'segment-2', name: null },
2957
- * ]
2958
- * });
2959
- * ```
2960
2934
  */
2961
2935
  updateMarketplaceAudiences(accountId: string, campaignId: string, targeting: UpdateAudienceTargetingRequest): Promise<AudienceTargeting>;
2962
2936
  /**
2963
2937
  * Get custom audience targeting for a campaign
2964
- *
2965
- * Custom audiences are audiences created from pixel data
2966
- * or uploaded lists.
2967
- *
2968
- * @param accountId - Account ID
2969
- * @param campaignId - Campaign ID
2970
- * @returns Audience targeting configuration
2971
2938
  */
2972
2939
  getCustomAudiences(accountId: string, campaignId: string): Promise<AudienceTargeting>;
2973
2940
  /**
2974
2941
  * Update custom audience targeting for a campaign
2975
- *
2976
- * @param accountId - Account ID
2977
- * @param campaignId - Campaign ID
2978
- * @param targeting - Audience targeting configuration
2979
- * @returns Updated targeting configuration
2980
2942
  */
2981
2943
  updateCustomAudiences(accountId: string, campaignId: string, targeting: UpdateAudienceTargetingRequest): Promise<AudienceTargeting>;
2982
2944
  /**
2983
2945
  * Get lookalike audience targeting for a campaign
2984
- *
2985
- * Lookalike audiences are modeled after your existing
2986
- * custom audiences to find similar users.
2987
- *
2988
- * @param accountId - Account ID
2989
- * @param campaignId - Campaign ID
2990
- * @returns Audience targeting configuration
2991
2946
  */
2992
- getLookalikeAudiences(accountId: string, campaignId: string): Promise<AudienceTargeting>;
2947
+ getLookalikeAudiences(accountId: string, campaignId: string): Promise<LookalikeAudienceTargeting>;
2993
2948
  /**
2994
2949
  * Update lookalike audience targeting for a campaign
2995
- *
2996
- * @param accountId - Account ID
2997
- * @param campaignId - Campaign ID
2998
- * @param targeting - Audience targeting configuration
2999
- * @returns Updated targeting configuration
3000
2950
  */
3001
- updateLookalikeAudiences(accountId: string, campaignId: string, targeting: UpdateAudienceTargetingRequest): Promise<AudienceTargeting>;
2951
+ updateLookalikeAudiences(accountId: string, campaignId: string, targeting: UpdateLookalikeAudienceTargetingRequest): Promise<LookalikeAudienceTargeting>;
3002
2952
  /**
3003
2953
  * Get contextual targeting for a campaign
3004
- *
3005
- * Contextual targeting allows you to target based on the
3006
- * content of the pages where your ads appear.
3007
- *
3008
- * @param accountId - Account ID
3009
- * @param campaignId - Campaign ID
3010
- * @returns Contextual targeting configuration
3011
2954
  */
3012
2955
  getContextual(accountId: string, campaignId: string): Promise<ContextualTargeting>;
3013
2956
  /**
3014
2957
  * Update contextual targeting for a campaign
3015
- *
3016
- * @param accountId - Account ID
3017
- * @param campaignId - Campaign ID
3018
- * @param targeting - Contextual targeting configuration
3019
- * @returns Updated targeting configuration
3020
- *
3021
- * @example
3022
- * ```typescript
3023
- * await client.targeting.updateContextual('my-account', '12345', {
3024
- * type: 'INCLUDE',
3025
- * collection: [
3026
- * { id: 'context-1', name: null },
3027
- * { id: 'context-2', name: null },
3028
- * ]
3029
- * });
3030
- * ```
3031
2958
  */
3032
2959
  updateContextual(accountId: string, campaignId: string, targeting: UpdateContextualTargetingRequest): Promise<ContextualTargeting>;
3033
2960
  /**
3034
2961
  * Get first party audience targeting for a campaign
3035
- *
3036
- * First party audiences are your own uploaded audience data.
3037
- *
3038
- * @param accountId - Account ID
3039
- * @param campaignId - Campaign ID
3040
- * @returns First party audience targeting configuration
3041
2962
  */
3042
2963
  getFirstPartyAudiences(accountId: string, campaignId: string): Promise<FirstPartyAudienceTargeting>;
3043
2964
  /**
3044
2965
  * Update first party audience targeting for a campaign
3045
- *
3046
- * @param accountId - Account ID
3047
- * @param campaignId - Campaign ID
3048
- * @param targeting - First party audience targeting configuration
3049
- * @returns Updated targeting configuration
3050
2966
  */
3051
2967
  updateFirstPartyAudiences(accountId: string, campaignId: string, targeting: UpdateFirstPartyAudienceTargetingRequest): Promise<FirstPartyAudienceTargeting>;
3052
2968
  /**
3053
2969
  * Get marking labels (pixel retargeting) targeting for a campaign
3054
- *
3055
- * Marking labels allow you to target users based on pixel-tracked
3056
- * behavior using custom labels.
3057
- *
3058
- * @param accountId - Account ID
3059
- * @param campaignId - Campaign ID
3060
- * @returns Marking labels targeting configuration
3061
- *
3062
- * @example
3063
- * ```typescript
3064
- * const targeting = await client.targeting.getMarkingLabels('my-account', '12345');
3065
- * console.log('Labels:', targeting.collection);
3066
- * ```
3067
2970
  */
3068
2971
  getMarkingLabels(accountId: string, campaignId: string): Promise<MarkingLabelsTargeting>;
3069
2972
  /**
3070
2973
  * Update marking labels targeting for a campaign
3071
- *
3072
- * @param accountId - Account ID
3073
- * @param campaignId - Campaign ID
3074
- * @param targeting - Marking labels targeting configuration
3075
- * @returns Updated targeting configuration
3076
- *
3077
- * @example
3078
- * ```typescript
3079
- * await client.targeting.updateMarkingLabels('my-account', '12345', {
3080
- * type: 'EXISTS',
3081
- * collection: ['label-1', 'label-2'],
3082
- * });
3083
- * ```
3084
2974
  */
3085
2975
  updateMarkingLabels(accountId: string, campaignId: string, targeting: UpdateMarkingLabelsTargetingRequest): Promise<MarkingLabelsTargeting>;
3086
2976
  }
@@ -3100,82 +2990,22 @@ declare class CombinedAudiencesAPI {
3100
2990
  constructor(http: HttpClient);
3101
2991
  /**
3102
2992
  * List available audiences for combining
3103
- *
3104
- * Returns all audiences that can be used in combined audience rules,
3105
- * including custom, lookalike, marketplace, and first-party audiences.
3106
- *
3107
- * @param accountId - Account ID
3108
- * @returns List of available audiences
3109
- *
3110
- * @example
3111
- * ```typescript
3112
- * const available = await client.combinedAudiences.listAvailable('my-account');
3113
- * console.log(`${available.length} audiences available for combining`);
3114
- * ```
3115
2993
  */
3116
2994
  listAvailable(accountId: string): Promise<AvailableAudience[]>;
3117
2995
  /**
3118
2996
  * List all combined audiences
3119
- *
3120
- * @param accountId - Account ID
3121
- * @returns List of combined audiences
3122
- *
3123
- * @example
3124
- * ```typescript
3125
- * const audiences = await client.combinedAudiences.list('my-account');
3126
- * for (const audience of audiences) {
3127
- * console.log(`${audience.name}: ${audience.status}`);
3128
- * }
3129
- * ```
3130
2997
  */
3131
2998
  list(accountId: string): Promise<CombinedAudience[]>;
3132
2999
  /**
3133
3000
  * Get a single combined audience
3134
- *
3135
- * @param accountId - Account ID
3136
- * @param audienceId - Combined audience ID
3137
- * @returns Combined audience details
3138
3001
  */
3139
3002
  get(accountId: string, audienceId: string): Promise<CombinedAudience>;
3140
3003
  /**
3141
3004
  * Create a combined audience
3142
- *
3143
- * @param accountId - Account ID
3144
- * @param audience - Combined audience configuration
3145
- * @returns Created combined audience
3146
- *
3147
- * @example
3148
- * ```typescript
3149
- * const audience = await client.combinedAudiences.create('my-account', {
3150
- * name: 'High-Value Engaged Users',
3151
- * description: 'Users who are both high-value and engaged',
3152
- * include_rules: [
3153
- * {
3154
- * audience_type: 'CUSTOM_AUDIENCE',
3155
- * audiences: [{ id: 'custom-1', name: null }]
3156
- * },
3157
- * {
3158
- * audience_type: 'LOOKALIKE_AUDIENCE',
3159
- * audiences: [{ id: 'lookalike-1', name: null }]
3160
- * }
3161
- * ],
3162
- * exclude_rules: [
3163
- * {
3164
- * audience_type: 'CUSTOM_AUDIENCE',
3165
- * audiences: [{ id: 'converters', name: null }]
3166
- * }
3167
- * ]
3168
- * });
3169
- * ```
3170
3005
  */
3171
3006
  create(accountId: string, audience: CreateCombinedAudienceRequest): Promise<CombinedAudience>;
3172
3007
  /**
3173
3008
  * Update a combined audience
3174
- *
3175
- * @param accountId - Account ID
3176
- * @param audienceId - Combined audience ID
3177
- * @param updates - Fields to update
3178
- * @returns Updated combined audience
3179
3009
  */
3180
3010
  update(accountId: string, audienceId: string, updates: UpdateCombinedAudienceRequest): Promise<CombinedAudience>;
3181
3011
  }
@@ -3195,98 +3025,20 @@ declare class FirstPartyAudiencesAPI {
3195
3025
  constructor(http: HttpClient);
3196
3026
  /**
3197
3027
  * List all first party audiences
3198
- *
3199
- * @param accountId - Account ID
3200
- * @returns List of first party audiences
3201
- *
3202
- * @example
3203
- * ```typescript
3204
- * const audiences = await client.firstPartyAudiences.list('my-account');
3205
- * for (const audience of audiences) {
3206
- * console.log(`${audience.name}: ${audience.status} (${audience.size} users)`);
3207
- * }
3208
- * ```
3209
3028
  */
3210
3029
  list(accountId: string): Promise<FirstPartyAudience[]>;
3211
3030
  /**
3212
3031
  * Get a single first party audience
3213
- *
3214
- * @param accountId - Account ID
3215
- * @param audienceId - Audience ID
3216
- * @returns First party audience details
3217
3032
  */
3218
3033
  get(accountId: string, audienceId: string): Promise<FirstPartyAudience>;
3219
3034
  /**
3220
3035
  * Create a first party audience
3221
- *
3222
- * After creation, use addUsers() to populate the audience with identifiers.
3223
- *
3224
- * @param accountId - Account ID
3225
- * @param audience - Audience configuration
3226
- * @returns Created audience
3227
- *
3228
- * @example
3229
- * ```typescript
3230
- * const audience = await client.firstPartyAudiences.create('my-account', {
3231
- * name: 'High-Value Customers',
3232
- * description: 'Customers with LTV > $1000',
3233
- * source_type: 'CRM',
3234
- * ttl_days: 90
3235
- * });
3236
- *
3237
- * // Then add users
3238
- * await client.firstPartyAudiences.addUsers('my-account', audience.id, {
3239
- * add: [
3240
- * { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash1' },
3241
- * { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash2' },
3242
- * ]
3243
- * });
3244
- * ```
3245
3036
  */
3246
3037
  create(accountId: string, audience: CreateFirstPartyAudienceRequest): Promise<FirstPartyAudience>;
3247
3038
  /**
3248
3039
  * Add or remove users from a first party audience
3249
- *
3250
- * Users are identified by hashed identifiers (email, phone, device ID).
3251
- * It's recommended to use SHA256 hashed values for privacy.
3252
- *
3253
- * @param accountId - Account ID
3254
- * @param audienceId - Audience ID
3255
- * @param request - Add/remove request with user identifiers
3256
- * @returns Operation result with counts
3257
- *
3258
- * @example
3259
- * ```typescript
3260
- * // Add users
3261
- * const result = await client.firstPartyAudiences.addUsers('my-account', 'audience-1', {
3262
- * add: [
3263
- * { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash1' },
3264
- * { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash2' },
3265
- * ]
3266
- * });
3267
- * console.log(`Added ${result.added_count} users`);
3268
- *
3269
- * // Remove users
3270
- * const result2 = await client.firstPartyAudiences.addUsers('my-account', 'audience-1', {
3271
- * remove: [
3272
- * { identifier_type: 'EMAIL_SHA256', identifier_value: 'sha256hash3' },
3273
- * ]
3274
- * });
3275
- * console.log(`Removed ${result2.removed_count} users`);
3276
- * ```
3277
3040
  */
3278
- addUsers(accountId: string, audienceId: string, request: AddRemoveUsersRequest): Promise<AddRemoveUsersResponse>;
3279
- /**
3280
- * Remove users from a first party audience
3281
- *
3282
- * Convenience method that wraps addUsers with only remove operations.
3283
- *
3284
- * @param accountId - Account ID
3285
- * @param audienceId - Audience ID
3286
- * @param request - Remove request with user identifiers
3287
- * @returns Operation result with counts
3288
- */
3289
- removeUsers(accountId: string, audienceId: string, request: Pick<AddRemoveUsersRequest, 'remove'>): Promise<AddRemoveUsersResponse>;
3041
+ manageUsers(accountId: string, request: AudienceUsersRequest): Promise<void>;
3290
3042
  }
3291
3043
 
3292
3044
  /**
@@ -3325,7 +3077,7 @@ declare class PixelAPI {
3325
3077
  * @param ruleId - Conversion rule ID
3326
3078
  * @returns Conversion rule details
3327
3079
  */
3328
- getConversionRule(accountId: string, ruleId: string): Promise<ConversionRule>;
3080
+ getConversionRule(accountId: string, ruleId: number): Promise<ConversionRule>;
3329
3081
  /**
3330
3082
  * List conversion rules with performance data
3331
3083
  *
@@ -3348,23 +3100,17 @@ declare class PixelAPI {
3348
3100
  * // URL-based conversion rule
3349
3101
  * const rule = await client.pixel.createConversionRule('my-account', {
3350
3102
  * display_name: 'Purchase Completed',
3351
- * type: 'URL_BASED',
3352
- * category: 'PURCHASE',
3353
- * conditions: [
3354
- * {
3355
- * type: 'URL',
3356
- * operator: 'CONTAINS',
3357
- * value: '/thank-you'
3358
- * }
3359
- * ],
3360
- * effect: {
3361
- * type: 'DYNAMIC_VALUE',
3362
- * value: null,
3363
- * currency: 'USD',
3364
- * value_parameter: 'order_total'
3103
+ * type: 'BASIC',
3104
+ * category: 'MAKE_PURCHASE',
3105
+ * condition: {
3106
+ * property: 'URL',
3107
+ * predicate: 'CONTAINS',
3108
+ * value: '/thank-you',
3109
+ * children: [],
3365
3110
  * },
3366
- * conversion_window_days: 30,
3367
- * view_through_window_days: 1
3111
+ * effects: [{ type: 'REVENUE', data: '15' }],
3112
+ * look_back_window: 30,
3113
+ * view_through_look_back_window: 1,
3368
3114
  * });
3369
3115
  *
3370
3116
  * // Event-based conversion rule
@@ -3373,13 +3119,7 @@ declare class PixelAPI {
3373
3119
  * type: 'EVENT_BASED',
3374
3120
  * category: 'ADD_TO_CART',
3375
3121
  * event_name: 'add_to_cart',
3376
- * conditions: [],
3377
- * effect: {
3378
- * type: 'FIXED_VALUE',
3379
- * value: 10,
3380
- * currency: 'USD',
3381
- * value_parameter: null
3382
- * }
3122
+ * effects: [{ type: 'REVENUE', data: '10' }],
3383
3123
  * });
3384
3124
  * ```
3385
3125
  */
@@ -3392,7 +3132,7 @@ declare class PixelAPI {
3392
3132
  * @param updates - Fields to update
3393
3133
  * @returns Updated conversion rule
3394
3134
  */
3395
- updateConversionRule(accountId: string, ruleId: string, updates: UpdateConversionRuleRequest): Promise<ConversionRule>;
3135
+ updateConversionRule(accountId: string, ruleId: number, updates: UpdateConversionRuleRequest): Promise<ConversionRule>;
3396
3136
  /**
3397
3137
  * Archive a conversion rule
3398
3138
  *
@@ -3403,7 +3143,7 @@ declare class PixelAPI {
3403
3143
  * @param ruleId - Conversion rule ID
3404
3144
  * @returns Archived conversion rule
3405
3145
  */
3406
- archiveConversionRule(accountId: string, ruleId: string): Promise<ConversionRule>;
3146
+ archiveConversionRule(accountId: string, ruleId: number): Promise<ConversionRule>;
3407
3147
  /**
3408
3148
  * Unarchive a conversion rule
3409
3149
  *
@@ -3413,7 +3153,7 @@ declare class PixelAPI {
3413
3153
  * @param ruleId - Conversion rule ID
3414
3154
  * @returns Reactivated conversion rule
3415
3155
  */
3416
- unarchiveConversionRule(accountId: string, ruleId: string): Promise<ConversionRule>;
3156
+ unarchiveConversionRule(accountId: string, ruleId: number): Promise<ConversionRule>;
3417
3157
  /**
3418
3158
  * List all custom audience rules
3419
3159
  *
@@ -3449,37 +3189,16 @@ declare class PixelAPI {
3449
3189
  *
3450
3190
  * @example
3451
3191
  * ```typescript
3452
- * // All visitors audience
3453
3192
  * const allVisitors = await client.pixel.createCustomAudienceRule('my-account', {
3454
3193
  * display_name: 'All Visitors - 30 Days',
3455
3194
  * conditions: [],
3456
- * ttl_days: 30
3195
+ * ttl_days: 30,
3457
3196
  * });
3458
3197
  *
3459
- * // Product page visitors
3460
3198
  * const productViewers = await client.pixel.createCustomAudienceRule('my-account', {
3461
3199
  * display_name: 'Product Page Viewers',
3462
- * conditions: [
3463
- * {
3464
- * type: 'URL',
3465
- * operator: 'CONTAINS',
3466
- * value: '/products/'
3467
- * }
3468
- * ],
3469
- * ttl_days: 14
3470
- * });
3471
- *
3472
- * // Cart abandoners
3473
- * const cartAbandoners = await client.pixel.createCustomAudienceRule('my-account', {
3474
- * display_name: 'Cart Abandoners',
3475
- * conditions: [
3476
- * {
3477
- * type: 'EVENT_NAME',
3478
- * operator: 'EQUALS',
3479
- * value: 'add_to_cart'
3480
- * }
3481
- * ],
3482
- * ttl_days: 7
3200
+ * conditions: [{ type: 'URL', operator: 'CONTAINS', value: '/products/' }],
3201
+ * ttl_days: 14,
3483
3202
  * });
3484
3203
  * ```
3485
3204
  */
@@ -3981,4 +3700,4 @@ declare class TaboolaServerError extends TaboolaError {
3981
3700
  */
3982
3701
  declare function parseApiError(statusCode: number, response: unknown, url: string): TaboolaError;
3983
3702
 
3984
- export { type Account, type AccountType, AccountsAPI, type ActivitySchedule, type ActivityScheduleRule, type AddRemoveUsersRequest, type AddRemoveUsersResponse, type AdvertiserAccount, type AllowedAccountsResponse, type ApprovalState, type AudienceSegment, type AudienceTargeting, type AvailableAudience, type AvailableAudiencesResponse, type BidStrategy, type BlockedPublisher, type BlockedPublishersResponse, type BrandSafetyProvider, type Browser, type BulkCampaignUpdate, 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 Condition, type ConditionOperator, type ConditionType, type ConnectionType, type ContextualSegment, type ContextualSegmentValue, type ContextualTargeting, 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 CustomAudienceRule, type CustomAudienceRuleListResponse, type CustomAudienceRuleStatus, DEFAULT_BASE_URL, type DMA, type DailyAdDeliveryModel, type DateString, type DayOfWeek, DictionaryAPI, type Effect, type EffectType, type ExternalBrandSafety, type FirstPartyAudience, type FirstPartyAudienceTargeting, type FirstPartyAudienceUser, 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 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 PostalCodeValue, 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 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 UpdateMarkingLabelsTargetingRequest, type UpdatePostalCodeTargetingRequest, type UpdateSharedBudgetRequest, type VerificationPixel, type ViewabilityTag, createClient, parseApiError };
3703
+ 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 };