@getlatedev/node 0.2.1217 → 0.2.1219
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +48 -4
- package/dist/index.d.ts +48 -4
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/src/generated/sdk.gen.ts +20 -0
- package/src/generated/types.gen.ts +48 -4
package/dist/index.d.mts
CHANGED
|
@@ -42272,6 +42272,44 @@ type UpdateAdSetData = {
|
|
|
42272
42272
|
*/
|
|
42273
42273
|
interestsBehaviors?: boolean;
|
|
42274
42274
|
};
|
|
42275
|
+
/**
|
|
42276
|
+
* Meta only (400 elsewhere). Manual placements, same object and enums as `placements` on
|
|
42277
|
+
* POST /v1/ads/create. Sending an object REPLACES the ad set's current placement set
|
|
42278
|
+
* (`publisher_platforms`, every `*_positions` list and `device_platforms`); a position
|
|
42279
|
+
* list you leave out is removed. `null` removes every placement key so Meta returns to
|
|
42280
|
+
* automatic (Advantage+) placements. Omit to leave placements untouched. Meta enforces
|
|
42281
|
+
* co-selection rules (e.g. a position needs its publisher platform) and its error is
|
|
42282
|
+
* returned as is. Meta may also reject `null` or a narrower set when an ad's creative
|
|
42283
|
+
* uses per-placement asset customization (`placementAssets`). An object with no
|
|
42284
|
+
* non-empty list is a 400 (send `null` instead). Cannot be combined with
|
|
42285
|
+
* `targeting.placements` (400).
|
|
42286
|
+
*
|
|
42287
|
+
*/
|
|
42288
|
+
placements?: {
|
|
42289
|
+
publisherPlatforms?: Array<('facebook' | 'instagram' | 'threads' | 'messenger' | 'audience_network' | 'whatsapp')>;
|
|
42290
|
+
facebookPositions?: Array<('feed' | 'right_hand_column' | 'marketplace' | 'video_feeds' | 'story' | 'search' | 'instream_video' | 'facebook_reels' | 'facebook_reels_overlay' | 'profile_feed' | 'notification')>;
|
|
42291
|
+
instagramPositions?: Array<('stream' | 'story' | 'explore' | 'explore_home' | 'reels' | 'profile_feed' | 'ig_search' | 'profile_reels')>;
|
|
42292
|
+
messengerPositions?: Array<('messenger_home' | 'sponsored_messages' | 'story')>;
|
|
42293
|
+
audienceNetworkPositions?: Array<('classic' | 'rewarded_video')>;
|
|
42294
|
+
threadsPositions?: Array<('threads_stream')>;
|
|
42295
|
+
whatsappPositions?: Array<('status')>;
|
|
42296
|
+
devicePlatforms?: Array<('mobile' | 'desktop')>;
|
|
42297
|
+
} | null;
|
|
42298
|
+
/**
|
|
42299
|
+
* Meta only (400 elsewhere). Targeting fields to change, same shape as the `targeting`
|
|
42300
|
+
* object on POST /v1/ads/create. Only the keys you send change: Zernio reads the ad set's
|
|
42301
|
+
* live targeting from Meta, merges these keys over it and writes the full spec back, so
|
|
42302
|
+
* everything you do not send (custom audiences, geo, age, interest groups,
|
|
42303
|
+
* `targeting_automation`) is kept. Setting any location replaces every location list.
|
|
42304
|
+
* An empty list or `gender: all` clears that key. `incomeTier` is resolved to Meta's
|
|
42305
|
+
* income segment first (422 when Meta has none). Fields Meta cannot target (LinkedIn
|
|
42306
|
+
* B2B, Google `devices`, Reddit communities and keywords) return 400 with
|
|
42307
|
+
* `param: targeting.<field>`. An empty object is a 400, and so is a
|
|
42308
|
+
* `targeting.placements` object with no non-empty list (`param: targeting.placements`). When the live targeting cannot be
|
|
42309
|
+
* read the request returns 502 and nothing is written.
|
|
42310
|
+
*
|
|
42311
|
+
*/
|
|
42312
|
+
targeting?: (TargetingSpec);
|
|
42275
42313
|
/**
|
|
42276
42314
|
* Bid cap in WHOLE currency units (USD: 5 = $5.00; JPY: 100 = ¥100). Required when
|
|
42277
42315
|
* bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. Internally converted to Meta's
|
|
@@ -42407,6 +42445,12 @@ type UpdateAdSetResponse = ({
|
|
|
42407
42445
|
platformSpecificData?: {
|
|
42408
42446
|
[key: string]: unknown;
|
|
42409
42447
|
};
|
|
42448
|
+
/**
|
|
42449
|
+
* Present when `placements` or `targeting` was sent. The ad set's full Meta targeting as written (Meta snake_case). The same snake_case object is stored as the ad set's and its ads' `targeting`.
|
|
42450
|
+
*/
|
|
42451
|
+
targeting?: {
|
|
42452
|
+
[key: string]: unknown;
|
|
42453
|
+
};
|
|
42410
42454
|
});
|
|
42411
42455
|
type UpdateAdSetError = (unknown | ErrorResponse);
|
|
42412
42456
|
type DeleteAdSetData = {
|
|
@@ -49395,9 +49439,9 @@ type SearchAdTargetingData = {
|
|
|
49395
49439
|
*/
|
|
49396
49440
|
countryCode?: string;
|
|
49397
49441
|
/**
|
|
49398
|
-
* What to search. `geo` resolves locations (scope further with `geoType`), `interest`/`behavior` resolve audience entities (`behavior` on Meta, TikTok and LinkedIn), `interestKeyword`/`hashtag` resolve TikTok additional interests and hashtags (TikTok only), `income` resolves the normalized income tiers, `language` resolves Google's targetable language_constant table (Google only), `workPosition`/`workEmployer`/`workIndustry` resolve Meta work demographics, `industry`/`jobFunction`/`seniority`/`companySize` resolve LinkedIn B2B facets (LinkedIn only). Defaults to `interest` for backward compatibility with the deprecated /v1/ads/interests alias.
|
|
49442
|
+
* What to search. `geo` resolves locations (scope further with `geoType`), `interest`/`behavior` resolve audience entities (`behavior` on Meta, TikTok and LinkedIn), `interestSuggestion` suggests interests related to the names in `q` (Meta only), `interestKeyword`/`hashtag` resolve TikTok additional interests and hashtags (TikTok only), `income` resolves the normalized income tiers, `language` resolves Google's targetable language_constant table (Google only), `workPosition`/`workEmployer`/`workIndustry` resolve Meta work demographics, `industry`/`jobFunction`/`seniority`/`companySize` resolve LinkedIn B2B facets (LinkedIn only). Defaults to `interest` for backward compatibility with the deprecated /v1/ads/interests alias.
|
|
49399
49443
|
*/
|
|
49400
|
-
dimension?: 'geo' | 'interest' | 'interestKeyword' | 'behavior' | 'hashtag' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize' | 'community' | 'conversationKeyword';
|
|
49444
|
+
dimension?: 'geo' | 'interest' | 'interestSuggestion' | 'interestKeyword' | 'behavior' | 'hashtag' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize' | 'community' | 'conversationKeyword';
|
|
49401
49445
|
/**
|
|
49402
49446
|
* Only used when `dimension=geo`. The kind of location to resolve. `all` searches every type in one relevance-ranked call. Defaults to `city`.
|
|
49403
49447
|
*/
|
|
@@ -49407,7 +49451,7 @@ type SearchAdTargetingData = {
|
|
|
49407
49451
|
*/
|
|
49408
49452
|
limit?: number;
|
|
49409
49453
|
/**
|
|
49410
|
-
* Search query. For geo, the locality name only (no region/country suffix).
|
|
49454
|
+
* Search query. For geo, the locality name only (no region/country suffix). For `interestSuggestion`, the interest names: comma-separated, or a JSON array of strings when a name contains a comma (a `q` starting with `[` is read as JSON).
|
|
49411
49455
|
*/
|
|
49412
49456
|
q: string;
|
|
49413
49457
|
};
|
|
@@ -49423,7 +49467,7 @@ type SearchAdTargetingResponse = ({
|
|
|
49423
49467
|
*/
|
|
49424
49468
|
name: string;
|
|
49425
49469
|
/**
|
|
49426
|
-
* What the result is. Equals the requested dimension (interest, interestKeyword, behavior, hashtag, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize, community, conversationKeyword), or the location level for geo (country, region, city, zip, metro, ...).
|
|
49470
|
+
* What the result is. Equals the requested dimension (interest, interestSuggestion, interestKeyword, behavior, hashtag, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize, community, conversationKeyword), or the location level for geo (country, region, city, zip, metro, ...).
|
|
49427
49471
|
*/
|
|
49428
49472
|
type: string;
|
|
49429
49473
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -42272,6 +42272,44 @@ type UpdateAdSetData = {
|
|
|
42272
42272
|
*/
|
|
42273
42273
|
interestsBehaviors?: boolean;
|
|
42274
42274
|
};
|
|
42275
|
+
/**
|
|
42276
|
+
* Meta only (400 elsewhere). Manual placements, same object and enums as `placements` on
|
|
42277
|
+
* POST /v1/ads/create. Sending an object REPLACES the ad set's current placement set
|
|
42278
|
+
* (`publisher_platforms`, every `*_positions` list and `device_platforms`); a position
|
|
42279
|
+
* list you leave out is removed. `null` removes every placement key so Meta returns to
|
|
42280
|
+
* automatic (Advantage+) placements. Omit to leave placements untouched. Meta enforces
|
|
42281
|
+
* co-selection rules (e.g. a position needs its publisher platform) and its error is
|
|
42282
|
+
* returned as is. Meta may also reject `null` or a narrower set when an ad's creative
|
|
42283
|
+
* uses per-placement asset customization (`placementAssets`). An object with no
|
|
42284
|
+
* non-empty list is a 400 (send `null` instead). Cannot be combined with
|
|
42285
|
+
* `targeting.placements` (400).
|
|
42286
|
+
*
|
|
42287
|
+
*/
|
|
42288
|
+
placements?: {
|
|
42289
|
+
publisherPlatforms?: Array<('facebook' | 'instagram' | 'threads' | 'messenger' | 'audience_network' | 'whatsapp')>;
|
|
42290
|
+
facebookPositions?: Array<('feed' | 'right_hand_column' | 'marketplace' | 'video_feeds' | 'story' | 'search' | 'instream_video' | 'facebook_reels' | 'facebook_reels_overlay' | 'profile_feed' | 'notification')>;
|
|
42291
|
+
instagramPositions?: Array<('stream' | 'story' | 'explore' | 'explore_home' | 'reels' | 'profile_feed' | 'ig_search' | 'profile_reels')>;
|
|
42292
|
+
messengerPositions?: Array<('messenger_home' | 'sponsored_messages' | 'story')>;
|
|
42293
|
+
audienceNetworkPositions?: Array<('classic' | 'rewarded_video')>;
|
|
42294
|
+
threadsPositions?: Array<('threads_stream')>;
|
|
42295
|
+
whatsappPositions?: Array<('status')>;
|
|
42296
|
+
devicePlatforms?: Array<('mobile' | 'desktop')>;
|
|
42297
|
+
} | null;
|
|
42298
|
+
/**
|
|
42299
|
+
* Meta only (400 elsewhere). Targeting fields to change, same shape as the `targeting`
|
|
42300
|
+
* object on POST /v1/ads/create. Only the keys you send change: Zernio reads the ad set's
|
|
42301
|
+
* live targeting from Meta, merges these keys over it and writes the full spec back, so
|
|
42302
|
+
* everything you do not send (custom audiences, geo, age, interest groups,
|
|
42303
|
+
* `targeting_automation`) is kept. Setting any location replaces every location list.
|
|
42304
|
+
* An empty list or `gender: all` clears that key. `incomeTier` is resolved to Meta's
|
|
42305
|
+
* income segment first (422 when Meta has none). Fields Meta cannot target (LinkedIn
|
|
42306
|
+
* B2B, Google `devices`, Reddit communities and keywords) return 400 with
|
|
42307
|
+
* `param: targeting.<field>`. An empty object is a 400, and so is a
|
|
42308
|
+
* `targeting.placements` object with no non-empty list (`param: targeting.placements`). When the live targeting cannot be
|
|
42309
|
+
* read the request returns 502 and nothing is written.
|
|
42310
|
+
*
|
|
42311
|
+
*/
|
|
42312
|
+
targeting?: (TargetingSpec);
|
|
42275
42313
|
/**
|
|
42276
42314
|
* Bid cap in WHOLE currency units (USD: 5 = $5.00; JPY: 100 = ¥100). Required when
|
|
42277
42315
|
* bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. Internally converted to Meta's
|
|
@@ -42407,6 +42445,12 @@ type UpdateAdSetResponse = ({
|
|
|
42407
42445
|
platformSpecificData?: {
|
|
42408
42446
|
[key: string]: unknown;
|
|
42409
42447
|
};
|
|
42448
|
+
/**
|
|
42449
|
+
* Present when `placements` or `targeting` was sent. The ad set's full Meta targeting as written (Meta snake_case). The same snake_case object is stored as the ad set's and its ads' `targeting`.
|
|
42450
|
+
*/
|
|
42451
|
+
targeting?: {
|
|
42452
|
+
[key: string]: unknown;
|
|
42453
|
+
};
|
|
42410
42454
|
});
|
|
42411
42455
|
type UpdateAdSetError = (unknown | ErrorResponse);
|
|
42412
42456
|
type DeleteAdSetData = {
|
|
@@ -49395,9 +49439,9 @@ type SearchAdTargetingData = {
|
|
|
49395
49439
|
*/
|
|
49396
49440
|
countryCode?: string;
|
|
49397
49441
|
/**
|
|
49398
|
-
* What to search. `geo` resolves locations (scope further with `geoType`), `interest`/`behavior` resolve audience entities (`behavior` on Meta, TikTok and LinkedIn), `interestKeyword`/`hashtag` resolve TikTok additional interests and hashtags (TikTok only), `income` resolves the normalized income tiers, `language` resolves Google's targetable language_constant table (Google only), `workPosition`/`workEmployer`/`workIndustry` resolve Meta work demographics, `industry`/`jobFunction`/`seniority`/`companySize` resolve LinkedIn B2B facets (LinkedIn only). Defaults to `interest` for backward compatibility with the deprecated /v1/ads/interests alias.
|
|
49442
|
+
* What to search. `geo` resolves locations (scope further with `geoType`), `interest`/`behavior` resolve audience entities (`behavior` on Meta, TikTok and LinkedIn), `interestSuggestion` suggests interests related to the names in `q` (Meta only), `interestKeyword`/`hashtag` resolve TikTok additional interests and hashtags (TikTok only), `income` resolves the normalized income tiers, `language` resolves Google's targetable language_constant table (Google only), `workPosition`/`workEmployer`/`workIndustry` resolve Meta work demographics, `industry`/`jobFunction`/`seniority`/`companySize` resolve LinkedIn B2B facets (LinkedIn only). Defaults to `interest` for backward compatibility with the deprecated /v1/ads/interests alias.
|
|
49399
49443
|
*/
|
|
49400
|
-
dimension?: 'geo' | 'interest' | 'interestKeyword' | 'behavior' | 'hashtag' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize' | 'community' | 'conversationKeyword';
|
|
49444
|
+
dimension?: 'geo' | 'interest' | 'interestSuggestion' | 'interestKeyword' | 'behavior' | 'hashtag' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize' | 'community' | 'conversationKeyword';
|
|
49401
49445
|
/**
|
|
49402
49446
|
* Only used when `dimension=geo`. The kind of location to resolve. `all` searches every type in one relevance-ranked call. Defaults to `city`.
|
|
49403
49447
|
*/
|
|
@@ -49407,7 +49451,7 @@ type SearchAdTargetingData = {
|
|
|
49407
49451
|
*/
|
|
49408
49452
|
limit?: number;
|
|
49409
49453
|
/**
|
|
49410
|
-
* Search query. For geo, the locality name only (no region/country suffix).
|
|
49454
|
+
* Search query. For geo, the locality name only (no region/country suffix). For `interestSuggestion`, the interest names: comma-separated, or a JSON array of strings when a name contains a comma (a `q` starting with `[` is read as JSON).
|
|
49411
49455
|
*/
|
|
49412
49456
|
q: string;
|
|
49413
49457
|
};
|
|
@@ -49423,7 +49467,7 @@ type SearchAdTargetingResponse = ({
|
|
|
49423
49467
|
*/
|
|
49424
49468
|
name: string;
|
|
49425
49469
|
/**
|
|
49426
|
-
* What the result is. Equals the requested dimension (interest, interestKeyword, behavior, hashtag, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize, community, conversationKeyword), or the location level for geo (country, region, city, zip, metro, ...).
|
|
49470
|
+
* What the result is. Equals the requested dimension (interest, interestSuggestion, interestKeyword, behavior, hashtag, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize, community, conversationKeyword), or the location level for geo (country, region, city, zip, metro, ...).
|
|
49427
49471
|
*/
|
|
49428
49472
|
type: string;
|
|
49429
49473
|
/**
|
package/dist/index.js
CHANGED
|
@@ -36,7 +36,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
36
36
|
// package.json
|
|
37
37
|
var package_default = {
|
|
38
38
|
name: "@getlatedev/node",
|
|
39
|
-
version: "0.2.
|
|
39
|
+
version: "0.2.1219",
|
|
40
40
|
description: "The official Node.js library for the Zernio API",
|
|
41
41
|
main: "dist/index.js",
|
|
42
42
|
module: "dist/index.mjs",
|
package/dist/index.mjs
CHANGED
|
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
5
5
|
// package.json
|
|
6
6
|
var package_default = {
|
|
7
7
|
name: "@getlatedev/node",
|
|
8
|
-
version: "0.2.
|
|
8
|
+
version: "0.2.1219",
|
|
9
9
|
description: "The official Node.js library for the Zernio API",
|
|
10
10
|
main: "dist/index.js",
|
|
11
11
|
module: "dist/index.mjs",
|
package/package.json
CHANGED
package/src/generated/sdk.gen.ts
CHANGED
|
@@ -10540,6 +10540,17 @@ export const getAdSetDetails = <ThrowOnError extends boolean = false>(options: O
|
|
|
10540
10540
|
* theirs, and `statusUpdated` / `statusSkipped` report whether that switch
|
|
10541
10541
|
* was written or a live read showed it already in place.
|
|
10542
10542
|
*
|
|
10543
|
+
* Placements and targeting (Meta only): `placements` and `targeting` take the same shapes
|
|
10544
|
+
* as POST /v1/ads/create. Meta replaces an ad set's targeting wholesale, so Zernio reads
|
|
10545
|
+
* the live targeting first, changes only what the request names and writes the merged
|
|
10546
|
+
* spec back: custom audiences, geo, age, interest groups and `targeting_automation` you do
|
|
10547
|
+
* not send are kept. `placements` replaces the whole placement set, `placements: null`
|
|
10548
|
+
* returns the ad set to automatic placements, and omitting it leaves placements as they
|
|
10549
|
+
* are. Other platforms return 400 for either field before anything in the request is
|
|
10550
|
+
* written (use PUT /v1/ads/{adId} with `targeting` where that platform supports it). The
|
|
10551
|
+
* live read and the `incomeTier` lookup run before any other field is written, so a 502
|
|
10552
|
+
* or 422 from them leaves the ad set unchanged.
|
|
10553
|
+
*
|
|
10543
10554
|
*/
|
|
10544
10555
|
export const updateAdSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdSetData, ThrowOnError>) => {
|
|
10545
10556
|
return (options?.client ?? client).put<UpdateAdSetResponse, UpdateAdSetError, ThrowOnError>({
|
|
@@ -13166,6 +13177,15 @@ export const searchAdInterests = <ThrowOnError extends boolean = false>(options:
|
|
|
13166
13177
|
*
|
|
13167
13178
|
* - `geo`: locations, further scoped by `geoType`
|
|
13168
13179
|
* - `interest`
|
|
13180
|
+
* - `interestSuggestion`: Meta only. Interests related to the interest names in `q`, from Meta's
|
|
13181
|
+
* interest suggestions. `q` lists interest names, case sensitive, names and not ids: either
|
|
13182
|
+
* comma-separated (`NBA,Michael Jordan`) or, for names that contain a comma, a JSON array of
|
|
13183
|
+
* strings (`["Earth, Wind & Fire","Yoga"]`, URL-encoded). A `q` starting with `[` is always read as
|
|
13184
|
+
* JSON. A `q` with no name or malformed JSON returns 400 naming `q`. Meta also suggests behaviors
|
|
13185
|
+
* and demographics; Zernio keeps only interests (entries whose `path` starts with `Interests`), so
|
|
13186
|
+
* every id goes in `TargetingSpec.interests`, like `interest` results. Zernio asks Meta for three
|
|
13187
|
+
* times `limit` (at most 100) before filtering, so fewer than `limit` results can come back. Meta
|
|
13188
|
+
* weights the first name heavily: a multi-name `q` mostly returns suggestions for the first one
|
|
13169
13189
|
* - `behavior`: Meta, TikTok and LinkedIn, matched by name; ids feed `TargetingSpec.behaviors`.
|
|
13170
13190
|
* Meta: its fixed behaviors catalog (e.g. `Small business owners`, `Frequent Travelers`).
|
|
13171
13191
|
* TikTok: video and creator interaction categories (e.g. `Software & Apps`), with ids like
|
|
@@ -42757,6 +42757,44 @@ export type UpdateAdSetData = {
|
|
|
42757
42757
|
*/
|
|
42758
42758
|
interestsBehaviors?: boolean;
|
|
42759
42759
|
};
|
|
42760
|
+
/**
|
|
42761
|
+
* Meta only (400 elsewhere). Manual placements, same object and enums as `placements` on
|
|
42762
|
+
* POST /v1/ads/create. Sending an object REPLACES the ad set's current placement set
|
|
42763
|
+
* (`publisher_platforms`, every `*_positions` list and `device_platforms`); a position
|
|
42764
|
+
* list you leave out is removed. `null` removes every placement key so Meta returns to
|
|
42765
|
+
* automatic (Advantage+) placements. Omit to leave placements untouched. Meta enforces
|
|
42766
|
+
* co-selection rules (e.g. a position needs its publisher platform) and its error is
|
|
42767
|
+
* returned as is. Meta may also reject `null` or a narrower set when an ad's creative
|
|
42768
|
+
* uses per-placement asset customization (`placementAssets`). An object with no
|
|
42769
|
+
* non-empty list is a 400 (send `null` instead). Cannot be combined with
|
|
42770
|
+
* `targeting.placements` (400).
|
|
42771
|
+
*
|
|
42772
|
+
*/
|
|
42773
|
+
placements?: {
|
|
42774
|
+
publisherPlatforms?: Array<('facebook' | 'instagram' | 'threads' | 'messenger' | 'audience_network' | 'whatsapp')>;
|
|
42775
|
+
facebookPositions?: Array<('feed' | 'right_hand_column' | 'marketplace' | 'video_feeds' | 'story' | 'search' | 'instream_video' | 'facebook_reels' | 'facebook_reels_overlay' | 'profile_feed' | 'notification')>;
|
|
42776
|
+
instagramPositions?: Array<('stream' | 'story' | 'explore' | 'explore_home' | 'reels' | 'profile_feed' | 'ig_search' | 'profile_reels')>;
|
|
42777
|
+
messengerPositions?: Array<('messenger_home' | 'sponsored_messages' | 'story')>;
|
|
42778
|
+
audienceNetworkPositions?: Array<('classic' | 'rewarded_video')>;
|
|
42779
|
+
threadsPositions?: Array<('threads_stream')>;
|
|
42780
|
+
whatsappPositions?: Array<('status')>;
|
|
42781
|
+
devicePlatforms?: Array<('mobile' | 'desktop')>;
|
|
42782
|
+
} | null;
|
|
42783
|
+
/**
|
|
42784
|
+
* Meta only (400 elsewhere). Targeting fields to change, same shape as the `targeting`
|
|
42785
|
+
* object on POST /v1/ads/create. Only the keys you send change: Zernio reads the ad set's
|
|
42786
|
+
* live targeting from Meta, merges these keys over it and writes the full spec back, so
|
|
42787
|
+
* everything you do not send (custom audiences, geo, age, interest groups,
|
|
42788
|
+
* `targeting_automation`) is kept. Setting any location replaces every location list.
|
|
42789
|
+
* An empty list or `gender: all` clears that key. `incomeTier` is resolved to Meta's
|
|
42790
|
+
* income segment first (422 when Meta has none). Fields Meta cannot target (LinkedIn
|
|
42791
|
+
* B2B, Google `devices`, Reddit communities and keywords) return 400 with
|
|
42792
|
+
* `param: targeting.<field>`. An empty object is a 400, and so is a
|
|
42793
|
+
* `targeting.placements` object with no non-empty list (`param: targeting.placements`). When the live targeting cannot be
|
|
42794
|
+
* read the request returns 502 and nothing is written.
|
|
42795
|
+
*
|
|
42796
|
+
*/
|
|
42797
|
+
targeting?: (TargetingSpec);
|
|
42760
42798
|
/**
|
|
42761
42799
|
* Bid cap in WHOLE currency units (USD: 5 = $5.00; JPY: 100 = ¥100). Required when
|
|
42762
42800
|
* bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. Internally converted to Meta's
|
|
@@ -42893,6 +42931,12 @@ export type UpdateAdSetResponse = ({
|
|
|
42893
42931
|
platformSpecificData?: {
|
|
42894
42932
|
[key: string]: unknown;
|
|
42895
42933
|
};
|
|
42934
|
+
/**
|
|
42935
|
+
* Present when `placements` or `targeting` was sent. The ad set's full Meta targeting as written (Meta snake_case). The same snake_case object is stored as the ad set's and its ads' `targeting`.
|
|
42936
|
+
*/
|
|
42937
|
+
targeting?: {
|
|
42938
|
+
[key: string]: unknown;
|
|
42939
|
+
};
|
|
42896
42940
|
});
|
|
42897
42941
|
|
|
42898
42942
|
export type UpdateAdSetError = (unknown | ErrorResponse);
|
|
@@ -50261,9 +50305,9 @@ export type SearchAdTargetingData = {
|
|
|
50261
50305
|
*/
|
|
50262
50306
|
countryCode?: string;
|
|
50263
50307
|
/**
|
|
50264
|
-
* What to search. `geo` resolves locations (scope further with `geoType`), `interest`/`behavior` resolve audience entities (`behavior` on Meta, TikTok and LinkedIn), `interestKeyword`/`hashtag` resolve TikTok additional interests and hashtags (TikTok only), `income` resolves the normalized income tiers, `language` resolves Google's targetable language_constant table (Google only), `workPosition`/`workEmployer`/`workIndustry` resolve Meta work demographics, `industry`/`jobFunction`/`seniority`/`companySize` resolve LinkedIn B2B facets (LinkedIn only). Defaults to `interest` for backward compatibility with the deprecated /v1/ads/interests alias.
|
|
50308
|
+
* What to search. `geo` resolves locations (scope further with `geoType`), `interest`/`behavior` resolve audience entities (`behavior` on Meta, TikTok and LinkedIn), `interestSuggestion` suggests interests related to the names in `q` (Meta only), `interestKeyword`/`hashtag` resolve TikTok additional interests and hashtags (TikTok only), `income` resolves the normalized income tiers, `language` resolves Google's targetable language_constant table (Google only), `workPosition`/`workEmployer`/`workIndustry` resolve Meta work demographics, `industry`/`jobFunction`/`seniority`/`companySize` resolve LinkedIn B2B facets (LinkedIn only). Defaults to `interest` for backward compatibility with the deprecated /v1/ads/interests alias.
|
|
50265
50309
|
*/
|
|
50266
|
-
dimension?: 'geo' | 'interest' | 'interestKeyword' | 'behavior' | 'hashtag' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize' | 'community' | 'conversationKeyword';
|
|
50310
|
+
dimension?: 'geo' | 'interest' | 'interestSuggestion' | 'interestKeyword' | 'behavior' | 'hashtag' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize' | 'community' | 'conversationKeyword';
|
|
50267
50311
|
/**
|
|
50268
50312
|
* Only used when `dimension=geo`. The kind of location to resolve. `all` searches every type in one relevance-ranked call. Defaults to `city`.
|
|
50269
50313
|
*/
|
|
@@ -50273,7 +50317,7 @@ export type SearchAdTargetingData = {
|
|
|
50273
50317
|
*/
|
|
50274
50318
|
limit?: number;
|
|
50275
50319
|
/**
|
|
50276
|
-
* Search query. For geo, the locality name only (no region/country suffix).
|
|
50320
|
+
* Search query. For geo, the locality name only (no region/country suffix). For `interestSuggestion`, the interest names: comma-separated, or a JSON array of strings when a name contains a comma (a `q` starting with `[` is read as JSON).
|
|
50277
50321
|
*/
|
|
50278
50322
|
q: string;
|
|
50279
50323
|
};
|
|
@@ -50290,7 +50334,7 @@ export type SearchAdTargetingResponse = ({
|
|
|
50290
50334
|
*/
|
|
50291
50335
|
name: string;
|
|
50292
50336
|
/**
|
|
50293
|
-
* What the result is. Equals the requested dimension (interest, interestKeyword, behavior, hashtag, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize, community, conversationKeyword), or the location level for geo (country, region, city, zip, metro, ...).
|
|
50337
|
+
* What the result is. Equals the requested dimension (interest, interestSuggestion, interestKeyword, behavior, hashtag, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize, community, conversationKeyword), or the location level for geo (country, region, city, zip, metro, ...).
|
|
50294
50338
|
*/
|
|
50295
50339
|
type: string;
|
|
50296
50340
|
/**
|