@getlatedev/node 0.2.1148 → 0.2.1150
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 +11 -7
- package/dist/index.d.ts +11 -7
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/src/generated/sdk.gen.ts +16 -1
- package/src/generated/types.gen.ts +11 -7
package/dist/index.d.mts
CHANGED
|
@@ -12463,14 +12463,14 @@ type TargetingSpec = {
|
|
|
12463
12463
|
*/
|
|
12464
12464
|
languages?: Array<(string)>;
|
|
12465
12465
|
/**
|
|
12466
|
-
* Interest entities from /v1/ads/targeting/search?dimension=interest. Each carries the platform's opaque id. On Google, applied as ad-group interest criteria (affinity and in-market categories) on Display and Search ad groups the request creates; rejected with 400 on Performance Max, on Demand Gen (use the Demand Gen audience `userInterests` there), when attaching to an existing ad group (`adSetId`), and on OpenAI. On Google, interests are create-only.
|
|
12466
|
+
* Interest entities from /v1/ads/targeting/search?dimension=interest. Each carries the platform's opaque id. On Google, applied as ad-group interest criteria (affinity and in-market categories) on Display and Search ad groups the request creates; rejected with 400 on Performance Max, on Demand Gen (use the Demand Gen audience `userInterests` there), when attaching to an existing ad group (`adSetId`), and on OpenAI. On Google, interests are create-only. On TikTok, bare numeric ids are interest categories (`interest_category_ids`) and ids like `keyword:123456` from `dimension=interestKeyword` are additional interests (`interest_keyword_ids`); any other id returns 422 naming `targeting.interests`. TikTok matches people who fit ANY selected interest, additional interest or behavior (one OR'd group), and that group is ANDed with location, age, gender and the other dimensions.
|
|
12467
12467
|
*/
|
|
12468
12468
|
interests?: Array<{
|
|
12469
12469
|
id: string;
|
|
12470
12470
|
name?: string;
|
|
12471
12471
|
}>;
|
|
12472
12472
|
/**
|
|
12473
|
-
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, and the ad group uses the TikTok placement only.
|
|
12473
|
+
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, or who viewed videos with a picked hashtag (`hashtag:<id>` ids from `dimension=hashtag`, sent as a `HASHTAG_RELATED` action with `VIEW_HASHTAG`), and the ad group uses the TikTok placement only. On TikTok, behaviors are OR'd with interests and additional interests.
|
|
12474
12474
|
*/
|
|
12475
12475
|
behaviors?: Array<{
|
|
12476
12476
|
id: string;
|
|
@@ -47337,7 +47337,7 @@ type CreateStandaloneAdData = {
|
|
|
47337
47337
|
ageMin?: number;
|
|
47338
47338
|
ageMax?: number;
|
|
47339
47339
|
/**
|
|
47340
|
-
* Interest objects from /v1/ads/
|
|
47340
|
+
* Interest objects from /v1/ads/targeting/search?dimension=interest (or dimension=interestKeyword on TikTok). Each must include id and name. On TikTok, bare numeric ids are interest categories (`interest_category_ids`) and ids like `keyword:123456` from `dimension=interestKeyword` are additional interests (`interest_keyword_ids`); any other id returns 422 naming `targeting.interests`. TikTok matches people who fit ANY selected interest, additional interest or behavior (one OR'd group), and that group is ANDed with location, age, gender and the other dimensions.
|
|
47341
47341
|
*/
|
|
47342
47342
|
interests?: Array<{
|
|
47343
47343
|
id: string;
|
|
@@ -47369,7 +47369,7 @@ type CreateStandaloneAdData = {
|
|
|
47369
47369
|
address?: string;
|
|
47370
47370
|
}>;
|
|
47371
47371
|
/**
|
|
47372
|
-
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, and the ad group uses the TikTok placement only. Each must include id.
|
|
47372
|
+
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, or who viewed videos with a picked hashtag (`hashtag:<id>` ids from `dimension=hashtag`, sent as a `HASHTAG_RELATED` action with `VIEW_HASHTAG`), and the ad group uses the TikTok placement only. On TikTok, behaviors are OR'd with interests and additional interests. Each must include id.
|
|
47373
47373
|
*/
|
|
47374
47374
|
behaviors?: Array<{
|
|
47375
47375
|
id: string;
|
|
@@ -48718,9 +48718,9 @@ type SearchAdTargetingData = {
|
|
|
48718
48718
|
*/
|
|
48719
48719
|
countryCode?: string;
|
|
48720
48720
|
/**
|
|
48721
|
-
* What to search. `geo` resolves locations (scope further with `geoType`), `interest`/`behavior` resolve audience entities (`behavior`
|
|
48721
|
+
* 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.
|
|
48722
48722
|
*/
|
|
48723
|
-
dimension?: 'geo' | 'interest' | 'behavior' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize';
|
|
48723
|
+
dimension?: 'geo' | 'interest' | 'interestKeyword' | 'behavior' | 'hashtag' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize';
|
|
48724
48724
|
/**
|
|
48725
48725
|
* Only used when `dimension=geo`. The kind of location to resolve. `all` searches every type in one relevance-ranked call. Defaults to `city`.
|
|
48726
48726
|
*/
|
|
@@ -48746,7 +48746,7 @@ type SearchAdTargetingResponse = ({
|
|
|
48746
48746
|
*/
|
|
48747
48747
|
name: string;
|
|
48748
48748
|
/**
|
|
48749
|
-
* What the result is. Equals the requested dimension (interest, behavior, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize), or the location level for geo (country, region, city, zip, metro, ...).
|
|
48749
|
+
* What the result is. Equals the requested dimension (interest, interestKeyword, behavior, hashtag, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize), or the location level for geo (country, region, city, zip, metro, ...).
|
|
48750
48750
|
*/
|
|
48751
48751
|
type: string;
|
|
48752
48752
|
/**
|
|
@@ -48757,6 +48757,10 @@ type SearchAdTargetingResponse = ({
|
|
|
48757
48757
|
* Optional estimated reachable users for this option, when the platform returns it.
|
|
48758
48758
|
*/
|
|
48759
48759
|
audienceSize?: (number) | null;
|
|
48760
|
+
/**
|
|
48761
|
+
* TikTok `interestKeyword` and `hashtag` results only: TikTok's availability status. `EFFECTIVE` / `INEFFECTIVE` for additional interests, `ONLINE` / `OFFLINE` for hashtags. Only `EFFECTIVE` and `ONLINE` ids can be targeted.
|
|
48762
|
+
*/
|
|
48763
|
+
status?: string;
|
|
48760
48764
|
/**
|
|
48761
48765
|
* ISO-3166 alpha-2 of the country a sub-country geo result (city, region, zip, metro) belongs to, when the platform reports it (Meta does). Useful to know whether a location falls under the EU DSA disclosure rules before creating the ad.
|
|
48762
48766
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -12463,14 +12463,14 @@ type TargetingSpec = {
|
|
|
12463
12463
|
*/
|
|
12464
12464
|
languages?: Array<(string)>;
|
|
12465
12465
|
/**
|
|
12466
|
-
* Interest entities from /v1/ads/targeting/search?dimension=interest. Each carries the platform's opaque id. On Google, applied as ad-group interest criteria (affinity and in-market categories) on Display and Search ad groups the request creates; rejected with 400 on Performance Max, on Demand Gen (use the Demand Gen audience `userInterests` there), when attaching to an existing ad group (`adSetId`), and on OpenAI. On Google, interests are create-only.
|
|
12466
|
+
* Interest entities from /v1/ads/targeting/search?dimension=interest. Each carries the platform's opaque id. On Google, applied as ad-group interest criteria (affinity and in-market categories) on Display and Search ad groups the request creates; rejected with 400 on Performance Max, on Demand Gen (use the Demand Gen audience `userInterests` there), when attaching to an existing ad group (`adSetId`), and on OpenAI. On Google, interests are create-only. On TikTok, bare numeric ids are interest categories (`interest_category_ids`) and ids like `keyword:123456` from `dimension=interestKeyword` are additional interests (`interest_keyword_ids`); any other id returns 422 naming `targeting.interests`. TikTok matches people who fit ANY selected interest, additional interest or behavior (one OR'd group), and that group is ANDed with location, age, gender and the other dimensions.
|
|
12467
12467
|
*/
|
|
12468
12468
|
interests?: Array<{
|
|
12469
12469
|
id: string;
|
|
12470
12470
|
name?: string;
|
|
12471
12471
|
}>;
|
|
12472
12472
|
/**
|
|
12473
|
-
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, and the ad group uses the TikTok placement only.
|
|
12473
|
+
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, or who viewed videos with a picked hashtag (`hashtag:<id>` ids from `dimension=hashtag`, sent as a `HASHTAG_RELATED` action with `VIEW_HASHTAG`), and the ad group uses the TikTok placement only. On TikTok, behaviors are OR'd with interests and additional interests.
|
|
12474
12474
|
*/
|
|
12475
12475
|
behaviors?: Array<{
|
|
12476
12476
|
id: string;
|
|
@@ -47337,7 +47337,7 @@ type CreateStandaloneAdData = {
|
|
|
47337
47337
|
ageMin?: number;
|
|
47338
47338
|
ageMax?: number;
|
|
47339
47339
|
/**
|
|
47340
|
-
* Interest objects from /v1/ads/
|
|
47340
|
+
* Interest objects from /v1/ads/targeting/search?dimension=interest (or dimension=interestKeyword on TikTok). Each must include id and name. On TikTok, bare numeric ids are interest categories (`interest_category_ids`) and ids like `keyword:123456` from `dimension=interestKeyword` are additional interests (`interest_keyword_ids`); any other id returns 422 naming `targeting.interests`. TikTok matches people who fit ANY selected interest, additional interest or behavior (one OR'd group), and that group is ANDed with location, age, gender and the other dimensions.
|
|
47341
47341
|
*/
|
|
47342
47342
|
interests?: Array<{
|
|
47343
47343
|
id: string;
|
|
@@ -47369,7 +47369,7 @@ type CreateStandaloneAdData = {
|
|
|
47369
47369
|
address?: string;
|
|
47370
47370
|
}>;
|
|
47371
47371
|
/**
|
|
47372
|
-
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, and the ad group uses the TikTok placement only. Each must include id.
|
|
47372
|
+
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, or who viewed videos with a picked hashtag (`hashtag:<id>` ids from `dimension=hashtag`, sent as a `HASHTAG_RELATED` action with `VIEW_HASHTAG`), and the ad group uses the TikTok placement only. On TikTok, behaviors are OR'd with interests and additional interests. Each must include id.
|
|
47373
47373
|
*/
|
|
47374
47374
|
behaviors?: Array<{
|
|
47375
47375
|
id: string;
|
|
@@ -48718,9 +48718,9 @@ type SearchAdTargetingData = {
|
|
|
48718
48718
|
*/
|
|
48719
48719
|
countryCode?: string;
|
|
48720
48720
|
/**
|
|
48721
|
-
* What to search. `geo` resolves locations (scope further with `geoType`), `interest`/`behavior` resolve audience entities (`behavior`
|
|
48721
|
+
* 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.
|
|
48722
48722
|
*/
|
|
48723
|
-
dimension?: 'geo' | 'interest' | 'behavior' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize';
|
|
48723
|
+
dimension?: 'geo' | 'interest' | 'interestKeyword' | 'behavior' | 'hashtag' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize';
|
|
48724
48724
|
/**
|
|
48725
48725
|
* Only used when `dimension=geo`. The kind of location to resolve. `all` searches every type in one relevance-ranked call. Defaults to `city`.
|
|
48726
48726
|
*/
|
|
@@ -48746,7 +48746,7 @@ type SearchAdTargetingResponse = ({
|
|
|
48746
48746
|
*/
|
|
48747
48747
|
name: string;
|
|
48748
48748
|
/**
|
|
48749
|
-
* What the result is. Equals the requested dimension (interest, behavior, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize), or the location level for geo (country, region, city, zip, metro, ...).
|
|
48749
|
+
* What the result is. Equals the requested dimension (interest, interestKeyword, behavior, hashtag, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize), or the location level for geo (country, region, city, zip, metro, ...).
|
|
48750
48750
|
*/
|
|
48751
48751
|
type: string;
|
|
48752
48752
|
/**
|
|
@@ -48757,6 +48757,10 @@ type SearchAdTargetingResponse = ({
|
|
|
48757
48757
|
* Optional estimated reachable users for this option, when the platform returns it.
|
|
48758
48758
|
*/
|
|
48759
48759
|
audienceSize?: (number) | null;
|
|
48760
|
+
/**
|
|
48761
|
+
* TikTok `interestKeyword` and `hashtag` results only: TikTok's availability status. `EFFECTIVE` / `INEFFECTIVE` for additional interests, `ONLINE` / `OFFLINE` for hashtags. Only `EFFECTIVE` and `ONLINE` ids can be targeted.
|
|
48762
|
+
*/
|
|
48763
|
+
status?: string;
|
|
48760
48764
|
/**
|
|
48761
48765
|
* ISO-3166 alpha-2 of the country a sub-country geo result (city, region, zip, metro) belongs to, when the platform reports it (Meta does). Useful to know whether a location falls under the EU DSA disclosure rules before creating the ad.
|
|
48762
48766
|
*/
|
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.1150",
|
|
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.1150",
|
|
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
|
@@ -12575,10 +12575,17 @@ export const searchAdInterests = <ThrowOnError extends boolean = false>(options:
|
|
|
12575
12575
|
* Meta: its fixed behaviors catalog (e.g. `Small business owners`, `Frequent Travelers`).
|
|
12576
12576
|
* TikTok: video and creator interaction categories (e.g. `Software & Apps`), with ids like
|
|
12577
12577
|
* `video:1913101` or `creator:24001` and `path` starting with `Video interactions` or
|
|
12578
|
-
* `Creator interactions
|
|
12578
|
+
* `Creator interactions` (hashtags are their own `hashtag` dimension). LinkedIn: member behaviors (e.g. `Frequent Travelers`,
|
|
12579
12579
|
* `Job Seekers`, `Recently Promoted`), ids like `urn:li:memberBehavior:9`. Google has no
|
|
12580
12580
|
* separate behavior catalog: its in-market and affinity segments come back from `interest`,
|
|
12581
12581
|
* and X removed behavior targeting from its Ads API
|
|
12582
|
+
* - `interestKeyword`: TikTok only. The "Additional interests" of TikTok Ads Manager (e.g. `folk`
|
|
12583
|
+
* returns `Folk Music`), from TikTok's keyword recommendations for the seed `q`. Ids look like
|
|
12584
|
+
* `keyword:123456` and go in `TargetingSpec.interests`, next to interest categories. Only keywords
|
|
12585
|
+
* TikTok lets an ad group target come back (`status` `EFFECTIVE`). TikTok returns no audience size
|
|
12586
|
+
* - `hashtag`: TikTok only. Hashtags recommended for the seed `q`, to target people who viewed videos
|
|
12587
|
+
* with them. Ids look like `hashtag:123456` and go in `TargetingSpec.behaviors`. Only hashtags
|
|
12588
|
+
* TikTok reports `ONLINE` come back. Spaces in `q` are removed first, because TikTok recommends no hashtags for a multi-word seed (`acoustic guitar` searches `acousticguitar`)
|
|
12582
12589
|
* - `income`: the household-income tiers the platform can target (Meta, TikTok, Google).
|
|
12583
12590
|
* The id is the normalized tier (`top_5`, `top_10`, `top_10_25`, `top_25_50`) to pass as
|
|
12584
12591
|
* `TargetingSpec.incomeTier`, never a platform segment id. Meta's tiers are US-only
|
|
@@ -12598,6 +12605,10 @@ export const searchAdInterests = <ThrowOnError extends boolean = false>(options:
|
|
|
12598
12605
|
* TikTok `interest` searches TikTok's interest category catalog (about 700 categories over
|
|
12599
12606
|
* four levels, `path` holds the parent categories), matched by name in Zernio. The ids are
|
|
12600
12607
|
* what `TargetingSpec.interests` sends to TikTok as `interest_category_ids`.
|
|
12608
|
+
* For `interestKeyword` and `hashtag`, a `q` made only of prefixed ids (`keyword:101,keyword:102` or
|
|
12609
|
+
* `hashtag:201`) looks those ids up instead of searching, unavailable ones included with their `status`
|
|
12610
|
+
* (`INEFFECTIVE` or `OFFLINE`), so ids read back from an ad group (`interest_keyword_ids`, `actions`
|
|
12611
|
+
* in `nativeSettings`) resolve to names. An `interestKeyword` lookup takes at most 50 ids (more returns 400 naming `q`).
|
|
12601
12612
|
* Work industries are a fixed ~30-entry Meta catalog with no server-side query,
|
|
12602
12613
|
* so `workIndustry` matching, ranking and `limit` happen in Zernio. `language`
|
|
12603
12614
|
* is likewise a fixed, checked-in table of Google's targetable
|
|
@@ -13738,6 +13749,8 @@ export const sendWhatsAppConversion = <ThrowOnError extends boolean = false>(opt
|
|
|
13738
13749
|
* `accountId` is a Facebook, Instagram or Meta ads (business login) connection;
|
|
13739
13750
|
* `pageId` picks the Page when that connection was granted several.
|
|
13740
13751
|
*
|
|
13752
|
+
* **WhatsApp number prerequisite.** For the WhatsApp destination, link the WhatsApp number to the Facebook Page used for the ad before creating it: Meta checks the pairing at creation. Link it from the WhatsApp Business app (Settings > Business tools > Facebook & Instagram) or from the Page settings (Linked accounts > WhatsApp). Linking does not affect the number's WhatsApp connection in Zernio (Cloud API or coexistence), so no reconnect or re-sync is needed. If Meta creates a new ad set without the requested `whatsappPhoneNumber`, the 201 response carries a `warnings` entry. This can happen even when the number is linked (Meta can drop a Page's second linked number).
|
|
13753
|
+
*
|
|
13741
13754
|
* **Idempotency:** this endpoint is not idempotent at the platform level (a blind retry creates a second campaign/ad set/ad). Send an `Idempotency-Key` header to make retries safe: the first request with a given key creates the ad and we store the response; a retry with the same key replays that exact response (with `Idempotent-Replayed: true`) instead of creating duplicates. Reusing a key with a different body returns 422; a key whose first request is still in flight returns 409 (retry after a short backoff). Keys are scoped to your credential and expire after 24h.
|
|
13742
13755
|
*/
|
|
13743
13756
|
export const createMessagingAd = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateMessagingAdData, ThrowOnError>) => {
|
|
@@ -13784,6 +13797,8 @@ export const createCallAd = <ThrowOnError extends boolean = false>(options: Opti
|
|
|
13784
13797
|
* media and copy for that creative. Optional `whatsappPhoneNumber` selects
|
|
13785
13798
|
* a number already paired with the Page (WhatsApp destination only).
|
|
13786
13799
|
*
|
|
13800
|
+
* **WhatsApp number prerequisite.** Link the WhatsApp number to the Facebook Page used for the ad before creating it: Meta checks the pairing at creation. Link it from the WhatsApp Business app (Settings > Business tools > Facebook & Instagram) or from the Page settings (Linked accounts > WhatsApp). Linking does not affect the number's WhatsApp connection in Zernio (Cloud API or coexistence), so no reconnect or re-sync is needed. If Meta creates a new ad set without the requested `whatsappPhoneNumber`, the 201 response carries a `warnings` entry. This can happen even when the number is linked (Meta can drop a Page's second linked number).
|
|
13801
|
+
*
|
|
13787
13802
|
* **Idempotency:** this endpoint is not idempotent at the platform level (a blind retry creates a second campaign/ad set/ad). Send an `Idempotency-Key` header to make retries safe: the first request with a given key creates the ad and we store the response; a retry with the same key replays that exact response (with `Idempotent-Replayed: true`) instead of creating duplicates. Reusing a key with a different body returns 422; a key whose first request is still in flight returns 409 (retry after a short backoff). Keys are scoped to your credential and expire after 24h.
|
|
13788
13803
|
*/
|
|
13789
13804
|
export const createCtwaAd = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateCtwaAdData, ThrowOnError>) => {
|
|
@@ -10930,14 +10930,14 @@ export type TargetingSpec = {
|
|
|
10930
10930
|
*/
|
|
10931
10931
|
languages?: Array<(string)>;
|
|
10932
10932
|
/**
|
|
10933
|
-
* Interest entities from /v1/ads/targeting/search?dimension=interest. Each carries the platform's opaque id. On Google, applied as ad-group interest criteria (affinity and in-market categories) on Display and Search ad groups the request creates; rejected with 400 on Performance Max, on Demand Gen (use the Demand Gen audience `userInterests` there), when attaching to an existing ad group (`adSetId`), and on OpenAI. On Google, interests are create-only.
|
|
10933
|
+
* Interest entities from /v1/ads/targeting/search?dimension=interest. Each carries the platform's opaque id. On Google, applied as ad-group interest criteria (affinity and in-market categories) on Display and Search ad groups the request creates; rejected with 400 on Performance Max, on Demand Gen (use the Demand Gen audience `userInterests` there), when attaching to an existing ad group (`adSetId`), and on OpenAI. On Google, interests are create-only. On TikTok, bare numeric ids are interest categories (`interest_category_ids`) and ids like `keyword:123456` from `dimension=interestKeyword` are additional interests (`interest_keyword_ids`); any other id returns 422 naming `targeting.interests`. TikTok matches people who fit ANY selected interest, additional interest or behavior (one OR'd group), and that group is ANDed with location, age, gender and the other dimensions.
|
|
10934
10934
|
*/
|
|
10935
10935
|
interests?: Array<{
|
|
10936
10936
|
id: string;
|
|
10937
10937
|
name?: string;
|
|
10938
10938
|
}>;
|
|
10939
10939
|
/**
|
|
10940
|
-
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, and the ad group uses the TikTok placement only.
|
|
10940
|
+
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, or who viewed videos with a picked hashtag (`hashtag:<id>` ids from `dimension=hashtag`, sent as a `HASHTAG_RELATED` action with `VIEW_HASHTAG`), and the ad group uses the TikTok placement only. On TikTok, behaviors are OR'd with interests and additional interests.
|
|
10941
10941
|
*/
|
|
10942
10942
|
behaviors?: Array<{
|
|
10943
10943
|
id: string;
|
|
@@ -48146,7 +48146,7 @@ export type CreateStandaloneAdData = {
|
|
|
48146
48146
|
ageMin?: number;
|
|
48147
48147
|
ageMax?: number;
|
|
48148
48148
|
/**
|
|
48149
|
-
* Interest objects from /v1/ads/
|
|
48149
|
+
* Interest objects from /v1/ads/targeting/search?dimension=interest (or dimension=interestKeyword on TikTok). Each must include id and name. On TikTok, bare numeric ids are interest categories (`interest_category_ids`) and ids like `keyword:123456` from `dimension=interestKeyword` are additional interests (`interest_keyword_ids`); any other id returns 422 naming `targeting.interests`. TikTok matches people who fit ANY selected interest, additional interest or behavior (one OR'd group), and that group is ANDed with location, age, gender and the other dimensions.
|
|
48150
48150
|
*/
|
|
48151
48151
|
interests?: Array<{
|
|
48152
48152
|
id: string;
|
|
@@ -48178,7 +48178,7 @@ export type CreateStandaloneAdData = {
|
|
|
48178
48178
|
address?: string;
|
|
48179
48179
|
}>;
|
|
48180
48180
|
/**
|
|
48181
|
-
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, and the ad group uses the TikTok placement only. Each must include id.
|
|
48181
|
+
* Behaviour entities from /v1/ads/targeting/search?dimension=behavior (Meta, TikTok and LinkedIn). On TikTok they target people who interacted with videos (watched to the end, liked, commented or shared, last 15 days) or creators (followed or viewed the profile) in the picked categories, or who viewed videos with a picked hashtag (`hashtag:<id>` ids from `dimension=hashtag`, sent as a `HASHTAG_RELATED` action with `VIEW_HASHTAG`), and the ad group uses the TikTok placement only. On TikTok, behaviors are OR'd with interests and additional interests. Each must include id.
|
|
48182
48182
|
*/
|
|
48183
48183
|
behaviors?: Array<{
|
|
48184
48184
|
id: string;
|
|
@@ -49575,9 +49575,9 @@ export type SearchAdTargetingData = {
|
|
|
49575
49575
|
*/
|
|
49576
49576
|
countryCode?: string;
|
|
49577
49577
|
/**
|
|
49578
|
-
* What to search. `geo` resolves locations (scope further with `geoType`), `interest`/`behavior` resolve audience entities (`behavior`
|
|
49578
|
+
* 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.
|
|
49579
49579
|
*/
|
|
49580
|
-
dimension?: 'geo' | 'interest' | 'behavior' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize';
|
|
49580
|
+
dimension?: 'geo' | 'interest' | 'interestKeyword' | 'behavior' | 'hashtag' | 'income' | 'language' | 'workPosition' | 'workEmployer' | 'workIndustry' | 'industry' | 'jobFunction' | 'seniority' | 'companySize';
|
|
49581
49581
|
/**
|
|
49582
49582
|
* Only used when `dimension=geo`. The kind of location to resolve. `all` searches every type in one relevance-ranked call. Defaults to `city`.
|
|
49583
49583
|
*/
|
|
@@ -49604,7 +49604,7 @@ export type SearchAdTargetingResponse = ({
|
|
|
49604
49604
|
*/
|
|
49605
49605
|
name: string;
|
|
49606
49606
|
/**
|
|
49607
|
-
* What the result is. Equals the requested dimension (interest, behavior, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize), or the location level for geo (country, region, city, zip, metro, ...).
|
|
49607
|
+
* What the result is. Equals the requested dimension (interest, interestKeyword, behavior, hashtag, income, language, workPosition, workEmployer, workIndustry, industry, jobFunction, seniority, companySize), or the location level for geo (country, region, city, zip, metro, ...).
|
|
49608
49608
|
*/
|
|
49609
49609
|
type: string;
|
|
49610
49610
|
/**
|
|
@@ -49615,6 +49615,10 @@ export type SearchAdTargetingResponse = ({
|
|
|
49615
49615
|
* Optional estimated reachable users for this option, when the platform returns it.
|
|
49616
49616
|
*/
|
|
49617
49617
|
audienceSize?: (number) | null;
|
|
49618
|
+
/**
|
|
49619
|
+
* TikTok `interestKeyword` and `hashtag` results only: TikTok's availability status. `EFFECTIVE` / `INEFFECTIVE` for additional interests, `ONLINE` / `OFFLINE` for hashtags. Only `EFFECTIVE` and `ONLINE` ids can be targeted.
|
|
49620
|
+
*/
|
|
49621
|
+
status?: string;
|
|
49618
49622
|
/**
|
|
49619
49623
|
* ISO-3166 alpha-2 of the country a sub-country geo result (city, region, zip, metro) belongs to, when the platform reports it (Meta does). Useful to know whether a location falls under the EU DSA disclosure rules before creating the ad.
|
|
49620
49624
|
*/
|