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