@zernio/node 0.2.676 → 0.2.677
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 +19 -7
- package/dist/index.d.ts +19 -7
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/src/generated/sdk.gen.ts +23 -1
- package/src/generated/types.gen.ts +19 -7
package/dist/index.d.mts
CHANGED
|
@@ -2770,7 +2770,7 @@ type BulkUploadResult = {
|
|
|
2770
2770
|
errors?: Array<(string)>;
|
|
2771
2771
|
}>;
|
|
2772
2772
|
/**
|
|
2773
|
-
* Top-level advisory warnings
|
|
2773
|
+
* Top-level advisory warnings, e.g. `rows_exceed_advisory_limit:500` or `unknown_columns:<a,b,c>` (comma-separated unrecognized CSV column names). Empty when none.
|
|
2774
2774
|
*/
|
|
2775
2775
|
warnings?: Array<(string)>;
|
|
2776
2776
|
/**
|
|
@@ -30088,8 +30088,8 @@ type UpdateAdData = {
|
|
|
30088
30088
|
type?: 'daily' | 'lifetime';
|
|
30089
30089
|
};
|
|
30090
30090
|
/**
|
|
30091
|
-
* Meta + TikTok (demographics/interests)
|
|
30092
|
-
* Pinterest / X
|
|
30091
|
+
* Meta + TikTok (demographics/interests), Google (keyword edits only),
|
|
30092
|
+
* and LinkedIn (geo countries). Pinterest / X return 501.
|
|
30093
30093
|
*
|
|
30094
30094
|
*/
|
|
30095
30095
|
targeting?: {
|
|
@@ -30123,7 +30123,7 @@ type UpdateAdData = {
|
|
|
30123
30123
|
advantage_audience?: 0 | 1;
|
|
30124
30124
|
};
|
|
30125
30125
|
/**
|
|
30126
|
-
* Replace the ad's creative. Meta
|
|
30126
|
+
* Replace the ad's creative. Meta, TikTok, and LinkedIn.
|
|
30127
30127
|
*
|
|
30128
30128
|
* - **Meta**: requires `headline`, `body`, `callToAction`, `linkUrl`, `imageUrl`. The
|
|
30129
30129
|
* ad's existing creative is replaced via a new `/act_X/adcreatives` upload + ad
|
|
@@ -30131,6 +30131,9 @@ type UpdateAdData = {
|
|
|
30131
30131
|
* - **TikTok**: patch-style. Pass any subset; `headline` is ignored (TikTok creatives
|
|
30132
30132
|
* have no headline slot). `body` becomes the in-feed `ad_text`; `linkUrl` becomes
|
|
30133
30133
|
* `landing_page_url`; `videoUrl` triggers a fresh upload.
|
|
30134
|
+
* - **LinkedIn**: uploads new media (image via `imageUrl` or video via `videoUrl`),
|
|
30135
|
+
* creates a new inline media creative on the same campaign, and pauses the old
|
|
30136
|
+
* creative (best-effort). The old creative is retained for historical reporting.
|
|
30134
30137
|
*
|
|
30135
30138
|
*/
|
|
30136
30139
|
creative?: {
|
|
@@ -32041,6 +32044,14 @@ type BoostPostData = {
|
|
|
32041
32044
|
*
|
|
32042
32045
|
*/
|
|
32043
32046
|
dsaPayor?: string;
|
|
32047
|
+
/**
|
|
32048
|
+
* Lead Gen form ID to attach to the boosted ad's creative. REQUIRED when `goal` is `lead_generation`. On Meta this is the leadgen_forms ID (create one via POST /v1/ads/lead-forms). On LinkedIn this is the adForm ID (create one via POST /v1/ads/lead-forms with a LinkedIn account); the creative's `leadgenCallToAction.destination` is set to `urn:li:adForm:{id}`. Ignored for other goals.
|
|
32049
|
+
*/
|
|
32050
|
+
leadGenFormId?: string;
|
|
32051
|
+
/**
|
|
32052
|
+
* Meta, TikTok, and LinkedIn. Publish state of the created entities. Omitted or ACTIVE publishes live (default); PAUSED creates them paused so you can review before they spend. On LinkedIn the whole campaign group, campaign, and creative hierarchy stays PAUSED (intendedStatus PAUSED on each).
|
|
32053
|
+
*/
|
|
32054
|
+
status?: 'ACTIVE' | 'PAUSED';
|
|
32044
32055
|
/**
|
|
32045
32056
|
* Meta only. Explicit ad-set `optimization_goal` override. When omitted,
|
|
32046
32057
|
* defaults to the value derived from `goal`. The value must be compatible
|
|
@@ -32117,8 +32128,9 @@ type CreateStandaloneAdData = {
|
|
|
32117
32128
|
*
|
|
32118
32129
|
* **LinkedIn**
|
|
32119
32130
|
* - `engagement`, `traffic`, `awareness` and `video_views` create standalone Direct Sponsored Content ads. `traffic` requires `linkUrl`; `video_views` requires `video`.
|
|
32131
|
+
* - `lead_generation`: requires `leadGenFormId` (an adForm ID from POST /v1/ads/lead-forms). The campaign objective is set to MAX_LEAD and the creative's `leadgenCallToAction` destination is set to `urn:li:adForm:{id}`.
|
|
32120
32132
|
* - `job_applicants` requires a `platformSpecificData.jobs` creative.
|
|
32121
|
-
* - For `
|
|
32133
|
+
* - For `conversions` on LinkedIn, or to promote an existing post, use POST /v1/ads/boost.
|
|
32122
32134
|
*
|
|
32123
32135
|
* **OpenAI Ads**
|
|
32124
32136
|
* - Only `traffic`, `awareness`, and `conversions` are supported (other goals return 400). Maps to OpenAI's `bidding_type` (clicks, impressions, conversions respectively). `conversions` requires an active conversion event setting on the account; create a tracking tag with `defaultEventType` via the tracking-tags API (`POST /v1/accounts/{accountId}/tracking-tags`), or configure a conversion event in OpenAI Ads Manager, or the request returns 422.
|
|
@@ -32164,7 +32176,7 @@ type CreateStandaloneAdData = {
|
|
|
32164
32176
|
*/
|
|
32165
32177
|
budgetType?: 'daily' | 'lifetime';
|
|
32166
32178
|
/**
|
|
32167
|
-
* Meta and
|
|
32179
|
+
* Meta, TikTok, and LinkedIn. Publish state of the created entities. Omitted or ACTIVE publishes live (default, back-compat); PAUSED creates them paused so you can review before they spend. On Meta the pause is held on the campaign this call creates, leaving the ad set and ad switched on, so a single PUT /v1/ads/campaigns/{campaignId}/status with `active` brings the whole thing live. It is held at every level instead when the pause cannot rely on the campaign: `existingCampaignId` (that campaign may be running and is never touched) or `campaignStatus: ACTIVE`. On TikTok the whole campaign > ad group > ad hierarchy stays paused. On LinkedIn the whole campaign group, campaign, and creative hierarchy stays PAUSED (intendedStatus PAUSED on each).
|
|
32168
32180
|
*/
|
|
32169
32181
|
status?: 'ACTIVE' | 'PAUSED';
|
|
32170
32182
|
/**
|
|
@@ -32212,7 +32224,7 @@ type CreateStandaloneAdData = {
|
|
|
32212
32224
|
*/
|
|
32213
32225
|
linkUrl?: string;
|
|
32214
32226
|
/**
|
|
32215
|
-
*
|
|
32227
|
+
* Lead Gen form ID to attach to the ad's creative. REQUIRED when `goal` is `lead_generation`. Create one via POST /v1/ads/lead-forms. On Meta (facebook/instagram) this is the leadgen_forms ID; the ad set's promoted_object.page_id + LEAD_GENERATION optimization + destination_type ON_AD are derived automatically from the goal. On LinkedIn this is the adForm ID; the creative's `leadgenCallToAction.destination` is set to `urn:li:adForm:{id}` and the campaign objective is set to MAX_LEAD. Forms must be owned by the sponsoredAccount (not the organization) for the URN to resolve. Also required on every Meta ATTACH (`adSetId`) call that targets a lead ad set (the form attaches per-ad; Meta rejects a formless ad in a lead ad set). Both `placementAssets` (per-placement creative) and `dynamicCreative` (multi-text / multi-asset pool, e.g. multiple headlines and primary texts) ARE supported on Meta instant-form lead ads.
|
|
32216
32228
|
*/
|
|
32217
32229
|
leadGenFormId?: string;
|
|
32218
32230
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -2770,7 +2770,7 @@ type BulkUploadResult = {
|
|
|
2770
2770
|
errors?: Array<(string)>;
|
|
2771
2771
|
}>;
|
|
2772
2772
|
/**
|
|
2773
|
-
* Top-level advisory warnings
|
|
2773
|
+
* Top-level advisory warnings, e.g. `rows_exceed_advisory_limit:500` or `unknown_columns:<a,b,c>` (comma-separated unrecognized CSV column names). Empty when none.
|
|
2774
2774
|
*/
|
|
2775
2775
|
warnings?: Array<(string)>;
|
|
2776
2776
|
/**
|
|
@@ -30088,8 +30088,8 @@ type UpdateAdData = {
|
|
|
30088
30088
|
type?: 'daily' | 'lifetime';
|
|
30089
30089
|
};
|
|
30090
30090
|
/**
|
|
30091
|
-
* Meta + TikTok (demographics/interests)
|
|
30092
|
-
* Pinterest / X
|
|
30091
|
+
* Meta + TikTok (demographics/interests), Google (keyword edits only),
|
|
30092
|
+
* and LinkedIn (geo countries). Pinterest / X return 501.
|
|
30093
30093
|
*
|
|
30094
30094
|
*/
|
|
30095
30095
|
targeting?: {
|
|
@@ -30123,7 +30123,7 @@ type UpdateAdData = {
|
|
|
30123
30123
|
advantage_audience?: 0 | 1;
|
|
30124
30124
|
};
|
|
30125
30125
|
/**
|
|
30126
|
-
* Replace the ad's creative. Meta
|
|
30126
|
+
* Replace the ad's creative. Meta, TikTok, and LinkedIn.
|
|
30127
30127
|
*
|
|
30128
30128
|
* - **Meta**: requires `headline`, `body`, `callToAction`, `linkUrl`, `imageUrl`. The
|
|
30129
30129
|
* ad's existing creative is replaced via a new `/act_X/adcreatives` upload + ad
|
|
@@ -30131,6 +30131,9 @@ type UpdateAdData = {
|
|
|
30131
30131
|
* - **TikTok**: patch-style. Pass any subset; `headline` is ignored (TikTok creatives
|
|
30132
30132
|
* have no headline slot). `body` becomes the in-feed `ad_text`; `linkUrl` becomes
|
|
30133
30133
|
* `landing_page_url`; `videoUrl` triggers a fresh upload.
|
|
30134
|
+
* - **LinkedIn**: uploads new media (image via `imageUrl` or video via `videoUrl`),
|
|
30135
|
+
* creates a new inline media creative on the same campaign, and pauses the old
|
|
30136
|
+
* creative (best-effort). The old creative is retained for historical reporting.
|
|
30134
30137
|
*
|
|
30135
30138
|
*/
|
|
30136
30139
|
creative?: {
|
|
@@ -32041,6 +32044,14 @@ type BoostPostData = {
|
|
|
32041
32044
|
*
|
|
32042
32045
|
*/
|
|
32043
32046
|
dsaPayor?: string;
|
|
32047
|
+
/**
|
|
32048
|
+
* Lead Gen form ID to attach to the boosted ad's creative. REQUIRED when `goal` is `lead_generation`. On Meta this is the leadgen_forms ID (create one via POST /v1/ads/lead-forms). On LinkedIn this is the adForm ID (create one via POST /v1/ads/lead-forms with a LinkedIn account); the creative's `leadgenCallToAction.destination` is set to `urn:li:adForm:{id}`. Ignored for other goals.
|
|
32049
|
+
*/
|
|
32050
|
+
leadGenFormId?: string;
|
|
32051
|
+
/**
|
|
32052
|
+
* Meta, TikTok, and LinkedIn. Publish state of the created entities. Omitted or ACTIVE publishes live (default); PAUSED creates them paused so you can review before they spend. On LinkedIn the whole campaign group, campaign, and creative hierarchy stays PAUSED (intendedStatus PAUSED on each).
|
|
32053
|
+
*/
|
|
32054
|
+
status?: 'ACTIVE' | 'PAUSED';
|
|
32044
32055
|
/**
|
|
32045
32056
|
* Meta only. Explicit ad-set `optimization_goal` override. When omitted,
|
|
32046
32057
|
* defaults to the value derived from `goal`. The value must be compatible
|
|
@@ -32117,8 +32128,9 @@ type CreateStandaloneAdData = {
|
|
|
32117
32128
|
*
|
|
32118
32129
|
* **LinkedIn**
|
|
32119
32130
|
* - `engagement`, `traffic`, `awareness` and `video_views` create standalone Direct Sponsored Content ads. `traffic` requires `linkUrl`; `video_views` requires `video`.
|
|
32131
|
+
* - `lead_generation`: requires `leadGenFormId` (an adForm ID from POST /v1/ads/lead-forms). The campaign objective is set to MAX_LEAD and the creative's `leadgenCallToAction` destination is set to `urn:li:adForm:{id}`.
|
|
32120
32132
|
* - `job_applicants` requires a `platformSpecificData.jobs` creative.
|
|
32121
|
-
* - For `
|
|
32133
|
+
* - For `conversions` on LinkedIn, or to promote an existing post, use POST /v1/ads/boost.
|
|
32122
32134
|
*
|
|
32123
32135
|
* **OpenAI Ads**
|
|
32124
32136
|
* - Only `traffic`, `awareness`, and `conversions` are supported (other goals return 400). Maps to OpenAI's `bidding_type` (clicks, impressions, conversions respectively). `conversions` requires an active conversion event setting on the account; create a tracking tag with `defaultEventType` via the tracking-tags API (`POST /v1/accounts/{accountId}/tracking-tags`), or configure a conversion event in OpenAI Ads Manager, or the request returns 422.
|
|
@@ -32164,7 +32176,7 @@ type CreateStandaloneAdData = {
|
|
|
32164
32176
|
*/
|
|
32165
32177
|
budgetType?: 'daily' | 'lifetime';
|
|
32166
32178
|
/**
|
|
32167
|
-
* Meta and
|
|
32179
|
+
* Meta, TikTok, and LinkedIn. Publish state of the created entities. Omitted or ACTIVE publishes live (default, back-compat); PAUSED creates them paused so you can review before they spend. On Meta the pause is held on the campaign this call creates, leaving the ad set and ad switched on, so a single PUT /v1/ads/campaigns/{campaignId}/status with `active` brings the whole thing live. It is held at every level instead when the pause cannot rely on the campaign: `existingCampaignId` (that campaign may be running and is never touched) or `campaignStatus: ACTIVE`. On TikTok the whole campaign > ad group > ad hierarchy stays paused. On LinkedIn the whole campaign group, campaign, and creative hierarchy stays PAUSED (intendedStatus PAUSED on each).
|
|
32168
32180
|
*/
|
|
32169
32181
|
status?: 'ACTIVE' | 'PAUSED';
|
|
32170
32182
|
/**
|
|
@@ -32212,7 +32224,7 @@ type CreateStandaloneAdData = {
|
|
|
32212
32224
|
*/
|
|
32213
32225
|
linkUrl?: string;
|
|
32214
32226
|
/**
|
|
32215
|
-
*
|
|
32227
|
+
* Lead Gen form ID to attach to the ad's creative. REQUIRED when `goal` is `lead_generation`. Create one via POST /v1/ads/lead-forms. On Meta (facebook/instagram) this is the leadgen_forms ID; the ad set's promoted_object.page_id + LEAD_GENERATION optimization + destination_type ON_AD are derived automatically from the goal. On LinkedIn this is the adForm ID; the creative's `leadgenCallToAction.destination` is set to `urn:li:adForm:{id}` and the campaign objective is set to MAX_LEAD. Forms must be owned by the sponsoredAccount (not the organization) for the URN to resolve. Also required on every Meta ATTACH (`adSetId`) call that targets a lead ad set (the form attaches per-ad; Meta rejects a formless ad in a lead ad set). Both `placementAssets` (per-placement creative) and `dynamicCreative` (multi-text / multi-asset pool, e.g. multiple headlines and primary texts) ARE supported on Meta instant-form lead ads.
|
|
32216
32228
|
*/
|
|
32217
32229
|
leadGenFormId?: string;
|
|
32218
32230
|
/**
|
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: "@zernio/node",
|
|
39
|
-
version: "0.2.
|
|
39
|
+
version: "0.2.677",
|
|
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: "@zernio/node",
|
|
8
|
-
version: "0.2.
|
|
8
|
+
version: "0.2.677",
|
|
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
|
@@ -908,6 +908,25 @@ export const deletePost = <ThrowOnError extends boolean = false>(options: Option
|
|
|
908
908
|
/**
|
|
909
909
|
* Bulk upload from CSV
|
|
910
910
|
* Create multiple posts by uploading a CSV file. Use dryRun=true to validate without creating posts.
|
|
911
|
+
*
|
|
912
|
+
* CSV columns:
|
|
913
|
+
* - Required: `platforms`, `profiles`, and a schedule (one of `schedule_time`, a `schedule_time_<platform>` override, `publish_now=true`, `use_queue=true`, or `is_draft=true`).
|
|
914
|
+
* - Content: at least one of `post_content`, `title`, or `media_urls` is required.
|
|
915
|
+
* - Aliases: a handful of columns accept the JSON field name from POST /v1/posts, since integrators infer the CSV shape from that endpoint's body. When both are present the real CSV column wins, unless it is blank for that row, in which case the alias value is used.
|
|
916
|
+
* - `content` aliases `post_content`
|
|
917
|
+
* - `timezone` aliases `tz`
|
|
918
|
+
* - `scheduledFor` aliases `schedule_time`
|
|
919
|
+
* - `mediaUrls` aliases `media_urls`
|
|
920
|
+
* - Per-platform overrides use three dynamic column prefixes, one column per platform (e.g. `schedule_time_instagram`, `custom_content_tiktok`, `custom_media_youtube`): `schedule_time_<platform>`, `custom_content_<platform>`, `custom_media_<platform>`.
|
|
921
|
+
* - Any other column is not read. It does not error, but it is reported in the response's `warnings` array as `unknown_columns:<a,b,c>` (see BulkUploadResult), so a misnamed or unsupported column is never silently dropped.
|
|
922
|
+
* - Row limits: 5000 rows is a hard cap that returns 400 above it. 500 rows is only an advisory threshold, it adds `rows_exceed_advisory_limit:500` to `warnings` and the request still processes.
|
|
923
|
+
*
|
|
924
|
+
* Example row (header + one data row):
|
|
925
|
+
* ```
|
|
926
|
+
* post_content,platforms,profiles,schedule_time,tz
|
|
927
|
+
* "Hello world",instagram,MyProfile,2026-09-01 10:00,America/New_York
|
|
928
|
+
* ```
|
|
929
|
+
*
|
|
911
930
|
*/
|
|
912
931
|
export const bulkUploadPosts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<BulkUploadPostsData, ThrowOnError>) => {
|
|
913
932
|
return (options?.client ?? client).post<BulkUploadPostsResponse, BulkUploadPostsError, ThrowOnError>({
|
|
@@ -8006,7 +8025,10 @@ export const getAd = <ThrowOnError extends boolean = false>(options: OptionsLega
|
|
|
8006
8025
|
* kind on the ad group (criteria not in the list are removed); a kind left out is
|
|
8007
8026
|
* untouched. Any other `targeting` field returns 400: Google cannot mutate broad
|
|
8008
8027
|
* targeting post-create without recreating the campaign. `creative` returns 501.
|
|
8009
|
-
* - **
|
|
8028
|
+
* - **LinkedIn**: status, budget, targeting (geo countries only, applied to the
|
|
8029
|
+
* LinkedIn Campaign via PARTIAL_UPDATE), and creative (uploads new media, creates a
|
|
8030
|
+
* replacement inline creative on the same campaign, pauses the old one).
|
|
8031
|
+
* - **Pinterest / X / OpenAI Ads**: status + budget only. Sending
|
|
8010
8032
|
* `targeting` or `creative` returns 501 with code `unsupported_platform_operation`.
|
|
8011
8033
|
* OpenAI Ads budget is lifetime-only (see `budget.type` below).
|
|
8012
8034
|
*
|
|
@@ -1478,7 +1478,7 @@ export type BulkUploadResult = {
|
|
|
1478
1478
|
errors?: Array<(string)>;
|
|
1479
1479
|
}>;
|
|
1480
1480
|
/**
|
|
1481
|
-
* Top-level advisory warnings
|
|
1481
|
+
* Top-level advisory warnings, e.g. `rows_exceed_advisory_limit:500` or `unknown_columns:<a,b,c>` (comma-separated unrecognized CSV column names). Empty when none.
|
|
1482
1482
|
*/
|
|
1483
1483
|
warnings?: Array<(string)>;
|
|
1484
1484
|
/**
|
|
@@ -30553,8 +30553,8 @@ export type UpdateAdData = {
|
|
|
30553
30553
|
type?: 'daily' | 'lifetime';
|
|
30554
30554
|
};
|
|
30555
30555
|
/**
|
|
30556
|
-
* Meta + TikTok (demographics/interests)
|
|
30557
|
-
* Pinterest / X
|
|
30556
|
+
* Meta + TikTok (demographics/interests), Google (keyword edits only),
|
|
30557
|
+
* and LinkedIn (geo countries). Pinterest / X return 501.
|
|
30558
30558
|
*
|
|
30559
30559
|
*/
|
|
30560
30560
|
targeting?: {
|
|
@@ -30588,7 +30588,7 @@ export type UpdateAdData = {
|
|
|
30588
30588
|
advantage_audience?: 0 | 1;
|
|
30589
30589
|
};
|
|
30590
30590
|
/**
|
|
30591
|
-
* Replace the ad's creative. Meta
|
|
30591
|
+
* Replace the ad's creative. Meta, TikTok, and LinkedIn.
|
|
30592
30592
|
*
|
|
30593
30593
|
* - **Meta**: requires `headline`, `body`, `callToAction`, `linkUrl`, `imageUrl`. The
|
|
30594
30594
|
* ad's existing creative is replaced via a new `/act_X/adcreatives` upload + ad
|
|
@@ -30596,6 +30596,9 @@ export type UpdateAdData = {
|
|
|
30596
30596
|
* - **TikTok**: patch-style. Pass any subset; `headline` is ignored (TikTok creatives
|
|
30597
30597
|
* have no headline slot). `body` becomes the in-feed `ad_text`; `linkUrl` becomes
|
|
30598
30598
|
* `landing_page_url`; `videoUrl` triggers a fresh upload.
|
|
30599
|
+
* - **LinkedIn**: uploads new media (image via `imageUrl` or video via `videoUrl`),
|
|
30600
|
+
* creates a new inline media creative on the same campaign, and pauses the old
|
|
30601
|
+
* creative (best-effort). The old creative is retained for historical reporting.
|
|
30599
30602
|
*
|
|
30600
30603
|
*/
|
|
30601
30604
|
creative?: {
|
|
@@ -32635,6 +32638,14 @@ export type BoostPostData = {
|
|
|
32635
32638
|
*
|
|
32636
32639
|
*/
|
|
32637
32640
|
dsaPayor?: string;
|
|
32641
|
+
/**
|
|
32642
|
+
* Lead Gen form ID to attach to the boosted ad's creative. REQUIRED when `goal` is `lead_generation`. On Meta this is the leadgen_forms ID (create one via POST /v1/ads/lead-forms). On LinkedIn this is the adForm ID (create one via POST /v1/ads/lead-forms with a LinkedIn account); the creative's `leadgenCallToAction.destination` is set to `urn:li:adForm:{id}`. Ignored for other goals.
|
|
32643
|
+
*/
|
|
32644
|
+
leadGenFormId?: string;
|
|
32645
|
+
/**
|
|
32646
|
+
* Meta, TikTok, and LinkedIn. Publish state of the created entities. Omitted or ACTIVE publishes live (default); PAUSED creates them paused so you can review before they spend. On LinkedIn the whole campaign group, campaign, and creative hierarchy stays PAUSED (intendedStatus PAUSED on each).
|
|
32647
|
+
*/
|
|
32648
|
+
status?: 'ACTIVE' | 'PAUSED';
|
|
32638
32649
|
/**
|
|
32639
32650
|
* Meta only. Explicit ad-set `optimization_goal` override. When omitted,
|
|
32640
32651
|
* defaults to the value derived from `goal`. The value must be compatible
|
|
@@ -32714,8 +32725,9 @@ export type CreateStandaloneAdData = {
|
|
|
32714
32725
|
*
|
|
32715
32726
|
* **LinkedIn**
|
|
32716
32727
|
* - `engagement`, `traffic`, `awareness` and `video_views` create standalone Direct Sponsored Content ads. `traffic` requires `linkUrl`; `video_views` requires `video`.
|
|
32728
|
+
* - `lead_generation`: requires `leadGenFormId` (an adForm ID from POST /v1/ads/lead-forms). The campaign objective is set to MAX_LEAD and the creative's `leadgenCallToAction` destination is set to `urn:li:adForm:{id}`.
|
|
32717
32729
|
* - `job_applicants` requires a `platformSpecificData.jobs` creative.
|
|
32718
|
-
* - For `
|
|
32730
|
+
* - For `conversions` on LinkedIn, or to promote an existing post, use POST /v1/ads/boost.
|
|
32719
32731
|
*
|
|
32720
32732
|
* **OpenAI Ads**
|
|
32721
32733
|
* - Only `traffic`, `awareness`, and `conversions` are supported (other goals return 400). Maps to OpenAI's `bidding_type` (clicks, impressions, conversions respectively). `conversions` requires an active conversion event setting on the account; create a tracking tag with `defaultEventType` via the tracking-tags API (`POST /v1/accounts/{accountId}/tracking-tags`), or configure a conversion event in OpenAI Ads Manager, or the request returns 422.
|
|
@@ -32761,7 +32773,7 @@ export type CreateStandaloneAdData = {
|
|
|
32761
32773
|
*/
|
|
32762
32774
|
budgetType?: 'daily' | 'lifetime';
|
|
32763
32775
|
/**
|
|
32764
|
-
* Meta and
|
|
32776
|
+
* Meta, TikTok, and LinkedIn. Publish state of the created entities. Omitted or ACTIVE publishes live (default, back-compat); PAUSED creates them paused so you can review before they spend. On Meta the pause is held on the campaign this call creates, leaving the ad set and ad switched on, so a single PUT /v1/ads/campaigns/{campaignId}/status with `active` brings the whole thing live. It is held at every level instead when the pause cannot rely on the campaign: `existingCampaignId` (that campaign may be running and is never touched) or `campaignStatus: ACTIVE`. On TikTok the whole campaign > ad group > ad hierarchy stays paused. On LinkedIn the whole campaign group, campaign, and creative hierarchy stays PAUSED (intendedStatus PAUSED on each).
|
|
32765
32777
|
*/
|
|
32766
32778
|
status?: 'ACTIVE' | 'PAUSED';
|
|
32767
32779
|
/**
|
|
@@ -32809,7 +32821,7 @@ export type CreateStandaloneAdData = {
|
|
|
32809
32821
|
*/
|
|
32810
32822
|
linkUrl?: string;
|
|
32811
32823
|
/**
|
|
32812
|
-
*
|
|
32824
|
+
* Lead Gen form ID to attach to the ad's creative. REQUIRED when `goal` is `lead_generation`. Create one via POST /v1/ads/lead-forms. On Meta (facebook/instagram) this is the leadgen_forms ID; the ad set's promoted_object.page_id + LEAD_GENERATION optimization + destination_type ON_AD are derived automatically from the goal. On LinkedIn this is the adForm ID; the creative's `leadgenCallToAction.destination` is set to `urn:li:adForm:{id}` and the campaign objective is set to MAX_LEAD. Forms must be owned by the sponsoredAccount (not the organization) for the URN to resolve. Also required on every Meta ATTACH (`adSetId`) call that targets a lead ad set (the form attaches per-ad; Meta rejects a formless ad in a lead ad set). Both `placementAssets` (per-placement creative) and `dynamicCreative` (multi-text / multi-asset pool, e.g. multiple headlines and primary texts) ARE supported on Meta instant-form lead ads.
|
|
32813
32825
|
*/
|
|
32814
32826
|
leadGenFormId?: string;
|
|
32815
32827
|
/**
|