@zernio/node 0.2.718 → 0.2.719
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 +4 -0
- package/dist/index.d.mts +262 -12
- package/dist/index.d.ts +262 -12
- package/dist/index.js +37 -1
- package/dist/index.mjs +37 -1
- package/package.json +1 -1
- package/src/client.ts +16 -0
- package/src/generated/sdk.gen.ts +75 -17
- package/src/generated/types.gen.ts +265 -11
|
@@ -1858,6 +1858,50 @@ export type CampaignAnalyticsResponse = {
|
|
|
1858
1858
|
};
|
|
1859
1859
|
};
|
|
1860
1860
|
|
|
1861
|
+
/**
|
|
1862
|
+
* A Google campaign's current bidding, mapped onto the same triplet PUT /v1/ads/campaigns/{campaignId} accepts.
|
|
1863
|
+
*/
|
|
1864
|
+
export type CampaignBidding = {
|
|
1865
|
+
/**
|
|
1866
|
+
* campaign.advertising_channel_type. COST_CAP's underlying Google field differs by channel; see bidStrategy on PUT.
|
|
1867
|
+
*/
|
|
1868
|
+
channel?: 'SEARCH' | 'DISPLAY';
|
|
1869
|
+
/**
|
|
1870
|
+
* Google's raw enum: MAXIMIZE_CONVERSIONS, TARGET_CPA, MAXIMIZE_CONVERSION_VALUE, TARGET_ROAS, TARGET_SPEND, MANUAL_CPC, TARGET_IMPRESSION_SHARE, or another Google adds later.
|
|
1871
|
+
*/
|
|
1872
|
+
biddingStrategyType?: string;
|
|
1873
|
+
/**
|
|
1874
|
+
* Null when the campaign is on a strategy PUT does not model (Manual CPC, Target Impression Share, ...); show biddingStrategyType instead in that case.
|
|
1875
|
+
*/
|
|
1876
|
+
bidSpec?: {
|
|
1877
|
+
bidStrategy?: BidStrategy;
|
|
1878
|
+
/**
|
|
1879
|
+
* Whole currency units. Present for COST_CAP and LOWEST_COST_WITH_BID_CAP, and omitted when the campaign is on a bare TARGET_SPEND with no CPC ceiling set.
|
|
1880
|
+
*/
|
|
1881
|
+
bidAmount?: number;
|
|
1882
|
+
/**
|
|
1883
|
+
* Decimal ROAS multiplier (2.0 = 2.0x). Present for LOWEST_COST_WITH_MIN_ROAS.
|
|
1884
|
+
*/
|
|
1885
|
+
roasAverageFloor?: number;
|
|
1886
|
+
/**
|
|
1887
|
+
* Present alone (bidStrategy omitted) when the campaign is on a portfolio strategy; see portfolio.
|
|
1888
|
+
*/
|
|
1889
|
+
portfolioBidStrategyId?: string;
|
|
1890
|
+
} | null;
|
|
1891
|
+
/**
|
|
1892
|
+
* Set only when the campaign is on a portfolio bid strategy (campaign.bidding_strategy); null otherwise.
|
|
1893
|
+
*/
|
|
1894
|
+
portfolio?: {
|
|
1895
|
+
id?: string;
|
|
1896
|
+
name?: string;
|
|
1897
|
+
} | null;
|
|
1898
|
+
};
|
|
1899
|
+
|
|
1900
|
+
/**
|
|
1901
|
+
* campaign.advertising_channel_type. COST_CAP's underlying Google field differs by channel; see bidStrategy on PUT.
|
|
1902
|
+
*/
|
|
1903
|
+
export type channel2 = 'SEARCH' | 'DISPLAY';
|
|
1904
|
+
|
|
1861
1905
|
/**
|
|
1862
1906
|
* Who a comment automation answers. Instagram only - Meta exposes the follow
|
|
1863
1907
|
* relationship on no other platform, and only for people who have MESSAGED the
|
|
@@ -5003,6 +5047,51 @@ export type errorCategory = 'auth_expired' | 'user_content' | 'user_abuse' | 'ac
|
|
|
5003
5047
|
*/
|
|
5004
5048
|
export type errorSource = 'user' | 'platform' | 'system';
|
|
5005
5049
|
|
|
5050
|
+
/**
|
|
5051
|
+
* A Google Ads portfolio bid strategy: a named bidding strategy shared across campaigns, with its R.130 report metrics over the queried date range.
|
|
5052
|
+
*/
|
|
5053
|
+
export type PortfolioBidStrategy = {
|
|
5054
|
+
/**
|
|
5055
|
+
* Numeric bid strategy id; pass as portfolioBidStrategyId or in the {strategyId} path.
|
|
5056
|
+
*/
|
|
5057
|
+
id?: string;
|
|
5058
|
+
name?: string;
|
|
5059
|
+
type?: 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
|
|
5060
|
+
/**
|
|
5061
|
+
* ENABLED or REMOVED.
|
|
5062
|
+
*/
|
|
5063
|
+
status?: string;
|
|
5064
|
+
/**
|
|
5065
|
+
* Number of campaigns currently attached.
|
|
5066
|
+
*/
|
|
5067
|
+
campaignCount?: number;
|
|
5068
|
+
clicks?: number;
|
|
5069
|
+
/**
|
|
5070
|
+
* Cost in the account's currency units (converted from micros).
|
|
5071
|
+
*/
|
|
5072
|
+
cost?: number;
|
|
5073
|
+
/**
|
|
5074
|
+
* Cost per conversion in the account's currency units.
|
|
5075
|
+
*/
|
|
5076
|
+
costPerConversion?: number;
|
|
5077
|
+
impressions?: number;
|
|
5078
|
+
/**
|
|
5079
|
+
* Average CPC in the account's currency units.
|
|
5080
|
+
*/
|
|
5081
|
+
averageCpc?: number;
|
|
5082
|
+
conversions?: number;
|
|
5083
|
+
/**
|
|
5084
|
+
* Current target, in the account's currency units. Null for a ROAS-family type (TARGET_ROAS, MAXIMIZE_CONVERSION_VALUE), or a Maximize type with no target set. Pre-fills the edit form's target field.
|
|
5085
|
+
*/
|
|
5086
|
+
targetCpa?: (number) | null;
|
|
5087
|
+
/**
|
|
5088
|
+
* Current target as a decimal multiplier (2.0 = 2.0x). Null for a CPA-family type (TARGET_CPA, MAXIMIZE_CONVERSIONS), or a Maximize type with no target set.
|
|
5089
|
+
*/
|
|
5090
|
+
targetRoas?: (number) | null;
|
|
5091
|
+
};
|
|
5092
|
+
|
|
5093
|
+
export type type8 = 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
|
|
5094
|
+
|
|
5006
5095
|
export type Post = {
|
|
5007
5096
|
_id?: string;
|
|
5008
5097
|
userId?: (string | User);
|
|
@@ -6271,7 +6360,7 @@ export type UploadedFile = {
|
|
|
6271
6360
|
mimeType?: string;
|
|
6272
6361
|
};
|
|
6273
6362
|
|
|
6274
|
-
export type
|
|
6363
|
+
export type type9 = 'image' | 'video' | 'document';
|
|
6275
6364
|
|
|
6276
6365
|
export type UploadTokenResponse = {
|
|
6277
6366
|
token?: string;
|
|
@@ -6757,7 +6846,7 @@ export type Verification = {
|
|
|
6757
6846
|
|
|
6758
6847
|
export type status11 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
|
|
6759
6848
|
|
|
6760
|
-
export type
|
|
6849
|
+
export type channel3 = 'sms';
|
|
6761
6850
|
|
|
6762
6851
|
/**
|
|
6763
6852
|
* Individual webhook configuration for receiving real-time notifications
|
|
@@ -9350,7 +9439,7 @@ export type WhatsAppTemplateButton = {
|
|
|
9350
9439
|
navigate_screen?: string;
|
|
9351
9440
|
};
|
|
9352
9441
|
|
|
9353
|
-
export type
|
|
9442
|
+
export type type10 = 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
|
|
9354
9443
|
|
|
9355
9444
|
/**
|
|
9356
9445
|
* Required when type is otp
|
|
@@ -9512,7 +9601,7 @@ export type WorkflowNode = {
|
|
|
9512
9601
|
* integrations (webhook, ai, handoff, start_call).
|
|
9513
9602
|
*
|
|
9514
9603
|
*/
|
|
9515
|
-
export type
|
|
9604
|
+
export type type11 = 'trigger' | 'send_message' | 'wait_for_reply' | 'condition' | 'set_variable' | 'delay' | 'webhook' | 'ai' | 'handoff' | 'start_call' | 'a_b_split' | 'set_field' | 'enroll_sequence' | 'add_tag' | 'remove_tag' | 'end';
|
|
9516
9605
|
|
|
9517
9606
|
/**
|
|
9518
9607
|
* A single X API operation with its per-call price and the Zernio platform methods that trigger it.
|
|
@@ -9648,7 +9737,7 @@ export type XArticleBlock = {
|
|
|
9648
9737
|
entity_ranges?: Array<XArticleEntityRange>;
|
|
9649
9738
|
};
|
|
9650
9739
|
|
|
9651
|
-
export type
|
|
9740
|
+
export type type12 = 'unstyled' | 'header-one' | 'header-two' | 'header-three' | 'unordered-list-item' | 'ordered-list-item' | 'blockquote' | 'atomic';
|
|
9652
9741
|
|
|
9653
9742
|
/**
|
|
9654
9743
|
* X's snake_case content-state shape. Standard DraftJS camelCase fields such as entityMap, inlineStyleRanges, and entityRanges are rejected.
|
|
@@ -9727,7 +9816,7 @@ export type XArticleEntity = {
|
|
|
9727
9816
|
|
|
9728
9817
|
export type mutability = 'immutable' | 'mutable' | 'segmented';
|
|
9729
9818
|
|
|
9730
|
-
export type
|
|
9819
|
+
export type type13 = 'divider' | 'latex';
|
|
9731
9820
|
|
|
9732
9821
|
/**
|
|
9733
9822
|
* The referenced entity must exist, and offset plus length must not exceed the containing block's text length.
|
|
@@ -30428,6 +30517,111 @@ export type GetAdsSearchTermsError = (ErrorResponse | {
|
|
|
30428
30517
|
error?: string;
|
|
30429
30518
|
} | unknown);
|
|
30430
30519
|
|
|
30520
|
+
export type ListBidStrategiesData = {
|
|
30521
|
+
query: {
|
|
30522
|
+
/**
|
|
30523
|
+
* Google ads SocialAccount id.
|
|
30524
|
+
*/
|
|
30525
|
+
accountId: string;
|
|
30526
|
+
/**
|
|
30527
|
+
* Numeric Google Ads customer id (no dashes). Defaults to the account's connected customer.
|
|
30528
|
+
*/
|
|
30529
|
+
customerId?: string;
|
|
30530
|
+
/**
|
|
30531
|
+
* Defaults to 30 days ago.
|
|
30532
|
+
*/
|
|
30533
|
+
fromDate?: string;
|
|
30534
|
+
/**
|
|
30535
|
+
* Defaults to today.
|
|
30536
|
+
*/
|
|
30537
|
+
toDate?: string;
|
|
30538
|
+
};
|
|
30539
|
+
};
|
|
30540
|
+
|
|
30541
|
+
export type ListBidStrategiesResponse = ({
|
|
30542
|
+
customerId?: string;
|
|
30543
|
+
/**
|
|
30544
|
+
* Account currency code; money fields are in this currency's units.
|
|
30545
|
+
*/
|
|
30546
|
+
currency?: string;
|
|
30547
|
+
strategies?: Array<PortfolioBidStrategy>;
|
|
30548
|
+
});
|
|
30549
|
+
|
|
30550
|
+
export type ListBidStrategiesError = (ErrorResponse | {
|
|
30551
|
+
error?: string;
|
|
30552
|
+
} | unknown);
|
|
30553
|
+
|
|
30554
|
+
export type CreateBidStrategyData = {
|
|
30555
|
+
body: {
|
|
30556
|
+
/**
|
|
30557
|
+
* Google ads SocialAccount id.
|
|
30558
|
+
*/
|
|
30559
|
+
accountId: string;
|
|
30560
|
+
/**
|
|
30561
|
+
* Numeric Google Ads customer id (no dashes). Defaults to the account's connected customer.
|
|
30562
|
+
*/
|
|
30563
|
+
customerId?: string;
|
|
30564
|
+
name: string;
|
|
30565
|
+
type: 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
|
|
30566
|
+
/**
|
|
30567
|
+
* Required when type is TARGET_CPA, in the account's currency units.
|
|
30568
|
+
*/
|
|
30569
|
+
targetCpa?: number;
|
|
30570
|
+
/**
|
|
30571
|
+
* Required when type is TARGET_ROAS; a multiplier (2.0 = 2.0x).
|
|
30572
|
+
*/
|
|
30573
|
+
targetRoas?: number;
|
|
30574
|
+
};
|
|
30575
|
+
};
|
|
30576
|
+
|
|
30577
|
+
export type CreateBidStrategyResponse = ({
|
|
30578
|
+
strategy?: {
|
|
30579
|
+
customerId?: string;
|
|
30580
|
+
/**
|
|
30581
|
+
* Numeric bid strategy id; pass as portfolioBidStrategyId or in the {strategyId} path.
|
|
30582
|
+
*/
|
|
30583
|
+
id?: string;
|
|
30584
|
+
resourceName?: string;
|
|
30585
|
+
};
|
|
30586
|
+
});
|
|
30587
|
+
|
|
30588
|
+
export type CreateBidStrategyError = (unknown | {
|
|
30589
|
+
error?: string;
|
|
30590
|
+
});
|
|
30591
|
+
|
|
30592
|
+
export type UpdateBidStrategyData = {
|
|
30593
|
+
body: {
|
|
30594
|
+
/**
|
|
30595
|
+
* Google ads SocialAccount id.
|
|
30596
|
+
*/
|
|
30597
|
+
accountId: string;
|
|
30598
|
+
/**
|
|
30599
|
+
* Numeric Google Ads customer id (no dashes). Defaults to the account's connected customer.
|
|
30600
|
+
*/
|
|
30601
|
+
customerId?: string;
|
|
30602
|
+
name?: string;
|
|
30603
|
+
type?: 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
|
|
30604
|
+
targetCpa?: number;
|
|
30605
|
+
targetRoas?: number;
|
|
30606
|
+
};
|
|
30607
|
+
path: {
|
|
30608
|
+
/**
|
|
30609
|
+
* Numeric Google Ads bid strategy id.
|
|
30610
|
+
*/
|
|
30611
|
+
strategyId: string;
|
|
30612
|
+
};
|
|
30613
|
+
};
|
|
30614
|
+
|
|
30615
|
+
export type UpdateBidStrategyResponse = ({
|
|
30616
|
+
strategy?: {
|
|
30617
|
+
customerId?: string;
|
|
30618
|
+
};
|
|
30619
|
+
});
|
|
30620
|
+
|
|
30621
|
+
export type UpdateBidStrategyError = (ErrorResponse | {
|
|
30622
|
+
error?: string;
|
|
30623
|
+
} | unknown);
|
|
30624
|
+
|
|
30431
30625
|
export type ListLocalServicesLeadsData = {
|
|
30432
30626
|
query: {
|
|
30433
30627
|
/**
|
|
@@ -30777,17 +30971,21 @@ export type CreateAdCampaignData = {
|
|
|
30777
30971
|
budgetType?: 'daily' | 'lifetime';
|
|
30778
30972
|
status?: 'ACTIVE' | 'PAUSED';
|
|
30779
30973
|
/**
|
|
30780
|
-
* Campaign bid strategy. Meta stores `bid_strategy` alongside the budget, so this REQUIRES `budgetAmount` + `budgetType` on the same request; sending it without a campaign budget is a 400. A campaign carrying a strategy without its `bid_amount` makes every ad set created under it fail with an error that names the ad set (code 100, subcode 1815857), so the bad state is rejected up front rather than accepted. To bid at ad-set level, set the strategy there instead.
|
|
30974
|
+
* Campaign bid strategy. Meta stores `bid_strategy` alongside the budget, so this REQUIRES `budgetAmount` + `budgetType` on the same request; sending it without a campaign budget is a 400. A campaign carrying a strategy without its `bid_amount` makes every ad set created under it fail with an error that names the ad set (code 100, subcode 1815857), so the bad state is rejected up front rather than accepted. To bid at ad-set level on Meta, set the strategy there instead. On Google: LOWEST_COST_WITHOUT_CAP = Maximize Conversions, COST_CAP + bidAmount = Target CPA, LOWEST_COST_WITH_MIN_ROAS + roasAverageFloor = Target ROAS, LOWEST_COST_WITH_BID_CAP + bidAmount = Maximize Clicks with a CPC ceiling; portfolioBidStrategyId attaches a portfolio strategy instead.
|
|
30781
30975
|
*/
|
|
30782
30976
|
bidStrategy?: 'LOWEST_COST_WITHOUT_CAP' | 'LOWEST_COST_WITH_BID_CAP' | 'COST_CAP' | 'LOWEST_COST_WITH_MIN_ROAS';
|
|
30783
30977
|
/**
|
|
30784
|
-
* Whole currency units (USD: 5 = $5.00). Required for LOWEST_COST_WITH_BID_CAP and COST_CAP; ignored otherwise.
|
|
30978
|
+
* Whole currency units (USD: 5 = $5.00). Required for LOWEST_COST_WITH_BID_CAP and COST_CAP; ignored otherwise. On Meta, validated here but NOT stored: the campaign object has no bid_amount field, only bid_strategy lives on it, and the amount takes effect once an ad set joins this campaign (existingCampaignId on POST /v1/ads/create) and supplies its own bidAmount there. On Google, stored directly on the campaign's bidding strategy.
|
|
30785
30979
|
*/
|
|
30786
30980
|
bidAmount?: number;
|
|
30787
30981
|
/**
|
|
30788
30982
|
* Decimal ROAS multiplier (2.0 = 2.0x). Required for LOWEST_COST_WITH_MIN_ROAS.
|
|
30789
30983
|
*/
|
|
30790
30984
|
roasAverageFloor?: number;
|
|
30985
|
+
/**
|
|
30986
|
+
* Google only. Attach an existing portfolio bid strategy (numeric id from GET /v1/ads/bid-strategies) to the new campaign instead of a standard one. Exclusive with bidStrategy.
|
|
30987
|
+
*/
|
|
30988
|
+
portfolioBidStrategyId?: string;
|
|
30791
30989
|
};
|
|
30792
30990
|
headers?: {
|
|
30793
30991
|
/**
|
|
@@ -30850,6 +31048,37 @@ export type UpdateAdCampaignStatusError = (unknown | {
|
|
|
30850
31048
|
error?: string;
|
|
30851
31049
|
});
|
|
30852
31050
|
|
|
31051
|
+
export type GetCampaignBiddingData = {
|
|
31052
|
+
path: {
|
|
31053
|
+
/**
|
|
31054
|
+
* Numeric Google platform campaign id.
|
|
31055
|
+
*/
|
|
31056
|
+
campaignId: string;
|
|
31057
|
+
};
|
|
31058
|
+
query: {
|
|
31059
|
+
/**
|
|
31060
|
+
* Zernio Google Ads SocialAccount id: resolves the customer id + refresh token.
|
|
31061
|
+
*/
|
|
31062
|
+
accountId: string;
|
|
31063
|
+
/**
|
|
31064
|
+
* Numeric Google Ads customer id (no dashes). Required when the connection has multiple Google Ads accounts; optional (and inferred) when it has only one.
|
|
31065
|
+
*/
|
|
31066
|
+
customerId?: string;
|
|
31067
|
+
/**
|
|
31068
|
+
* Required: campaign IDs are not globally unique. Only "google" is supported today.
|
|
31069
|
+
*/
|
|
31070
|
+
platform: 'google';
|
|
31071
|
+
};
|
|
31072
|
+
};
|
|
31073
|
+
|
|
31074
|
+
export type GetCampaignBiddingResponse = (({
|
|
31075
|
+
campaignId?: string;
|
|
31076
|
+
} & CampaignBidding));
|
|
31077
|
+
|
|
31078
|
+
export type GetCampaignBiddingError = (unknown | {
|
|
31079
|
+
error?: string;
|
|
31080
|
+
});
|
|
31081
|
+
|
|
30853
31082
|
export type UpdateAdCampaignData = {
|
|
30854
31083
|
body: {
|
|
30855
31084
|
/**
|
|
@@ -30861,7 +31090,7 @@ export type UpdateAdCampaignData = {
|
|
|
30861
31090
|
*/
|
|
30862
31091
|
accountId?: string;
|
|
30863
31092
|
/**
|
|
30864
|
-
* **Meta + Google.** On Meta, the campaign default that ad sets inherit unless they override it. On Google, the campaign's own bidding strategy.
|
|
31093
|
+
* **Meta + Google.** On Meta, the campaign default that ad sets inherit unless they override it. On Google, the campaign's own bidding strategy. On Google: LOWEST_COST_WITHOUT_CAP = Maximize Conversions, COST_CAP + bidAmount = Target CPA, LOWEST_COST_WITH_MIN_ROAS + roasAverageFloor = Target ROAS, LOWEST_COST_WITH_BID_CAP + bidAmount = Maximize Clicks with a CPC ceiling; portfolioBidStrategyId attaches a portfolio strategy instead.
|
|
30865
31094
|
*/
|
|
30866
31095
|
bidStrategy?: (BidStrategy);
|
|
30867
31096
|
/**
|
|
@@ -30872,6 +31101,10 @@ export type UpdateAdCampaignData = {
|
|
|
30872
31101
|
* **Google only.** Decimal ROAS multiplier (2.0 = 2.0x), required for LOWEST_COST_WITH_MIN_ROAS.
|
|
30873
31102
|
*/
|
|
30874
31103
|
roasAverageFloor?: number;
|
|
31104
|
+
/**
|
|
31105
|
+
* **Google only.** Attach an existing portfolio bid strategy (numeric id from GET /v1/ads/bid-strategies) instead of setting bidStrategy. Exclusive with bidStrategy.
|
|
31106
|
+
*/
|
|
31107
|
+
portfolioBidStrategyId?: string;
|
|
30875
31108
|
/**
|
|
30876
31109
|
* **Meta only.** The CBO budget.
|
|
30877
31110
|
*/
|
|
@@ -30914,6 +31147,10 @@ export type UpdateAdCampaignResponse = ({
|
|
|
30914
31147
|
bidStrategy?: BidStrategy;
|
|
30915
31148
|
bidAmount?: number;
|
|
30916
31149
|
roasAverageFloor?: number;
|
|
31150
|
+
/**
|
|
31151
|
+
* Google only. Echoed back, but NOT mirrored onto local Ad documents (no column for it yet).
|
|
31152
|
+
*/
|
|
31153
|
+
portfolioBidStrategyId?: string;
|
|
30917
31154
|
platformSpecificData?: {
|
|
30918
31155
|
[key: string]: unknown;
|
|
30919
31156
|
};
|
|
@@ -31803,8 +32040,9 @@ export type UpdateAdData = {
|
|
|
31803
32040
|
type?: 'daily' | 'lifetime';
|
|
31804
32041
|
};
|
|
31805
32042
|
/**
|
|
31806
|
-
* Meta + TikTok (demographics/interests), Google (keyword
|
|
31807
|
-
* and LinkedIn (geo countries). Pinterest / X
|
|
32043
|
+
* Meta + TikTok (demographics/interests), Google (keyword and device
|
|
32044
|
+
* bid adjustment edits only), and LinkedIn (geo countries). Pinterest / X
|
|
32045
|
+
* return 501.
|
|
31808
32046
|
*
|
|
31809
32047
|
*/
|
|
31810
32048
|
targeting?: {
|
|
@@ -31821,6 +32059,16 @@ export type UpdateAdData = {
|
|
|
31821
32059
|
negativeKeywords?: Array<(string | {
|
|
31822
32060
|
text: string;
|
|
31823
32061
|
matchType?: 'exact' | 'phrase' | 'broad';
|
|
32062
|
+
})>;
|
|
32063
|
+
/**
|
|
32064
|
+
* Google only. The FULL new set of device criteria for the campaign; devices not listed are excluded. Entries are a device name alone (included, no bid adjustment) or { device, bidModifier }.
|
|
32065
|
+
*/
|
|
32066
|
+
devices?: Array<('MOBILE' | 'DESKTOP' | 'TABLET' | 'CONNECTED_TV' | {
|
|
32067
|
+
device: 'MOBILE' | 'DESKTOP' | 'TABLET' | 'CONNECTED_TV';
|
|
32068
|
+
/**
|
|
32069
|
+
* Google device bid modifier, 0.1 to 10 (minus 90% to plus 900%). Omit a device to exclude it.
|
|
32070
|
+
*/
|
|
32071
|
+
bidModifier?: number;
|
|
31824
32072
|
})>;
|
|
31825
32073
|
ageMin?: number;
|
|
31826
32074
|
ageMax?: number;
|
|
@@ -34907,6 +35155,8 @@ export type CreateStandaloneAdData = {
|
|
|
34907
35155
|
*
|
|
34908
35156
|
* OpenAI Ads: required on every ad group via this flat field, the only channel it supports (`platformSpecificData` is Meta/LinkedIn-only and returns 400 for OpenAI). No auto-bid option exists; send `LOWEST_COST_WITH_BID_CAP` or `COST_CAP` together with `bidAmount`, omitting it returns 400.
|
|
34909
35157
|
*
|
|
35158
|
+
* Google (not deprecated there, this shared flat field is Google's only shape): applied to the campaign this call creates. On Google: LOWEST_COST_WITHOUT_CAP = Maximize Conversions, COST_CAP + bidAmount = Target CPA, LOWEST_COST_WITH_MIN_ROAS + roasAverageFloor = Target ROAS, LOWEST_COST_WITH_BID_CAP + bidAmount = Maximize Clicks with a CPC ceiling; portfolioBidStrategyId attaches a portfolio strategy instead. Omitted, the campaign falls back to a goal-based default.
|
|
35159
|
+
*
|
|
34910
35160
|
* @deprecated
|
|
34911
35161
|
*/
|
|
34912
35162
|
bidStrategy?: (BidStrategy);
|
|
@@ -34939,6 +35189,10 @@ export type CreateStandaloneAdData = {
|
|
|
34939
35189
|
* @deprecated
|
|
34940
35190
|
*/
|
|
34941
35191
|
roasAverageFloor?: number;
|
|
35192
|
+
/**
|
|
35193
|
+
* Google only. Attach an existing portfolio bid strategy (numeric id from GET /v1/ads/bid-strategies) to the new campaign instead of a standard one. Exclusive with bidStrategy.
|
|
35194
|
+
*/
|
|
35195
|
+
portfolioBidStrategyId?: string;
|
|
34942
35196
|
/**
|
|
34943
35197
|
* Meta only (facebook, instagram; other platforms return 400). Value rule set
|
|
34944
35198
|
* to attach to the new ad set, from `/v1/ads/value-rule-sets`. Attachment is
|