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/README.md +15 -50
- package/dist/index.cjs +102 -672
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +443 -902
- package/dist/index.d.ts +443 -902
- package/dist/index.js +102 -672
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -149,23 +149,25 @@ type ItemStatus = 'RUNNING' | 'CRAWLING' | 'CRAWLING_ERROR' | 'NEED_TO_EDIT' | '
|
|
|
149
149
|
/**
|
|
150
150
|
* Pricing models
|
|
151
151
|
*/
|
|
152
|
-
type PricingModel = 'CPC' | 'CPM' | 'VCPM'
|
|
152
|
+
type PricingModel = 'CPC' | 'CPM' | 'VCPM';
|
|
153
153
|
/**
|
|
154
154
|
* Spending limit models
|
|
155
155
|
*/
|
|
156
156
|
type SpendingLimitModel = 'MONTHLY' | 'ENTIRE' | 'DAILY' | 'NONE';
|
|
157
157
|
/**
|
|
158
158
|
* Daily ad delivery models
|
|
159
|
+
*
|
|
160
|
+
* @remarks ACCELERATED is deprecated by Taboola
|
|
159
161
|
*/
|
|
160
162
|
type DailyAdDeliveryModel = 'ACCELERATED' | 'BALANCED' | 'STRICT';
|
|
161
163
|
/**
|
|
162
164
|
* Marketing objectives
|
|
163
165
|
*/
|
|
164
|
-
type MarketingObjective = 'DRIVE_WEBSITE_TRAFFIC' | 'BRAND_AWARENESS' | '
|
|
166
|
+
type MarketingObjective = 'DRIVE_WEBSITE_TRAFFIC' | 'BRAND_AWARENESS' | 'ONLINE_PURCHASES' | 'LEADS_GENERATION' | 'MOBILE_APP_INSTALL' | 'OTHER';
|
|
165
167
|
/**
|
|
166
168
|
* Bid strategies
|
|
167
169
|
*/
|
|
168
|
-
type BidStrategy = 'FIXED' | 'SMART' | 'TARGET_CPA' | 'MAX_CONVERSIONS'
|
|
170
|
+
type BidStrategy = 'FIXED' | 'SMART' | 'TARGET_CPA' | 'MAX_CONVERSIONS';
|
|
169
171
|
/**
|
|
170
172
|
* Traffic allocation modes
|
|
171
173
|
*/
|
|
@@ -197,13 +199,13 @@ type BrandSafetyProvider = 'IAS' | 'DV' | 'MOAT' | 'NONE';
|
|
|
197
199
|
/**
|
|
198
200
|
* Report dimension types
|
|
199
201
|
*/
|
|
200
|
-
type ReportDimension = 'day' | 'by_hour_of_day' | 'week' | 'month' | 'content_provider_breakdown' | 'campaign_breakdown' | '
|
|
202
|
+
type ReportDimension = 'day' | 'by_hour_of_day' | 'week' | 'month' | 'content_provider_breakdown' | 'campaign_breakdown' | 'campaign_hour_breakdown' | 'site_breakdown' | 'country_breakdown' | 'content_provider_country_breakdown' | 'region_breakdown' | 'dma_breakdown' | 'platform_breakdown' | 'campaign_day_breakdown' | 'campaign_site_day_breakdown' | 'user_segment_breakdown' | 'os_family_breakdown' | 'os_version_breakdown' | 'browser_breakdown' | 'contextual_breakdown';
|
|
201
203
|
/**
|
|
202
204
|
* Realtime Campaign Report dimension types
|
|
203
205
|
*
|
|
204
206
|
* @see https://developers.taboola.com/backstage-api/reference/realtime-campaign-report
|
|
205
207
|
*/
|
|
206
|
-
type RealtimeCampaignDimension = 'by_hour' | 'by_campaign' | 'by_site' | 'by_country' | 'by_platform' | 'by_campaign_by_hour' | 'by_campaign_by_site' | 'by_campaign_by_country' | 'by_campaign_by_platform' | 'by_campaign_by_country_by_platform' | 'by_platform_by_country';
|
|
208
|
+
type RealtimeCampaignDimension = 'by_hour' | 'by_campaign' | 'by_site' | 'by_country' | 'by_platform' | 'by_campaign_by_hour' | 'by_campaign_by_site' | 'by_campaign_by_country' | 'by_campaign_by_platform' | 'by_campaign_by_country_by_platform' | 'by_platform_by_country' | 'by_hour_by_smallest_time_bucket' | 'by_campaign_by_smallest_time_bucket' | 'by_site_by_smallest_time_bucket' | 'by_country_by_smallest_time_bucket' | 'by_platform_by_smallest_time_bucket';
|
|
207
209
|
/**
|
|
208
210
|
* Realtime Ads Report dimension types
|
|
209
211
|
*
|
|
@@ -286,6 +288,8 @@ interface Account {
|
|
|
286
288
|
campaign_types: CampaignType[];
|
|
287
289
|
/** Account currency */
|
|
288
290
|
currency: CurrencyCode;
|
|
291
|
+
/** Account time zone name */
|
|
292
|
+
time_zone_name?: string;
|
|
289
293
|
}
|
|
290
294
|
/**
|
|
291
295
|
* Advertiser account in network
|
|
@@ -305,19 +309,17 @@ interface AdvertiserAccount {
|
|
|
305
309
|
campaign_types: CampaignType[];
|
|
306
310
|
/** Account currency */
|
|
307
311
|
currency: CurrencyCode;
|
|
312
|
+
/** Account time zone name */
|
|
313
|
+
time_zone_name?: string;
|
|
308
314
|
}
|
|
309
315
|
/**
|
|
310
316
|
* Response for allowed accounts list
|
|
311
317
|
*/
|
|
312
|
-
|
|
313
|
-
results: Account[];
|
|
314
|
-
}
|
|
318
|
+
type AllowedAccountsResponse = ListResponse<Account>;
|
|
315
319
|
/**
|
|
316
320
|
* Response for network advertisers list
|
|
317
321
|
*/
|
|
318
|
-
|
|
319
|
-
results: AdvertiserAccount[];
|
|
320
|
-
}
|
|
322
|
+
type NetworkAdvertisersResponse = ListResponse<AdvertiserAccount>;
|
|
321
323
|
|
|
322
324
|
/**
|
|
323
325
|
* Campaign types for Taboola Backstage API
|
|
@@ -534,14 +536,16 @@ interface CreateCampaignRequest {
|
|
|
534
536
|
name: string;
|
|
535
537
|
/** Branding text (required) */
|
|
536
538
|
branding_text: string;
|
|
539
|
+
/** Marketing objective (required) */
|
|
540
|
+
marketing_objective: MarketingObjective;
|
|
541
|
+
/** Pricing model */
|
|
542
|
+
pricing_model?: PricingModel;
|
|
537
543
|
/** Cost per click */
|
|
538
544
|
cpc?: number;
|
|
539
545
|
/** Spending limit */
|
|
540
546
|
spending_limit?: number;
|
|
541
547
|
/** Spending limit model */
|
|
542
548
|
spending_limit_model?: SpendingLimitModel;
|
|
543
|
-
/** Marketing objective (required) */
|
|
544
|
-
marketing_objective: MarketingObjective;
|
|
545
549
|
/** Daily cap */
|
|
546
550
|
daily_cap?: number;
|
|
547
551
|
/** Daily ad delivery model */
|
|
@@ -552,51 +556,72 @@ interface CreateCampaignRequest {
|
|
|
552
556
|
cpa_goal?: number;
|
|
553
557
|
/** Country targeting */
|
|
554
558
|
country_targeting?: TargetingValue;
|
|
559
|
+
/** Sub-country (region) targeting */
|
|
560
|
+
sub_country_targeting?: TargetingValue;
|
|
561
|
+
/** DMA targeting (US only) */
|
|
562
|
+
dma_country_targeting?: TargetingValue;
|
|
563
|
+
/** Region targeting */
|
|
564
|
+
region_country_targeting?: TargetingValue;
|
|
565
|
+
/** City targeting */
|
|
566
|
+
city_targeting?: TargetingValue;
|
|
567
|
+
/** Postal code targeting */
|
|
568
|
+
postal_code_targeting?: TargetingValue;
|
|
569
|
+
/** Contextual targeting */
|
|
570
|
+
contextual_targeting?: TargetingValue;
|
|
555
571
|
/** Platform targeting */
|
|
556
572
|
platform_targeting?: TargetingValue;
|
|
573
|
+
/** Publisher targeting (blocking) */
|
|
574
|
+
publisher_targeting?: TargetingValue;
|
|
557
575
|
/** OS targeting */
|
|
558
576
|
os_targeting?: TargetingValue;
|
|
559
|
-
/**
|
|
577
|
+
/** Connection type targeting */
|
|
578
|
+
connection_type_targeting?: TargetingValue;
|
|
579
|
+
/** Browser targeting */
|
|
580
|
+
browser_targeting?: TargetingValue;
|
|
581
|
+
/** Auto publisher targeting */
|
|
582
|
+
auto_publisher_targeting?: TargetingValue;
|
|
583
|
+
/** Publisher bid modifiers */
|
|
584
|
+
publisher_bid_modifier?: PublisherBidModifierCollection;
|
|
585
|
+
/** Publisher bid strategy modifiers */
|
|
586
|
+
publisher_bid_strategy_modifiers?: PublisherBidStrategyModifierCollection;
|
|
587
|
+
/** Start date (defaults to 'now' if omitted) */
|
|
560
588
|
start_date?: DateString;
|
|
561
589
|
/** End date */
|
|
562
590
|
end_date?: DateString;
|
|
591
|
+
/** Whether campaign is active */
|
|
592
|
+
is_active?: boolean;
|
|
563
593
|
/** Tracking code */
|
|
564
594
|
tracking_code?: string;
|
|
565
595
|
/** Comments */
|
|
566
596
|
comments?: string;
|
|
567
597
|
/** Traffic allocation mode */
|
|
568
598
|
traffic_allocation_mode?: TrafficAllocationMode;
|
|
599
|
+
/** A/B test end date */
|
|
600
|
+
traffic_allocation_ab_test_end_date?: DateString | null;
|
|
601
|
+
/** External brand safety config */
|
|
602
|
+
external_brand_safety?: ExternalBrandSafety;
|
|
603
|
+
/** Marketplace audience targeting */
|
|
604
|
+
audience_segments_multi_targeting?: MultiTargeting;
|
|
605
|
+
/** Custom audience targeting */
|
|
606
|
+
custom_audience_targeting?: MultiTargeting;
|
|
607
|
+
/** Marking label targeting */
|
|
608
|
+
marking_label_multi_targeting?: MultiTargeting;
|
|
609
|
+
/** Lookalike audience targeting */
|
|
610
|
+
lookalike_audience_targeting?: MultiTargeting;
|
|
611
|
+
/** Contextual segments targeting */
|
|
612
|
+
contextual_segments_targeting?: MultiTargeting;
|
|
613
|
+
/** Verification pixel config */
|
|
614
|
+
verification_pixel?: VerificationPixel;
|
|
615
|
+
/** Viewability tag config */
|
|
616
|
+
viewability_tag?: ViewabilityTag;
|
|
617
|
+
/** Activity schedule */
|
|
618
|
+
activity_schedule?: ActivitySchedule;
|
|
569
619
|
}
|
|
570
620
|
/**
|
|
571
621
|
* Campaign update request
|
|
572
622
|
*
|
|
573
623
|
* Submit a JSON object with only the fields you want to update.
|
|
574
624
|
* Fields that are omitted or null will not be updated.
|
|
575
|
-
*
|
|
576
|
-
* @example Update a single field
|
|
577
|
-
* ```typescript
|
|
578
|
-
* await client.campaigns.update('account-id', 'campaign-id', {
|
|
579
|
-
* name: 'DemoCampaign - Edited'
|
|
580
|
-
* });
|
|
581
|
-
* ```
|
|
582
|
-
*
|
|
583
|
-
* @example Update multiple fields
|
|
584
|
-
* ```typescript
|
|
585
|
-
* await client.campaigns.update('account-id', 'campaign-id', {
|
|
586
|
-
* name: 'Demo Campaign - Edited Again',
|
|
587
|
-
* branding_text: 'New branding text',
|
|
588
|
-
* spending_limit: 10000,
|
|
589
|
-
* spending_limit_model: 'ENTIRE',
|
|
590
|
-
* country_targeting: {
|
|
591
|
-
* type: 'INCLUDE',
|
|
592
|
-
* value: ['AU', 'GB']
|
|
593
|
-
* },
|
|
594
|
-
* platform_targeting: {
|
|
595
|
-
* type: 'INCLUDE',
|
|
596
|
-
* value: ['TBLT', 'PHON']
|
|
597
|
-
* }
|
|
598
|
-
* });
|
|
599
|
-
* ```
|
|
600
625
|
*/
|
|
601
626
|
interface UpdateCampaignRequest {
|
|
602
627
|
/** Campaign name */
|
|
@@ -696,35 +721,29 @@ interface CampaignListResponse {
|
|
|
696
721
|
count: number;
|
|
697
722
|
};
|
|
698
723
|
}
|
|
699
|
-
/**
|
|
700
|
-
* Bulk campaign update request item
|
|
701
|
-
*/
|
|
702
|
-
interface BulkCampaignUpdate {
|
|
703
|
-
/** Campaign ID to update */
|
|
704
|
-
campaign_id: string;
|
|
705
|
-
/** Fields to update */
|
|
706
|
-
update: UpdateCampaignRequest;
|
|
707
|
-
}
|
|
708
724
|
/**
|
|
709
725
|
* Bulk campaign update request
|
|
710
726
|
*/
|
|
711
727
|
interface BulkCampaignUpdateRequest {
|
|
712
|
-
|
|
728
|
+
/** Campaign IDs to update */
|
|
729
|
+
campaigns: number[];
|
|
730
|
+
/** Order IDs to update (alternative to campaign IDs) */
|
|
731
|
+
order_ids?: string[];
|
|
732
|
+
/** Fields to update on all specified campaigns */
|
|
733
|
+
update: UpdateCampaignRequest;
|
|
713
734
|
}
|
|
714
735
|
/**
|
|
715
736
|
* Campaign patch operation
|
|
716
737
|
*/
|
|
717
738
|
type PatchOperation = 'ADD' | 'REMOVE' | 'REPLACE';
|
|
718
739
|
/**
|
|
719
|
-
* Campaign patch request
|
|
740
|
+
* Campaign patch request
|
|
720
741
|
*/
|
|
721
742
|
interface CampaignPatchRequest {
|
|
722
|
-
/**
|
|
723
|
-
|
|
724
|
-
/**
|
|
725
|
-
|
|
726
|
-
/** Value to set */
|
|
727
|
-
value: unknown;
|
|
743
|
+
/** Patch operation type */
|
|
744
|
+
patch_operation: PatchOperation;
|
|
745
|
+
/** Additional fields for the patch */
|
|
746
|
+
[key: string]: unknown;
|
|
728
747
|
}
|
|
729
748
|
/**
|
|
730
749
|
* Campaign reach estimation request
|
|
@@ -801,6 +820,24 @@ interface CampaignTargetingCollection {
|
|
|
801
820
|
value: string[];
|
|
802
821
|
href?: string | null;
|
|
803
822
|
}
|
|
823
|
+
/**
|
|
824
|
+
* Settings for campaign duplication
|
|
825
|
+
*/
|
|
826
|
+
interface DuplicateSettings {
|
|
827
|
+
/** Whether to copy items from the source campaign */
|
|
828
|
+
copy_items?: boolean;
|
|
829
|
+
/** Whether to copy targeting from the source campaign */
|
|
830
|
+
copy_targeting?: boolean;
|
|
831
|
+
}
|
|
832
|
+
/**
|
|
833
|
+
* Campaign duplication request
|
|
834
|
+
*/
|
|
835
|
+
interface DuplicateCampaignRequest {
|
|
836
|
+
/** Name for the duplicated campaign */
|
|
837
|
+
name?: string;
|
|
838
|
+
/** Duplication settings */
|
|
839
|
+
duplicate_settings?: DuplicateSettings;
|
|
840
|
+
}
|
|
804
841
|
|
|
805
842
|
/**
|
|
806
843
|
* Campaign Item (Ad) types for Taboola Backstage API
|
|
@@ -920,16 +957,33 @@ interface CampaignItem {
|
|
|
920
957
|
logo?: Record<string, unknown>;
|
|
921
958
|
/** Disclaimer text */
|
|
922
959
|
disclaimer?: string;
|
|
960
|
+
/** Creative type */
|
|
961
|
+
creative_type?: string;
|
|
962
|
+
/** Image orientation */
|
|
963
|
+
orientation?: string;
|
|
964
|
+
/** Performance video data (motion ads) */
|
|
965
|
+
performance_video_data?: PerformanceVideoData;
|
|
966
|
+
/** Item start date */
|
|
967
|
+
start_date?: string;
|
|
968
|
+
/** Item end date */
|
|
969
|
+
end_date?: string;
|
|
923
970
|
}
|
|
924
971
|
/**
|
|
925
|
-
* Create campaign item request
|
|
972
|
+
* Create campaign item request (static ads only)
|
|
926
973
|
*/
|
|
927
974
|
interface CreateItemRequest {
|
|
928
975
|
/** Landing page URL (required) */
|
|
929
976
|
url: string;
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
977
|
+
}
|
|
978
|
+
/**
|
|
979
|
+
* Item data for bulk creation endpoints
|
|
980
|
+
*/
|
|
981
|
+
interface BulkCreateItemData {
|
|
982
|
+
/** Landing page URL (required) */
|
|
983
|
+
url: string;
|
|
984
|
+
/** Ad title/headline */
|
|
985
|
+
title?: string;
|
|
986
|
+
/** Thumbnail image URL (static ads) */
|
|
933
987
|
thumbnail_url?: string;
|
|
934
988
|
/** Ad description */
|
|
935
989
|
description?: string;
|
|
@@ -941,6 +995,16 @@ interface CreateItemRequest {
|
|
|
941
995
|
third_party_tags?: string[];
|
|
942
996
|
/** RSS feed URL (creates RSS item) */
|
|
943
997
|
rss_url?: string;
|
|
998
|
+
/** Performance video data (motion ads only) */
|
|
999
|
+
performance_video_data?: PerformanceVideoData;
|
|
1000
|
+
/** Whether the item is active */
|
|
1001
|
+
is_active?: boolean;
|
|
1002
|
+
/** Creative crop configuration */
|
|
1003
|
+
creative_crop?: Record<string, unknown>;
|
|
1004
|
+
/** Verification pixel */
|
|
1005
|
+
verification_pixel?: ItemVerificationPixel;
|
|
1006
|
+
/** Viewability tag */
|
|
1007
|
+
viewability_tag?: ItemViewabilityTag;
|
|
944
1008
|
}
|
|
945
1009
|
/**
|
|
946
1010
|
* Performance video data for motion ads
|
|
@@ -950,33 +1014,11 @@ interface PerformanceVideoData {
|
|
|
950
1014
|
video_url: string;
|
|
951
1015
|
/** URL to the fallback image (JPG/PNG format) */
|
|
952
1016
|
fallback_url: string;
|
|
1017
|
+
/** URL to the GIF preview */
|
|
1018
|
+
gif_url?: string;
|
|
953
1019
|
}
|
|
954
1020
|
/**
|
|
955
1021
|
* Update campaign item request
|
|
956
|
-
*
|
|
957
|
-
* Submit only the fields you want to update. Fields that are omitted or null
|
|
958
|
-
* will remain unchanged.
|
|
959
|
-
*
|
|
960
|
-
* Note: While status is CRAWLING, the Item is in a read-only state - no fields can be modified.
|
|
961
|
-
*
|
|
962
|
-
* @example Update a static item
|
|
963
|
-
* ```typescript
|
|
964
|
-
* await client.items.update('account-id', 'campaign-id', 'item-id', {
|
|
965
|
-
* title: 'Updated Title',
|
|
966
|
-
* is_active: true,
|
|
967
|
-
* });
|
|
968
|
-
* ```
|
|
969
|
-
*
|
|
970
|
-
* @example Update a motion ad
|
|
971
|
-
* ```typescript
|
|
972
|
-
* await client.items.update('account-id', 'campaign-id', 'item-id', {
|
|
973
|
-
* title: 'Updated Motion Ad',
|
|
974
|
-
* performance_video_data: {
|
|
975
|
-
* video_url: 'https://example.com/video.mp4',
|
|
976
|
-
* fallback_url: 'https://example.com/fallback.jpg',
|
|
977
|
-
* },
|
|
978
|
-
* });
|
|
979
|
-
* ```
|
|
980
1022
|
*/
|
|
981
1023
|
interface UpdateItemRequest {
|
|
982
1024
|
/** Ad title */
|
|
@@ -1004,10 +1046,7 @@ interface UpdateItemRequest {
|
|
|
1004
1046
|
custom_data?: string;
|
|
1005
1047
|
/** Third-party tracking pixels */
|
|
1006
1048
|
third_party_tags?: string[];
|
|
1007
|
-
/**
|
|
1008
|
-
* Performance video data (motion ads only)
|
|
1009
|
-
* Contains video_url (MP4) and fallback_url (JPG/PNG)
|
|
1010
|
-
*/
|
|
1049
|
+
/** Performance video data (motion ads only) */
|
|
1011
1050
|
performance_video_data?: PerformanceVideoData;
|
|
1012
1051
|
}
|
|
1013
1052
|
/**
|
|
@@ -1021,10 +1060,10 @@ interface CampaignItemListResponse {
|
|
|
1021
1060
|
};
|
|
1022
1061
|
}
|
|
1023
1062
|
/**
|
|
1024
|
-
* Bulk item creation request
|
|
1063
|
+
* Bulk item creation request (within a single campaign)
|
|
1025
1064
|
*/
|
|
1026
1065
|
interface BulkCreateItemsRequest {
|
|
1027
|
-
items:
|
|
1066
|
+
items: BulkCreateItemData[];
|
|
1028
1067
|
}
|
|
1029
1068
|
/**
|
|
1030
1069
|
* Bulk item creation response
|
|
@@ -1032,7 +1071,7 @@ interface BulkCreateItemsRequest {
|
|
|
1032
1071
|
interface BulkCreateItemsResponse {
|
|
1033
1072
|
results: CampaignItem[];
|
|
1034
1073
|
failed?: {
|
|
1035
|
-
item:
|
|
1074
|
+
item: BulkCreateItemData;
|
|
1036
1075
|
error: string;
|
|
1037
1076
|
}[];
|
|
1038
1077
|
}
|
|
@@ -1045,8 +1084,18 @@ interface BulkUpdateItemsRequest {
|
|
|
1045
1084
|
id: string;
|
|
1046
1085
|
/** Campaign ID */
|
|
1047
1086
|
campaign_id: string;
|
|
1048
|
-
/**
|
|
1049
|
-
|
|
1087
|
+
/** Ad title */
|
|
1088
|
+
title?: string;
|
|
1089
|
+
/** Landing page URL */
|
|
1090
|
+
url?: string;
|
|
1091
|
+
/** Ad description */
|
|
1092
|
+
description?: string;
|
|
1093
|
+
/** Thumbnail image URL */
|
|
1094
|
+
thumbnail_url?: string;
|
|
1095
|
+
/** Whether item is active */
|
|
1096
|
+
is_active?: boolean;
|
|
1097
|
+
/** CTA configuration */
|
|
1098
|
+
cta?: CTA;
|
|
1050
1099
|
}[];
|
|
1051
1100
|
}
|
|
1052
1101
|
/**
|
|
@@ -1142,7 +1191,6 @@ interface Country {
|
|
|
1142
1191
|
interface Region {
|
|
1143
1192
|
name: string;
|
|
1144
1193
|
value: string;
|
|
1145
|
-
country: string;
|
|
1146
1194
|
}
|
|
1147
1195
|
/**
|
|
1148
1196
|
* DMA (Designated Market Area) - US only
|
|
@@ -1209,39 +1257,35 @@ interface MinimumCPC {
|
|
|
1209
1257
|
* Marketplace audience segment
|
|
1210
1258
|
*/
|
|
1211
1259
|
interface MarketplaceAudience {
|
|
1212
|
-
|
|
1213
|
-
|
|
1260
|
+
taboola_audience_id: number;
|
|
1261
|
+
audience_name: string;
|
|
1214
1262
|
description: string | null;
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
full_path: string | null;
|
|
1263
|
+
data_partner: string | null;
|
|
1264
|
+
data_partner_audience_id: string | null;
|
|
1265
|
+
allowed_countries: string[];
|
|
1266
|
+
data_partner_group?: string | null;
|
|
1267
|
+
taxonomy_categories?: string[] | null;
|
|
1268
|
+
audience_size?: number | null;
|
|
1222
1269
|
}
|
|
1223
1270
|
/**
|
|
1224
1271
|
* Lookalike audience
|
|
1225
1272
|
*/
|
|
1226
1273
|
interface LookalikeAudience {
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
source_audience_id: string | null;
|
|
1231
|
-
status: string;
|
|
1232
|
-
size: number | null;
|
|
1233
|
-
country: string | null;
|
|
1274
|
+
rule_id: number;
|
|
1275
|
+
audience_name: string;
|
|
1276
|
+
similarity_level_to_size: Record<number, number> | null;
|
|
1234
1277
|
}
|
|
1235
1278
|
/**
|
|
1236
1279
|
* Contextual segment
|
|
1237
1280
|
*/
|
|
1238
1281
|
interface ContextualSegment {
|
|
1239
|
-
id:
|
|
1240
|
-
|
|
1282
|
+
id: number;
|
|
1283
|
+
label: string;
|
|
1241
1284
|
description: string | null;
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1285
|
+
taxonomy: string | null;
|
|
1286
|
+
provider?: string | null;
|
|
1287
|
+
allowed_countries?: string[] | null;
|
|
1288
|
+
size?: number | null;
|
|
1245
1289
|
}
|
|
1246
1290
|
/**
|
|
1247
1291
|
* Campaign property enums response
|
|
@@ -1294,26 +1338,24 @@ interface ImageTaxonomy {
|
|
|
1294
1338
|
* Publisher information
|
|
1295
1339
|
*/
|
|
1296
1340
|
interface Publisher {
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1341
|
+
id: number;
|
|
1342
|
+
name: string;
|
|
1343
|
+
account_id: string;
|
|
1344
|
+
partner_types?: string[];
|
|
1345
|
+
type?: string;
|
|
1346
|
+
campaign_types?: string[];
|
|
1347
|
+
currency?: CurrencyCode;
|
|
1348
|
+
time_zone_name?: string;
|
|
1300
1349
|
}
|
|
1301
1350
|
/**
|
|
1302
1351
|
* Response for listing publishers
|
|
1303
1352
|
*/
|
|
1304
1353
|
type PublisherListResponse = ListResponse<Publisher>;
|
|
1305
|
-
/**
|
|
1306
|
-
* Blocked publisher at account level
|
|
1307
|
-
*/
|
|
1308
|
-
interface BlockedPublisher {
|
|
1309
|
-
site: string;
|
|
1310
|
-
site_id: string;
|
|
1311
|
-
}
|
|
1312
1354
|
/**
|
|
1313
1355
|
* Response for blocked publishers
|
|
1314
1356
|
*/
|
|
1315
1357
|
interface BlockedPublishersResponse {
|
|
1316
|
-
|
|
1358
|
+
sites: string[];
|
|
1317
1359
|
}
|
|
1318
1360
|
/**
|
|
1319
1361
|
* Request to update blocked publishers at account level
|
|
@@ -1328,107 +1370,93 @@ interface UpdateBlockedPublishersRequest {
|
|
|
1328
1370
|
* Types for Taboola Backstage API campaign targeting including
|
|
1329
1371
|
* postal codes, audience segments, and contextual targeting.
|
|
1330
1372
|
*/
|
|
1331
|
-
|
|
1332
1373
|
/**
|
|
1333
|
-
*
|
|
1374
|
+
* Generic targeting restriction with include/exclude
|
|
1334
1375
|
*/
|
|
1335
|
-
interface
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
restrictions: PostalCodeRestrictions | null;
|
|
1376
|
+
interface TargetingRestriction<T> {
|
|
1377
|
+
collection: T[];
|
|
1378
|
+
type: 'INCLUDE' | 'EXCLUDE';
|
|
1339
1379
|
}
|
|
1340
1380
|
/**
|
|
1341
|
-
*
|
|
1381
|
+
* Lookalike audience item for targeting
|
|
1342
1382
|
*/
|
|
1343
|
-
interface
|
|
1344
|
-
|
|
1345
|
-
|
|
1383
|
+
interface LookalikeAudienceItem {
|
|
1384
|
+
rule_id: number;
|
|
1385
|
+
similarity_level: number;
|
|
1346
1386
|
}
|
|
1347
1387
|
/**
|
|
1348
|
-
* Postal code targeting
|
|
1388
|
+
* Postal code targeting configuration
|
|
1349
1389
|
*/
|
|
1350
|
-
interface
|
|
1351
|
-
|
|
1352
|
-
|
|
1390
|
+
interface PostalCodeTargeting {
|
|
1391
|
+
type: 'INCLUDE' | 'EXCLUDE' | 'ALL';
|
|
1392
|
+
collection: string[];
|
|
1353
1393
|
}
|
|
1354
1394
|
/**
|
|
1355
1395
|
* Request to update postal code targeting
|
|
1356
1396
|
*/
|
|
1357
1397
|
interface UpdatePostalCodeTargetingRequest {
|
|
1358
1398
|
type: 'INCLUDE' | 'EXCLUDE' | 'ALL';
|
|
1359
|
-
|
|
1360
|
-
}
|
|
1361
|
-
/**
|
|
1362
|
-
* Audience segment for targeting
|
|
1363
|
-
*/
|
|
1364
|
-
interface AudienceSegment {
|
|
1365
|
-
id: string;
|
|
1366
|
-
name: string | null;
|
|
1399
|
+
collection: string[];
|
|
1367
1400
|
}
|
|
1368
1401
|
/**
|
|
1369
|
-
* Audience targeting configuration (marketplace, custom
|
|
1402
|
+
* Audience targeting configuration (marketplace, custom)
|
|
1370
1403
|
*/
|
|
1371
1404
|
interface AudienceTargeting {
|
|
1372
|
-
collection:
|
|
1373
|
-
type: MultiTargetingState;
|
|
1405
|
+
collection: TargetingRestriction<number>[];
|
|
1374
1406
|
}
|
|
1375
1407
|
/**
|
|
1376
1408
|
* Request to update audience targeting
|
|
1377
1409
|
*/
|
|
1378
1410
|
interface UpdateAudienceTargetingRequest {
|
|
1379
|
-
|
|
1380
|
-
collection?: AudienceSegment[] | undefined;
|
|
1381
|
-
and_collection?: AudienceSegment[][] | undefined;
|
|
1382
|
-
or_collection?: AudienceSegment[][] | undefined;
|
|
1383
|
-
}
|
|
1384
|
-
/**
|
|
1385
|
-
* Contextual segment for targeting
|
|
1386
|
-
*/
|
|
1387
|
-
interface ContextualSegmentValue {
|
|
1388
|
-
id: string;
|
|
1389
|
-
name: string | null;
|
|
1411
|
+
collection: TargetingRestriction<number>[];
|
|
1390
1412
|
}
|
|
1391
1413
|
/**
|
|
1392
1414
|
* Contextual targeting configuration
|
|
1393
1415
|
*/
|
|
1394
1416
|
interface ContextualTargeting {
|
|
1395
|
-
|
|
1396
|
-
collection: ContextualSegmentValue[];
|
|
1417
|
+
collection: TargetingRestriction<number>[];
|
|
1397
1418
|
}
|
|
1398
1419
|
/**
|
|
1399
1420
|
* Request to update contextual targeting
|
|
1400
1421
|
*/
|
|
1401
1422
|
interface UpdateContextualTargetingRequest {
|
|
1402
|
-
|
|
1403
|
-
collection: ContextualSegmentValue[];
|
|
1423
|
+
collection: TargetingRestriction<number>[];
|
|
1404
1424
|
}
|
|
1405
1425
|
/**
|
|
1406
1426
|
* First party audience targeting
|
|
1407
1427
|
*/
|
|
1408
1428
|
interface FirstPartyAudienceTargeting {
|
|
1409
|
-
|
|
1410
|
-
collection: AudienceSegment[];
|
|
1429
|
+
collection: TargetingRestriction<number>[];
|
|
1411
1430
|
}
|
|
1412
1431
|
/**
|
|
1413
1432
|
* Request to update first party audience targeting
|
|
1414
1433
|
*/
|
|
1415
1434
|
interface UpdateFirstPartyAudienceTargetingRequest {
|
|
1416
|
-
|
|
1417
|
-
collection: AudienceSegment[];
|
|
1435
|
+
collection: TargetingRestriction<number>[];
|
|
1418
1436
|
}
|
|
1419
1437
|
/**
|
|
1420
1438
|
* Marking labels (pixel retargeting) targeting configuration
|
|
1421
1439
|
*/
|
|
1422
1440
|
interface MarkingLabelsTargeting {
|
|
1423
|
-
|
|
1424
|
-
collection: string[];
|
|
1441
|
+
collection: TargetingRestriction<string>[];
|
|
1425
1442
|
}
|
|
1426
1443
|
/**
|
|
1427
1444
|
* Request to update marking labels targeting
|
|
1428
1445
|
*/
|
|
1429
1446
|
interface UpdateMarkingLabelsTargetingRequest {
|
|
1430
|
-
|
|
1431
|
-
|
|
1447
|
+
collection: TargetingRestriction<string>[];
|
|
1448
|
+
}
|
|
1449
|
+
/**
|
|
1450
|
+
* Lookalike audience targeting configuration
|
|
1451
|
+
*/
|
|
1452
|
+
interface LookalikeAudienceTargeting {
|
|
1453
|
+
collection: TargetingRestriction<LookalikeAudienceItem>[];
|
|
1454
|
+
}
|
|
1455
|
+
/**
|
|
1456
|
+
* Request to update lookalike audience targeting
|
|
1457
|
+
*/
|
|
1458
|
+
interface UpdateLookalikeAudienceTargetingRequest {
|
|
1459
|
+
collection: TargetingRestriction<LookalikeAudienceItem>[];
|
|
1432
1460
|
}
|
|
1433
1461
|
|
|
1434
1462
|
/**
|
|
@@ -1442,11 +1470,14 @@ interface UpdateMarkingLabelsTargetingRequest {
|
|
|
1442
1470
|
*/
|
|
1443
1471
|
interface CombinedAudience {
|
|
1444
1472
|
id: string;
|
|
1445
|
-
|
|
1473
|
+
display_name: string;
|
|
1446
1474
|
description: string | null;
|
|
1447
1475
|
status: CombinedAudienceStatus;
|
|
1448
1476
|
created_at: string;
|
|
1449
|
-
|
|
1477
|
+
last_modified_at: string;
|
|
1478
|
+
last_modified_by?: string;
|
|
1479
|
+
advertiser_id?: string;
|
|
1480
|
+
audience_size?: number | null;
|
|
1450
1481
|
include_rules: CombinedAudienceRule[];
|
|
1451
1482
|
exclude_rules: CombinedAudienceRule[];
|
|
1452
1483
|
}
|
|
@@ -1464,7 +1495,7 @@ interface CombinedAudienceRule {
|
|
|
1464
1495
|
/**
|
|
1465
1496
|
* Type of audience in a combined audience rule
|
|
1466
1497
|
*/
|
|
1467
|
-
type CombinedAudienceType = '
|
|
1498
|
+
type CombinedAudienceType = 'Custom' | 'Lookalike' | 'Third_Party' | 'First_Party';
|
|
1468
1499
|
/**
|
|
1469
1500
|
* Individual audience item in a rule
|
|
1470
1501
|
*/
|
|
@@ -1480,7 +1511,7 @@ type CombinedAudienceListResponse = ListResponse<CombinedAudience>;
|
|
|
1480
1511
|
* Request to create a combined audience
|
|
1481
1512
|
*/
|
|
1482
1513
|
interface CreateCombinedAudienceRequest {
|
|
1483
|
-
|
|
1514
|
+
display_name: string;
|
|
1484
1515
|
description?: string | undefined;
|
|
1485
1516
|
include_rules: CombinedAudienceRule[];
|
|
1486
1517
|
exclude_rules?: CombinedAudienceRule[] | undefined;
|
|
@@ -1489,7 +1520,7 @@ interface CreateCombinedAudienceRequest {
|
|
|
1489
1520
|
* Request to update a combined audience
|
|
1490
1521
|
*/
|
|
1491
1522
|
interface UpdateCombinedAudienceRequest {
|
|
1492
|
-
|
|
1523
|
+
display_name?: string | undefined;
|
|
1493
1524
|
description?: string | undefined;
|
|
1494
1525
|
include_rules?: CombinedAudienceRule[] | undefined;
|
|
1495
1526
|
exclude_rules?: CombinedAudienceRule[] | undefined;
|
|
@@ -1498,11 +1529,14 @@ interface UpdateCombinedAudienceRequest {
|
|
|
1498
1529
|
* Available audience for combined audience creation
|
|
1499
1530
|
*/
|
|
1500
1531
|
interface AvailableAudience {
|
|
1501
|
-
id:
|
|
1502
|
-
|
|
1503
|
-
|
|
1532
|
+
id: number;
|
|
1533
|
+
audience_name: string;
|
|
1534
|
+
data_type: CombinedAudienceType;
|
|
1504
1535
|
size: number | null;
|
|
1505
1536
|
status: string;
|
|
1537
|
+
provider?: string;
|
|
1538
|
+
description?: string | null;
|
|
1539
|
+
is_archived?: boolean;
|
|
1506
1540
|
}
|
|
1507
1541
|
/**
|
|
1508
1542
|
* Response for listing available audiences
|
|
@@ -1513,15 +1547,22 @@ type AvailableAudiencesResponse = ListResponse<AvailableAudience>;
|
|
|
1513
1547
|
*/
|
|
1514
1548
|
interface FirstPartyAudience {
|
|
1515
1549
|
id: string;
|
|
1516
|
-
|
|
1550
|
+
display_name: string;
|
|
1517
1551
|
description: string | null;
|
|
1518
1552
|
status: FirstPartyAudienceStatus;
|
|
1519
|
-
|
|
1553
|
+
audience_size: number | null;
|
|
1520
1554
|
match_rate: number | null;
|
|
1521
1555
|
created_at: string;
|
|
1522
|
-
|
|
1523
|
-
|
|
1556
|
+
last_modified_at: string;
|
|
1557
|
+
last_modified_by?: string;
|
|
1558
|
+
ttl_in_hours: number | null;
|
|
1559
|
+
ttl_type?: string;
|
|
1524
1560
|
source_type: FirstPartyAudienceSourceType;
|
|
1561
|
+
look_back_window?: number | null;
|
|
1562
|
+
category?: string | null;
|
|
1563
|
+
event_name?: string | null;
|
|
1564
|
+
exclude_from_campaigns?: boolean;
|
|
1565
|
+
advertiser_id?: string;
|
|
1525
1566
|
}
|
|
1526
1567
|
/**
|
|
1527
1568
|
* First party audience status
|
|
@@ -1535,44 +1576,32 @@ type FirstPartyAudienceSourceType = 'CRM' | 'EMAIL' | 'PHONE' | 'DEVICE_ID' | 'C
|
|
|
1535
1576
|
* Request to create a first party audience
|
|
1536
1577
|
*/
|
|
1537
1578
|
interface CreateFirstPartyAudienceRequest {
|
|
1538
|
-
|
|
1579
|
+
display_name: string;
|
|
1539
1580
|
description?: string | undefined;
|
|
1540
|
-
|
|
1581
|
+
ttl_in_hours?: number | undefined;
|
|
1541
1582
|
source_type: FirstPartyAudienceSourceType;
|
|
1542
1583
|
}
|
|
1543
1584
|
/**
|
|
1544
|
-
* User
|
|
1545
|
-
*/
|
|
1546
|
-
interface FirstPartyAudienceUser {
|
|
1547
|
-
identifier_type: FirstPartyIdentifierType;
|
|
1548
|
-
identifier_value: string;
|
|
1549
|
-
}
|
|
1550
|
-
/**
|
|
1551
|
-
* Type of user identifier
|
|
1552
|
-
*/
|
|
1553
|
-
type FirstPartyIdentifierType = 'EMAIL' | 'EMAIL_SHA256' | 'PHONE' | 'PHONE_SHA256' | 'DEVICE_ID' | 'DEVICE_ID_SHA256';
|
|
1554
|
-
/**
|
|
1555
|
-
* Request to add or remove users from first party audience
|
|
1585
|
+
* User identity item within a cluster
|
|
1556
1586
|
*/
|
|
1557
|
-
interface
|
|
1558
|
-
|
|
1559
|
-
|
|
1587
|
+
interface AudienceUserClusterItem {
|
|
1588
|
+
user_id: string;
|
|
1589
|
+
type: string;
|
|
1590
|
+
is_hashed: boolean;
|
|
1560
1591
|
}
|
|
1561
1592
|
/**
|
|
1562
|
-
*
|
|
1593
|
+
* User identity cluster
|
|
1563
1594
|
*/
|
|
1564
|
-
interface
|
|
1565
|
-
|
|
1566
|
-
removed_count: number;
|
|
1567
|
-
failed_count: number;
|
|
1568
|
-
errors: AddRemoveUserError[];
|
|
1595
|
+
interface AudienceUserIdentity {
|
|
1596
|
+
cluster: AudienceUserClusterItem[];
|
|
1569
1597
|
}
|
|
1570
1598
|
/**
|
|
1571
|
-
*
|
|
1599
|
+
* Request to add or remove users from first party audience
|
|
1572
1600
|
*/
|
|
1573
|
-
interface
|
|
1574
|
-
|
|
1575
|
-
|
|
1601
|
+
interface AudienceUsersRequest {
|
|
1602
|
+
operation: 'ADD' | 'REMOVE';
|
|
1603
|
+
audience_id: number;
|
|
1604
|
+
identities: AudienceUserIdentity[];
|
|
1576
1605
|
}
|
|
1577
1606
|
|
|
1578
1607
|
/**
|
|
@@ -1586,74 +1615,62 @@ interface AddRemoveUserError {
|
|
|
1586
1615
|
* Conversion rule for tracking conversions
|
|
1587
1616
|
*/
|
|
1588
1617
|
interface ConversionRule {
|
|
1589
|
-
id:
|
|
1618
|
+
id: number;
|
|
1590
1619
|
display_name: string;
|
|
1591
|
-
|
|
1620
|
+
advertiser_id: string;
|
|
1592
1621
|
type: ConversionRuleType;
|
|
1593
|
-
|
|
1594
|
-
include_in_total_value: boolean;
|
|
1595
|
-
category: ConversionCategory | null;
|
|
1596
|
-
conversion_window_days: number;
|
|
1597
|
-
view_through_window_days: number;
|
|
1598
|
-
counting_method: CountingMethod;
|
|
1599
|
-
aggregation_type: AggregationType;
|
|
1600
|
-
default_conversion_value: number | null;
|
|
1601
|
-
conditions: Condition[];
|
|
1602
|
-
effect: Effect;
|
|
1622
|
+
status: ConversionRuleStatus;
|
|
1603
1623
|
event_name: string | null;
|
|
1604
|
-
|
|
1605
|
-
|
|
1624
|
+
category: ConversionCategory | null;
|
|
1625
|
+
description: string | null;
|
|
1626
|
+
look_back_window: number;
|
|
1627
|
+
view_through_look_back_window: number | null;
|
|
1628
|
+
condition: ConversionCondition;
|
|
1629
|
+
effects: ConversionEffect[];
|
|
1630
|
+
include_in_total_conversions: boolean;
|
|
1631
|
+
exclude_from_campaigns: boolean;
|
|
1632
|
+
last_modified_by: string;
|
|
1633
|
+
last_modified_at: string;
|
|
1606
1634
|
}
|
|
1607
1635
|
/**
|
|
1608
1636
|
* Conversion rule status
|
|
1609
1637
|
*/
|
|
1610
|
-
type ConversionRuleStatus = 'ACTIVE' | 'ARCHIVED';
|
|
1638
|
+
type ConversionRuleStatus = 'ACTIVE' | 'DISABLED' | 'ARCHIVED';
|
|
1611
1639
|
/**
|
|
1612
1640
|
* Conversion rule type
|
|
1641
|
+
*
|
|
1642
|
+
* - BASIC: URL-based conversion rules using the condition object
|
|
1643
|
+
* - EVENT_BASED: Custom event-based rules using event_name
|
|
1613
1644
|
*/
|
|
1614
|
-
type ConversionRuleType = '
|
|
1645
|
+
type ConversionRuleType = 'BASIC' | 'EVENT_BASED';
|
|
1615
1646
|
/**
|
|
1616
1647
|
* Conversion category
|
|
1617
1648
|
*/
|
|
1618
|
-
type ConversionCategory = '
|
|
1619
|
-
/**
|
|
1620
|
-
* Counting method for conversions
|
|
1621
|
-
*/
|
|
1622
|
-
type CountingMethod = 'ALL' | 'ONE';
|
|
1623
|
-
/**
|
|
1624
|
-
* Aggregation type for conversion values
|
|
1625
|
-
*/
|
|
1626
|
-
type AggregationType = 'SUM' | 'COUNT';
|
|
1649
|
+
type ConversionCategory = 'VIEW_CONTENT' | 'SEARCH' | 'ADD_TO_CART' | 'ADD_TO_WISHLIST' | 'START_CHECKOUT' | 'ADD_PAYMENT_INFO' | 'MAKE_PURCHASE' | 'LEAD' | 'COMPLETE_REGISTRATION' | 'APP_INSTALL' | 'OTHER';
|
|
1627
1650
|
/**
|
|
1628
|
-
* Condition for matching conversions
|
|
1651
|
+
* Condition for matching conversions (tree structure)
|
|
1652
|
+
*
|
|
1653
|
+
* For a single condition, property/predicate/value are set directly.
|
|
1654
|
+
* For multiple conditions, the parent has predicate 'OR' and individual
|
|
1655
|
+
* conditions are in the children array.
|
|
1629
1656
|
*/
|
|
1630
|
-
interface
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
value: string;
|
|
1634
|
-
|
|
1657
|
+
interface ConversionCondition {
|
|
1658
|
+
property: string | null;
|
|
1659
|
+
predicate: ConversionConditionPredicate;
|
|
1660
|
+
value: string | null;
|
|
1661
|
+
children: ConversionCondition[];
|
|
1635
1662
|
}
|
|
1636
1663
|
/**
|
|
1637
|
-
* Condition
|
|
1638
|
-
*/
|
|
1639
|
-
type ConditionType = 'URL' | 'URL_PARAMETER' | 'EVENT_NAME' | 'EVENT_PARAMETER';
|
|
1640
|
-
/**
|
|
1641
|
-
* Condition operator
|
|
1664
|
+
* Condition predicate
|
|
1642
1665
|
*/
|
|
1643
|
-
type
|
|
1666
|
+
type ConversionConditionPredicate = 'CONTAINS' | 'EQUALS' | 'OR';
|
|
1644
1667
|
/**
|
|
1645
1668
|
* Effect of matching a conversion rule
|
|
1646
1669
|
*/
|
|
1647
|
-
interface
|
|
1648
|
-
type:
|
|
1649
|
-
|
|
1650
|
-
currency: string | null;
|
|
1651
|
-
value_parameter: string | null;
|
|
1670
|
+
interface ConversionEffect {
|
|
1671
|
+
type: string;
|
|
1672
|
+
data: string;
|
|
1652
1673
|
}
|
|
1653
|
-
/**
|
|
1654
|
-
* Effect type
|
|
1655
|
-
*/
|
|
1656
|
-
type EffectType = 'FIXED_VALUE' | 'DYNAMIC_VALUE' | 'NO_VALUE';
|
|
1657
1674
|
/**
|
|
1658
1675
|
* Response for listing conversion rules
|
|
1659
1676
|
*/
|
|
@@ -1664,34 +1681,32 @@ type ConversionRuleListResponse = ListResponse<ConversionRule>;
|
|
|
1664
1681
|
interface CreateConversionRuleRequest {
|
|
1665
1682
|
display_name: string;
|
|
1666
1683
|
type: ConversionRuleType;
|
|
1667
|
-
include_in_total_conversions?: boolean | undefined;
|
|
1668
|
-
include_in_total_value?: boolean | undefined;
|
|
1669
|
-
category?: ConversionCategory | undefined;
|
|
1670
|
-
conversion_window_days?: number | undefined;
|
|
1671
|
-
view_through_window_days?: number | undefined;
|
|
1672
|
-
counting_method?: CountingMethod | undefined;
|
|
1673
|
-
aggregation_type?: AggregationType | undefined;
|
|
1674
|
-
default_conversion_value?: number | undefined;
|
|
1675
|
-
conditions: Condition[];
|
|
1676
|
-
effect: Effect;
|
|
1677
1684
|
event_name?: string | undefined;
|
|
1685
|
+
category?: ConversionCategory | undefined;
|
|
1686
|
+
description?: string | undefined;
|
|
1687
|
+
look_back_window?: number | undefined;
|
|
1688
|
+
view_through_look_back_window?: number | undefined;
|
|
1689
|
+
condition?: ConversionCondition | undefined;
|
|
1690
|
+
effects?: ConversionEffect[] | undefined;
|
|
1691
|
+
include_in_total_conversions?: boolean | undefined;
|
|
1692
|
+
exclude_from_campaigns?: boolean | undefined;
|
|
1678
1693
|
}
|
|
1679
1694
|
/**
|
|
1680
1695
|
* Request to update a conversion rule
|
|
1696
|
+
*
|
|
1697
|
+
* Note: type and advertiser_id are final and cannot be changed after creation.
|
|
1681
1698
|
*/
|
|
1682
1699
|
interface UpdateConversionRuleRequest {
|
|
1683
1700
|
display_name?: string | undefined;
|
|
1684
1701
|
status?: ConversionRuleStatus | undefined;
|
|
1685
|
-
include_in_total_conversions?: boolean | undefined;
|
|
1686
|
-
include_in_total_value?: boolean | undefined;
|
|
1687
1702
|
category?: ConversionCategory | undefined;
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1703
|
+
description?: string | undefined;
|
|
1704
|
+
look_back_window?: number | undefined;
|
|
1705
|
+
view_through_look_back_window?: number | undefined;
|
|
1706
|
+
condition?: ConversionCondition | undefined;
|
|
1707
|
+
effects?: ConversionEffect[] | undefined;
|
|
1708
|
+
include_in_total_conversions?: boolean | undefined;
|
|
1709
|
+
exclude_from_campaigns?: boolean | undefined;
|
|
1695
1710
|
}
|
|
1696
1711
|
/**
|
|
1697
1712
|
* Custom audience rule for building audiences from pixel data
|
|
@@ -1700,7 +1715,7 @@ interface CustomAudienceRule {
|
|
|
1700
1715
|
id: string;
|
|
1701
1716
|
display_name: string;
|
|
1702
1717
|
status: CustomAudienceRuleStatus;
|
|
1703
|
-
conditions:
|
|
1718
|
+
conditions: CustomAudienceCondition[];
|
|
1704
1719
|
ttl_days: number;
|
|
1705
1720
|
size: number | null;
|
|
1706
1721
|
created_at: string;
|
|
@@ -1710,6 +1725,23 @@ interface CustomAudienceRule {
|
|
|
1710
1725
|
* Custom audience rule status
|
|
1711
1726
|
*/
|
|
1712
1727
|
type CustomAudienceRuleStatus = 'ACTIVE' | 'PAUSED' | 'ARCHIVED';
|
|
1728
|
+
/**
|
|
1729
|
+
* Condition for custom audience rules
|
|
1730
|
+
*/
|
|
1731
|
+
interface CustomAudienceCondition {
|
|
1732
|
+
type: CustomAudienceConditionType;
|
|
1733
|
+
operator: CustomAudienceConditionOperator;
|
|
1734
|
+
value: string;
|
|
1735
|
+
parameter?: string | undefined;
|
|
1736
|
+
}
|
|
1737
|
+
/**
|
|
1738
|
+
* Custom audience condition type
|
|
1739
|
+
*/
|
|
1740
|
+
type CustomAudienceConditionType = 'URL' | 'URL_PARAMETER' | 'EVENT_NAME' | 'EVENT_PARAMETER';
|
|
1741
|
+
/**
|
|
1742
|
+
* Custom audience condition operator
|
|
1743
|
+
*/
|
|
1744
|
+
type CustomAudienceConditionOperator = 'EQUALS' | 'NOT_EQUALS' | 'CONTAINS' | 'NOT_CONTAINS' | 'STARTS_WITH' | 'ENDS_WITH' | 'REGEX';
|
|
1713
1745
|
/**
|
|
1714
1746
|
* Response for listing custom audience rules
|
|
1715
1747
|
*/
|
|
@@ -1719,7 +1751,7 @@ type CustomAudienceRuleListResponse = ListResponse<CustomAudienceRule>;
|
|
|
1719
1751
|
*/
|
|
1720
1752
|
interface CreateCustomAudienceRuleRequest {
|
|
1721
1753
|
display_name: string;
|
|
1722
|
-
conditions:
|
|
1754
|
+
conditions: CustomAudienceCondition[];
|
|
1723
1755
|
ttl_days?: number | undefined;
|
|
1724
1756
|
}
|
|
1725
1757
|
/**
|
|
@@ -1728,16 +1760,19 @@ interface CreateCustomAudienceRuleRequest {
|
|
|
1728
1760
|
interface UpdateCustomAudienceRuleRequest {
|
|
1729
1761
|
display_name?: string | undefined;
|
|
1730
1762
|
status?: CustomAudienceRuleStatus | undefined;
|
|
1731
|
-
conditions?:
|
|
1763
|
+
conditions?: CustomAudienceCondition[] | undefined;
|
|
1732
1764
|
ttl_days?: number | undefined;
|
|
1733
1765
|
}
|
|
1734
1766
|
/**
|
|
1735
|
-
* Conversion rule with
|
|
1767
|
+
* Conversion rule wrapped with performance data
|
|
1768
|
+
*
|
|
1769
|
+
* Returned by the /data endpoint which wraps each rule
|
|
1770
|
+
* with last_received and total_received metrics.
|
|
1736
1771
|
*/
|
|
1737
|
-
interface ConversionRuleWithData
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1772
|
+
interface ConversionRuleWithData {
|
|
1773
|
+
last_received: string | null;
|
|
1774
|
+
total_received: number;
|
|
1775
|
+
unip_conversion_rule: ConversionRule;
|
|
1741
1776
|
}
|
|
1742
1777
|
/**
|
|
1743
1778
|
* Response for listing conversion rules with data
|
|
@@ -2031,6 +2066,10 @@ interface CampaignSummaryRow {
|
|
|
2031
2066
|
conversions_value: number;
|
|
2032
2067
|
/** Return on ad spend */
|
|
2033
2068
|
roas: number;
|
|
2069
|
+
/** ROAS from clicks */
|
|
2070
|
+
roas_clicks?: number | undefined;
|
|
2071
|
+
/** ROAS from views */
|
|
2072
|
+
roas_views?: number | undefined;
|
|
2034
2073
|
/** Cost per action (all) */
|
|
2035
2074
|
cpa: number;
|
|
2036
2075
|
/** CPA from clicks */
|
|
@@ -2055,6 +2094,16 @@ interface CampaignSummaryRow {
|
|
|
2055
2094
|
audience_name?: string | undefined;
|
|
2056
2095
|
/** Data partner audience ID (for user_segment_breakdown dimension) */
|
|
2057
2096
|
data_partner_audience_id?: string | undefined;
|
|
2097
|
+
/** Campaign learning state */
|
|
2098
|
+
campaign_learning_state?: string | undefined;
|
|
2099
|
+
/** Audience description */
|
|
2100
|
+
audience_description?: string | undefined;
|
|
2101
|
+
/** OS family (for os_family_breakdown dimension) */
|
|
2102
|
+
os_family?: string | undefined;
|
|
2103
|
+
/** OS version (for os_version_breakdown dimension) */
|
|
2104
|
+
os_version?: string | undefined;
|
|
2105
|
+
/** Browser (for browser_breakdown dimension) */
|
|
2106
|
+
browser?: string | undefined;
|
|
2058
2107
|
/** Custom conversion columns (dynamic based on include_conversions) */
|
|
2059
2108
|
[key: string]: unknown;
|
|
2060
2109
|
}
|
|
@@ -2086,6 +2135,16 @@ interface TopCampaignContentRow {
|
|
|
2086
2135
|
/** Content provider (publisher) */
|
|
2087
2136
|
content_provider?: string | undefined;
|
|
2088
2137
|
content_provider_name?: string | undefined;
|
|
2138
|
+
/** Ad description */
|
|
2139
|
+
description?: string | undefined;
|
|
2140
|
+
/** Creation time */
|
|
2141
|
+
create_time?: string | undefined;
|
|
2142
|
+
/** Learning display status */
|
|
2143
|
+
learning_display_status?: string | undefined;
|
|
2144
|
+
/** Ad name */
|
|
2145
|
+
ad_name?: string | undefined;
|
|
2146
|
+
/** Custom ID */
|
|
2147
|
+
custom_id?: string | undefined;
|
|
2089
2148
|
/** Metrics */
|
|
2090
2149
|
clicks: number;
|
|
2091
2150
|
impressions: number;
|
|
@@ -2104,8 +2163,6 @@ interface TopCampaignContentRow {
|
|
|
2104
2163
|
conversions_value: number;
|
|
2105
2164
|
roas: number;
|
|
2106
2165
|
cpa: number;
|
|
2107
|
-
cpa_actions_num: number;
|
|
2108
|
-
cpa_conversion_rate: number;
|
|
2109
2166
|
/** Custom conversion columns */
|
|
2110
2167
|
[key: string]: unknown;
|
|
2111
2168
|
}
|
|
@@ -2126,22 +2183,24 @@ interface RealtimeCampaignReport {
|
|
|
2126
2183
|
* Fields present depend on the chosen dimension.
|
|
2127
2184
|
*/
|
|
2128
2185
|
interface RealtimeCampaignRow {
|
|
2129
|
-
/**
|
|
2130
|
-
|
|
2186
|
+
/** Date/time bucket */
|
|
2187
|
+
date?: string | undefined;
|
|
2131
2188
|
/** Campaign ID (for by_campaign dimensions) */
|
|
2132
|
-
|
|
2189
|
+
campaign_id?: string | undefined;
|
|
2133
2190
|
campaign_name?: string | undefined;
|
|
2134
2191
|
/** Site name (for by_site dimensions) */
|
|
2135
|
-
|
|
2192
|
+
site_name?: string | undefined;
|
|
2136
2193
|
site_id?: string | undefined;
|
|
2137
2194
|
/** Country code (for by_country dimensions) */
|
|
2138
2195
|
country?: string | undefined;
|
|
2196
|
+
/** Country name */
|
|
2197
|
+
country_name?: string | undefined;
|
|
2139
2198
|
/** Platform (for by_platform dimensions) */
|
|
2140
2199
|
platform?: string | undefined;
|
|
2200
|
+
/** Platform name */
|
|
2201
|
+
platform_name?: string | undefined;
|
|
2141
2202
|
/** Number of clicks */
|
|
2142
2203
|
clicks: number;
|
|
2143
|
-
/** Number of impressions */
|
|
2144
|
-
impressions: number;
|
|
2145
2204
|
/** Number of visible impressions */
|
|
2146
2205
|
visible_impressions: number;
|
|
2147
2206
|
/** Total spend */
|
|
@@ -2164,6 +2223,10 @@ interface RealtimeCampaignRow {
|
|
|
2164
2223
|
cpa_conversion_rate: number;
|
|
2165
2224
|
/** Cost per action */
|
|
2166
2225
|
cpa: number;
|
|
2226
|
+
/** Total conversion value */
|
|
2227
|
+
conversions_value?: number | undefined;
|
|
2228
|
+
/** Return on ad spend */
|
|
2229
|
+
roas?: number | undefined;
|
|
2167
2230
|
/** Dynamic fields (e.g. from fetch_config) */
|
|
2168
2231
|
[key: string]: unknown;
|
|
2169
2232
|
}
|
|
@@ -2183,17 +2246,23 @@ interface RealtimeAdsReport {
|
|
|
2183
2246
|
*/
|
|
2184
2247
|
interface RealtimeAdsRow {
|
|
2185
2248
|
/** Item (ad) ID */
|
|
2186
|
-
|
|
2249
|
+
item_id: string;
|
|
2187
2250
|
item_name: string;
|
|
2188
2251
|
/** Thumbnail URL */
|
|
2189
2252
|
thumbnail_url: string;
|
|
2190
2253
|
/** Campaign ID */
|
|
2191
|
-
|
|
2254
|
+
campaign_id: string;
|
|
2192
2255
|
campaign_name: string;
|
|
2256
|
+
/** Ad description */
|
|
2257
|
+
description?: string | undefined;
|
|
2258
|
+
/** Landing page URL */
|
|
2259
|
+
url?: string | undefined;
|
|
2260
|
+
/** Item type */
|
|
2261
|
+
item_type?: string | undefined;
|
|
2262
|
+
/** Date/time bucket */
|
|
2263
|
+
date?: string | undefined;
|
|
2193
2264
|
/** Number of clicks */
|
|
2194
2265
|
clicks: number;
|
|
2195
|
-
/** Number of impressions */
|
|
2196
|
-
impressions: number;
|
|
2197
2266
|
/** Number of visible impressions */
|
|
2198
2267
|
visible_impressions: number;
|
|
2199
2268
|
/** Total spend */
|
|
@@ -2216,6 +2285,10 @@ interface RealtimeAdsRow {
|
|
|
2216
2285
|
cpa_conversion_rate: number;
|
|
2217
2286
|
/** Cost per action */
|
|
2218
2287
|
cpa: number;
|
|
2288
|
+
/** Total conversion value */
|
|
2289
|
+
conversions_value?: number | undefined;
|
|
2290
|
+
/** Return on ad spend */
|
|
2291
|
+
roas?: number | undefined;
|
|
2219
2292
|
/** Dynamic fields */
|
|
2220
2293
|
[key: string]: unknown;
|
|
2221
2294
|
}
|
|
@@ -2238,7 +2311,7 @@ interface ReportField {
|
|
|
2238
2311
|
/**
|
|
2239
2312
|
* Report data type
|
|
2240
2313
|
*/
|
|
2241
|
-
type ReportDataType = '
|
|
2314
|
+
type ReportDataType = 'STRING' | 'FLOAT' | 'MONEY' | 'PERCENT' | 'NUMERIC' | 'DATA' | 'DATE' | 'TIMESTAMP' | 'URL' | 'BOOLEAN';
|
|
2242
2315
|
|
|
2243
2316
|
/**
|
|
2244
2317
|
* Account API for Taboola Backstage
|
|
@@ -2332,244 +2405,69 @@ declare class CampaignsAPI {
|
|
|
2332
2405
|
constructor(http: HttpClient);
|
|
2333
2406
|
/**
|
|
2334
2407
|
* List all campaigns for an account
|
|
2335
|
-
*
|
|
2336
|
-
* @param accountId - Account ID
|
|
2337
|
-
* @param options - Pagination and filter options
|
|
2338
|
-
*
|
|
2339
|
-
* @example
|
|
2340
|
-
* ```typescript
|
|
2341
|
-
* const { results } = await client.campaigns.list('my-account');
|
|
2342
|
-
* for (const campaign of results) {
|
|
2343
|
-
* console.log(campaign.name, campaign.status);
|
|
2344
|
-
* }
|
|
2345
|
-
* ```
|
|
2346
2408
|
*/
|
|
2347
2409
|
list(accountId: string, options?: ListCampaignsOptions): Promise<CampaignListResponse>;
|
|
2348
2410
|
/**
|
|
2349
2411
|
* List all campaigns with base (partial) fields only
|
|
2350
|
-
*
|
|
2351
|
-
* Returns a lighter-weight response with fewer fields per campaign.
|
|
2352
|
-
* Useful for listing/overview pages where full campaign data is not needed.
|
|
2353
|
-
*
|
|
2354
|
-
* @param accountId - Account ID
|
|
2355
|
-
*
|
|
2356
|
-
* @example
|
|
2357
|
-
* ```typescript
|
|
2358
|
-
* const { results } = await client.campaigns.listBase('my-account');
|
|
2359
|
-
* for (const campaign of results) {
|
|
2360
|
-
* console.log(campaign.name, campaign.status);
|
|
2361
|
-
* }
|
|
2362
|
-
* ```
|
|
2363
2412
|
*/
|
|
2364
2413
|
listBase(accountId: string): Promise<CampaignBaseListResponse>;
|
|
2365
2414
|
/**
|
|
2366
2415
|
* Get a single campaign by ID
|
|
2367
|
-
*
|
|
2368
|
-
* @param accountId - Account ID
|
|
2369
|
-
* @param campaignId - Campaign ID
|
|
2370
|
-
*
|
|
2371
|
-
* @example
|
|
2372
|
-
* ```typescript
|
|
2373
|
-
* const campaign = await client.campaigns.get('my-account', '12345');
|
|
2374
|
-
* console.log(campaign.name, campaign.cpc);
|
|
2375
|
-
* ```
|
|
2376
2416
|
*/
|
|
2377
2417
|
get(accountId: string, campaignId: string): Promise<Campaign>;
|
|
2378
2418
|
/**
|
|
2379
2419
|
* Create a new campaign
|
|
2380
|
-
*
|
|
2381
|
-
* @param accountId - Account ID
|
|
2382
|
-
* @param campaign - Campaign data
|
|
2383
|
-
*
|
|
2384
|
-
* @example
|
|
2385
|
-
* ```typescript
|
|
2386
|
-
* const campaign = await client.campaigns.create('my-account', {
|
|
2387
|
-
* name: 'My New Campaign',
|
|
2388
|
-
* branding_text: 'My Brand',
|
|
2389
|
-
* cpc: 0.50,
|
|
2390
|
-
* spending_limit: 1000,
|
|
2391
|
-
* spending_limit_model: 'MONTHLY',
|
|
2392
|
-
* marketing_objective: 'DRIVE_WEBSITE_TRAFFIC',
|
|
2393
|
-
* });
|
|
2394
|
-
* console.log('Created campaign:', campaign.id);
|
|
2395
|
-
* ```
|
|
2396
2420
|
*/
|
|
2397
2421
|
create(accountId: string, campaign: CreateCampaignRequest): Promise<Campaign>;
|
|
2398
2422
|
/**
|
|
2399
2423
|
* Update an existing campaign
|
|
2400
|
-
*
|
|
2401
|
-
* Submit only the fields you want to update. Fields that are omitted or null
|
|
2402
|
-
* will remain unchanged.
|
|
2403
|
-
*
|
|
2404
|
-
* @param accountId - Account ID
|
|
2405
|
-
* @param campaignId - Campaign ID
|
|
2406
|
-
* @param updates - Fields to update (partial)
|
|
2407
|
-
*
|
|
2408
|
-
* @example Update a single field
|
|
2409
|
-
* ```typescript
|
|
2410
|
-
* const campaign = await client.campaigns.update('my-account', '12345', {
|
|
2411
|
-
* name: 'DemoCampaign - Edited',
|
|
2412
|
-
* });
|
|
2413
|
-
* ```
|
|
2414
|
-
*
|
|
2415
|
-
* @example Update multiple fields including targeting
|
|
2416
|
-
* ```typescript
|
|
2417
|
-
* const campaign = await client.campaigns.update('my-account', '12345', {
|
|
2418
|
-
* name: 'Demo Campaign - Edited Again',
|
|
2419
|
-
* branding_text: 'New branding text',
|
|
2420
|
-
* spending_limit: 10000,
|
|
2421
|
-
* spending_limit_model: 'ENTIRE',
|
|
2422
|
-
* country_targeting: {
|
|
2423
|
-
* type: 'INCLUDE',
|
|
2424
|
-
* value: ['AU', 'GB'],
|
|
2425
|
-
* },
|
|
2426
|
-
* platform_targeting: {
|
|
2427
|
-
* type: 'INCLUDE',
|
|
2428
|
-
* value: ['TBLT', 'PHON'],
|
|
2429
|
-
* },
|
|
2430
|
-
* });
|
|
2431
|
-
* ```
|
|
2432
|
-
*
|
|
2433
|
-
* @example Pause a campaign (alternatively, use pause() method)
|
|
2434
|
-
* ```typescript
|
|
2435
|
-
* const campaign = await client.campaigns.update('my-account', '12345', {
|
|
2436
|
-
* is_active: false,
|
|
2437
|
-
* });
|
|
2438
|
-
* ```
|
|
2439
2424
|
*/
|
|
2440
2425
|
update(accountId: string, campaignId: string, updates: UpdateCampaignRequest): Promise<Campaign>;
|
|
2441
2426
|
/**
|
|
2442
2427
|
* Delete a campaign
|
|
2443
|
-
*
|
|
2444
|
-
* @param accountId - Account ID
|
|
2445
|
-
* @param campaignId - Campaign ID
|
|
2446
|
-
*
|
|
2447
|
-
* @example
|
|
2448
|
-
* ```typescript
|
|
2449
|
-
* await client.campaigns.delete('my-account', '12345');
|
|
2450
|
-
* ```
|
|
2451
2428
|
*/
|
|
2452
2429
|
delete(accountId: string, campaignId: string): Promise<void>;
|
|
2453
2430
|
/**
|
|
2454
2431
|
* Duplicate a campaign
|
|
2455
2432
|
*
|
|
2456
|
-
* Creates a copy of an existing campaign with a new name.
|
|
2457
|
-
*
|
|
2458
2433
|
* @param accountId - Account ID
|
|
2459
2434
|
* @param campaignId - Campaign ID to duplicate
|
|
2460
|
-
* @param
|
|
2461
|
-
*
|
|
2462
|
-
* @example
|
|
2463
|
-
* ```typescript
|
|
2464
|
-
* const newCampaign = await client.campaigns.duplicate(
|
|
2465
|
-
* 'my-account',
|
|
2466
|
-
* '12345',
|
|
2467
|
-
* 'My Campaign - Copy'
|
|
2468
|
-
* );
|
|
2469
|
-
* ```
|
|
2435
|
+
* @param request - Duplication request with optional name and settings
|
|
2436
|
+
* @param destinationAccount - Optional destination account ID for cross-account duplication
|
|
2470
2437
|
*/
|
|
2471
|
-
duplicate(accountId: string, campaignId: string,
|
|
2438
|
+
duplicate(accountId: string, campaignId: string, request: DuplicateCampaignRequest, destinationAccount?: string): Promise<Campaign>;
|
|
2472
2439
|
/**
|
|
2473
2440
|
* Pause a campaign
|
|
2474
|
-
*
|
|
2475
|
-
* @param accountId - Account ID
|
|
2476
|
-
* @param campaignId - Campaign ID
|
|
2477
|
-
*
|
|
2478
|
-
* @example
|
|
2479
|
-
* ```typescript
|
|
2480
|
-
* await client.campaigns.pause('my-account', '12345');
|
|
2481
|
-
* ```
|
|
2482
2441
|
*/
|
|
2483
2442
|
pause(accountId: string, campaignId: string): Promise<Campaign>;
|
|
2484
2443
|
/**
|
|
2485
2444
|
* Unpause (resume) a campaign
|
|
2486
|
-
*
|
|
2487
|
-
* @param accountId - Account ID
|
|
2488
|
-
* @param campaignId - Campaign ID
|
|
2489
|
-
*
|
|
2490
|
-
* @example
|
|
2491
|
-
* ```typescript
|
|
2492
|
-
* await client.campaigns.unpause('my-account', '12345');
|
|
2493
|
-
* ```
|
|
2494
2445
|
*/
|
|
2495
2446
|
unpause(accountId: string, campaignId: string): Promise<Campaign>;
|
|
2496
2447
|
/**
|
|
2497
2448
|
* Bulk update multiple campaigns
|
|
2498
|
-
*
|
|
2499
|
-
* @param accountId - Account ID
|
|
2500
|
-
* @param updates - Array of campaign updates
|
|
2501
|
-
*
|
|
2502
|
-
* @example
|
|
2503
|
-
* ```typescript
|
|
2504
|
-
* await client.campaigns.bulkUpdate('my-account', {
|
|
2505
|
-
* campaigns: [
|
|
2506
|
-
* { campaign_id: '12345', update: { is_active: false } },
|
|
2507
|
-
* { campaign_id: '12346', update: { is_active: false } },
|
|
2508
|
-
* ],
|
|
2509
|
-
* });
|
|
2510
|
-
* ```
|
|
2511
2449
|
*/
|
|
2512
2450
|
bulkUpdate(accountId: string, updates: BulkCampaignUpdateRequest): Promise<CampaignListResponse>;
|
|
2513
2451
|
/**
|
|
2514
|
-
* Patch a campaign
|
|
2452
|
+
* Patch a campaign
|
|
2515
2453
|
*
|
|
2516
2454
|
* @param accountId - Account ID
|
|
2517
2455
|
* @param campaignId - Campaign ID
|
|
2518
|
-
* @param
|
|
2519
|
-
* @param patches - Patch operations
|
|
2520
|
-
*
|
|
2521
|
-
* @example
|
|
2522
|
-
* ```typescript
|
|
2523
|
-
* await client.campaigns.patch('my-account', '12345', 'publisher_targeting', [
|
|
2524
|
-
* { op: 'ADD', path: '/value', value: ['pub-123'] },
|
|
2525
|
-
* ]);
|
|
2526
|
-
* ```
|
|
2456
|
+
* @param patch - Patch operation
|
|
2527
2457
|
*/
|
|
2528
|
-
patch(accountId: string, campaignId: string,
|
|
2458
|
+
patch(accountId: string, campaignId: string, patch: CampaignPatchRequest): Promise<Campaign>;
|
|
2529
2459
|
/**
|
|
2530
2460
|
* Get all campaigns across a network
|
|
2531
2461
|
*
|
|
2532
2462
|
* @param networkAccountId - Network account ID
|
|
2533
|
-
*
|
|
2534
|
-
* @example
|
|
2535
|
-
* ```typescript
|
|
2536
|
-
* const { results } = await client.campaigns.listNetwork('my-network');
|
|
2537
|
-
* ```
|
|
2538
2463
|
*/
|
|
2539
|
-
listNetwork(networkAccountId: string): Promise<
|
|
2464
|
+
listNetwork(networkAccountId: string): Promise<CampaignBaseListResponse>;
|
|
2540
2465
|
/**
|
|
2541
2466
|
* Estimate campaign reach
|
|
2542
|
-
*
|
|
2543
|
-
* Get estimated impressions, clicks, and reach for a campaign configuration.
|
|
2544
|
-
*
|
|
2545
|
-
* @param accountId - Account ID
|
|
2546
|
-
* @param params - Targeting and budget parameters
|
|
2547
|
-
*
|
|
2548
|
-
* @example
|
|
2549
|
-
* ```typescript
|
|
2550
|
-
* const estimate = await client.campaigns.estimateReach('my-account', {
|
|
2551
|
-
* country_targeting: ['US'],
|
|
2552
|
-
* platform_targeting: ['DESK', 'PHON'],
|
|
2553
|
-
* daily_cap: 100,
|
|
2554
|
-
* cpc: 0.50,
|
|
2555
|
-
* });
|
|
2556
|
-
* console.log('Estimated clicks:', estimate.estimated_clicks);
|
|
2557
|
-
* ```
|
|
2558
2467
|
*/
|
|
2559
2468
|
estimateReach(accountId: string, params: CampaignReachEstimatorRequest): Promise<CampaignReachEstimatorResponse>;
|
|
2560
2469
|
/**
|
|
2561
2470
|
* Get publisher targeting whitelist for a campaign
|
|
2562
|
-
*
|
|
2563
|
-
* Returns the list of publishers that are whitelisted for this campaign.
|
|
2564
|
-
*
|
|
2565
|
-
* @param accountId - Account ID
|
|
2566
|
-
* @param campaignId - Campaign ID
|
|
2567
|
-
*
|
|
2568
|
-
* @example
|
|
2569
|
-
* ```typescript
|
|
2570
|
-
* const whitelist = await client.campaigns.getTargetingWhitelist('my-account', '12345');
|
|
2571
|
-
* console.log('Whitelisted publishers:', whitelist.value);
|
|
2572
|
-
* ```
|
|
2573
2471
|
*/
|
|
2574
2472
|
getTargetingWhitelist(accountId: string, campaignId: string): Promise<CampaignTargetingCollection>;
|
|
2575
2473
|
}
|
|
@@ -2628,22 +2526,26 @@ declare class ItemsAPI {
|
|
|
2628
2526
|
*/
|
|
2629
2527
|
get(accountId: string, campaignId: string, itemId: string): Promise<CampaignItem>;
|
|
2630
2528
|
/**
|
|
2631
|
-
* Create a new item (ad) in a campaign
|
|
2529
|
+
* Create a new item (static ad) in a campaign
|
|
2530
|
+
*
|
|
2531
|
+
* Only the `url` field is accepted. The item is created with a status of CRAWLING
|
|
2532
|
+
* (read-only). Poll until the status changes to RUNNING or NEED_TO_EDIT, then
|
|
2533
|
+
* use `update()` to modify fields.
|
|
2534
|
+
*
|
|
2535
|
+
* For creating items with more fields upfront, or for motion ads,
|
|
2536
|
+
* use `bulkCreateAcrossCampaigns()` instead.
|
|
2632
2537
|
*
|
|
2633
2538
|
* @param accountId - Account ID
|
|
2634
2539
|
* @param campaignId - Campaign ID
|
|
2635
|
-
* @param item - Item data
|
|
2540
|
+
* @param item - Item data (only `url` is accepted)
|
|
2636
2541
|
*
|
|
2637
2542
|
* @example
|
|
2638
2543
|
* ```typescript
|
|
2639
2544
|
* const item = await client.items.create('my-account', '12345', {
|
|
2640
2545
|
* url: 'https://example.com/landing-page',
|
|
2641
|
-
* title: 'Check Out Our Amazing Product!',
|
|
2642
|
-
* thumbnail_url: 'https://example.com/image.jpg',
|
|
2643
|
-
* description: 'Learn more about our product',
|
|
2644
|
-
* cta: { cta_type: 'LEARN_MORE' },
|
|
2645
2546
|
* });
|
|
2646
|
-
*
|
|
2547
|
+
* // Item starts in CRAWLING state - poll until status changes
|
|
2548
|
+
* console.log('Created item:', item.id, item.status); // CRAWLING
|
|
2647
2549
|
* ```
|
|
2648
2550
|
*/
|
|
2649
2551
|
create(accountId: string, campaignId: string, item: CreateItemRequest): Promise<CampaignItem>;
|
|
@@ -2728,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
|
|
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: '
|
|
2759
|
-
* { campaign_id: '12346', url: '
|
|
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: (
|
|
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<
|
|
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.
|
|
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<
|
|
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<
|
|
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<
|
|
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<
|
|
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<
|
|
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:
|
|
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
|
-
|
|
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:
|
|
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: '
|
|
3530
|
-
* category: '
|
|
3531
|
-
*
|
|
3532
|
-
*
|
|
3533
|
-
*
|
|
3534
|
-
*
|
|
3535
|
-
*
|
|
3536
|
-
* }
|
|
3537
|
-
* ],
|
|
3538
|
-
* effect: {
|
|
3539
|
-
* type: 'DYNAMIC_VALUE',
|
|
3540
|
-
* value: null,
|
|
3541
|
-
* currency: 'USD',
|
|
3542
|
-
* value_parameter: 'order_total'
|
|
3103
|
+
* type: 'BASIC',
|
|
3104
|
+
* category: 'MAKE_PURCHASE',
|
|
3105
|
+
* condition: {
|
|
3106
|
+
* property: 'URL',
|
|
3107
|
+
* predicate: 'CONTAINS',
|
|
3108
|
+
* value: '/thank-you',
|
|
3109
|
+
* children: [],
|
|
3543
3110
|
* },
|
|
3544
|
-
*
|
|
3545
|
-
*
|
|
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
|
-
*
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
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 };
|