@zernio/node 0.2.79 → 0.2.80

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 CHANGED
@@ -12166,14 +12166,20 @@ type CreateStandaloneAdData = {
12166
12166
  adAccountId: string;
12167
12167
  name: string;
12168
12168
  /**
12169
- * Available goals vary by platform. Meta (Facebook/Instagram) and TikTok support all 7. LinkedIn supports all except app_promotion. Twitter/X supports engagement, traffic, awareness, video_views, app_promotion. Pinterest and Google Ads support only engagement, traffic, awareness, video_views.
12169
+ * Required on legacy + multi-creative shapes. Inherited from the ad set on the attach shape. Available goals vary by platform.
12170
12170
  */
12171
- goal: 'engagement' | 'traffic' | 'awareness' | 'video_views' | 'lead_generation' | 'conversions' | 'app_promotion';
12172
- budgetAmount: number;
12173
- budgetType: 'daily' | 'lifetime';
12171
+ goal?: 'engagement' | 'traffic' | 'awareness' | 'video_views' | 'lead_generation' | 'conversions' | 'app_promotion';
12172
+ /**
12173
+ * Required on legacy + multi-creative shapes. Inherited on attach.
12174
+ */
12175
+ budgetAmount?: number;
12176
+ /**
12177
+ * Required on legacy + multi-creative shapes. Inherited on attach.
12178
+ */
12179
+ budgetType?: 'daily' | 'lifetime';
12174
12180
  currency?: string;
12175
12181
  /**
12176
- * Required for most platforms. Max: Meta=255, Google=30, Pinterest=100
12182
+ * Required on legacy + attach shapes (skip for multi-creative — use `creatives[].headline`). Max: Meta=255, Google=30, Pinterest=100
12177
12183
  */
12178
12184
  headline?: string;
12179
12185
  /**
@@ -12181,18 +12187,43 @@ type CreateStandaloneAdData = {
12181
12187
  */
12182
12188
  longHeadline?: string;
12183
12189
  /**
12184
- * Max: Google=90, Pinterest=500
12190
+ * Required on legacy + attach shapes. Max: Google=90, Pinterest=500
12185
12191
  */
12186
- body: string;
12192
+ body?: string;
12187
12193
  /**
12188
- * Meta only
12194
+ * Required on legacy + attach shapes. Meta only.
12189
12195
  */
12190
12196
  callToAction?: 'LEARN_MORE' | 'SHOP_NOW' | 'SIGN_UP' | 'BOOK_TRAVEL' | 'CONTACT_US' | 'DOWNLOAD' | 'GET_OFFER' | 'GET_QUOTE' | 'SUBSCRIBE' | 'WATCH_MORE';
12197
+ /**
12198
+ * Required on legacy + attach shapes. Skip for multi-creative.
12199
+ */
12191
12200
  linkUrl?: string;
12192
12201
  /**
12193
- * Image URL (or video URL for TikTok). Not required for Google Search campaigns.
12202
+ * Required on legacy + attach shapes. Not required for Google Search campaigns.
12194
12203
  */
12195
12204
  imageUrl?: string;
12205
+ /**
12206
+ * Meta-only. When present, switches to the multi-creative shape:
12207
+ * creates 1 campaign + 1 ad set + N ads (one per entry here).
12208
+ * Top-level `headline` / `body` / `imageUrl` / `linkUrl` /
12209
+ * `callToAction` are ignored in this mode. Mutually exclusive with `adSetId`.
12210
+ *
12211
+ */
12212
+ creatives?: Array<{
12213
+ headline: string;
12214
+ body: string;
12215
+ imageUrl: string;
12216
+ linkUrl: string;
12217
+ callToAction: 'LEARN_MORE' | 'SHOP_NOW' | 'SIGN_UP' | 'BOOK_TRAVEL' | 'CONTACT_US' | 'DOWNLOAD' | 'GET_OFFER' | 'GET_QUOTE' | 'SUBSCRIBE' | 'WATCH_MORE';
12218
+ }>;
12219
+ /**
12220
+ * Meta-only. When present, switches to the attach shape: adds
12221
+ * one new ad to this existing ad set without creating a new
12222
+ * campaign. Budget, targeting, goal, and schedule are inherited
12223
+ * from the ad set on Meta. Mutually exclusive with `creatives[]`.
12224
+ *
12225
+ */
12226
+ adSetId?: string;
12196
12227
  /**
12197
12228
  * Google Display only
12198
12229
  */
@@ -12241,10 +12272,15 @@ type CreateStandaloneAdData = {
12241
12272
  advantageAudience?: 0 | 1;
12242
12273
  };
12243
12274
  };
12244
- type CreateStandaloneAdResponse = ({
12275
+ type CreateStandaloneAdResponse = (({
12245
12276
  ad?: Ad;
12246
12277
  message?: string;
12247
- });
12278
+ } | {
12279
+ ads?: Array<Ad>;
12280
+ platformCampaignId?: string;
12281
+ platformAdSetId?: string;
12282
+ message?: string;
12283
+ }));
12248
12284
  type CreateStandaloneAdError = (unknown | {
12249
12285
  error?: string;
12250
12286
  });
package/dist/index.d.ts CHANGED
@@ -12166,14 +12166,20 @@ type CreateStandaloneAdData = {
12166
12166
  adAccountId: string;
12167
12167
  name: string;
12168
12168
  /**
12169
- * Available goals vary by platform. Meta (Facebook/Instagram) and TikTok support all 7. LinkedIn supports all except app_promotion. Twitter/X supports engagement, traffic, awareness, video_views, app_promotion. Pinterest and Google Ads support only engagement, traffic, awareness, video_views.
12169
+ * Required on legacy + multi-creative shapes. Inherited from the ad set on the attach shape. Available goals vary by platform.
12170
12170
  */
12171
- goal: 'engagement' | 'traffic' | 'awareness' | 'video_views' | 'lead_generation' | 'conversions' | 'app_promotion';
12172
- budgetAmount: number;
12173
- budgetType: 'daily' | 'lifetime';
12171
+ goal?: 'engagement' | 'traffic' | 'awareness' | 'video_views' | 'lead_generation' | 'conversions' | 'app_promotion';
12172
+ /**
12173
+ * Required on legacy + multi-creative shapes. Inherited on attach.
12174
+ */
12175
+ budgetAmount?: number;
12176
+ /**
12177
+ * Required on legacy + multi-creative shapes. Inherited on attach.
12178
+ */
12179
+ budgetType?: 'daily' | 'lifetime';
12174
12180
  currency?: string;
12175
12181
  /**
12176
- * Required for most platforms. Max: Meta=255, Google=30, Pinterest=100
12182
+ * Required on legacy + attach shapes (skip for multi-creative — use `creatives[].headline`). Max: Meta=255, Google=30, Pinterest=100
12177
12183
  */
12178
12184
  headline?: string;
12179
12185
  /**
@@ -12181,18 +12187,43 @@ type CreateStandaloneAdData = {
12181
12187
  */
12182
12188
  longHeadline?: string;
12183
12189
  /**
12184
- * Max: Google=90, Pinterest=500
12190
+ * Required on legacy + attach shapes. Max: Google=90, Pinterest=500
12185
12191
  */
12186
- body: string;
12192
+ body?: string;
12187
12193
  /**
12188
- * Meta only
12194
+ * Required on legacy + attach shapes. Meta only.
12189
12195
  */
12190
12196
  callToAction?: 'LEARN_MORE' | 'SHOP_NOW' | 'SIGN_UP' | 'BOOK_TRAVEL' | 'CONTACT_US' | 'DOWNLOAD' | 'GET_OFFER' | 'GET_QUOTE' | 'SUBSCRIBE' | 'WATCH_MORE';
12197
+ /**
12198
+ * Required on legacy + attach shapes. Skip for multi-creative.
12199
+ */
12191
12200
  linkUrl?: string;
12192
12201
  /**
12193
- * Image URL (or video URL for TikTok). Not required for Google Search campaigns.
12202
+ * Required on legacy + attach shapes. Not required for Google Search campaigns.
12194
12203
  */
12195
12204
  imageUrl?: string;
12205
+ /**
12206
+ * Meta-only. When present, switches to the multi-creative shape:
12207
+ * creates 1 campaign + 1 ad set + N ads (one per entry here).
12208
+ * Top-level `headline` / `body` / `imageUrl` / `linkUrl` /
12209
+ * `callToAction` are ignored in this mode. Mutually exclusive with `adSetId`.
12210
+ *
12211
+ */
12212
+ creatives?: Array<{
12213
+ headline: string;
12214
+ body: string;
12215
+ imageUrl: string;
12216
+ linkUrl: string;
12217
+ callToAction: 'LEARN_MORE' | 'SHOP_NOW' | 'SIGN_UP' | 'BOOK_TRAVEL' | 'CONTACT_US' | 'DOWNLOAD' | 'GET_OFFER' | 'GET_QUOTE' | 'SUBSCRIBE' | 'WATCH_MORE';
12218
+ }>;
12219
+ /**
12220
+ * Meta-only. When present, switches to the attach shape: adds
12221
+ * one new ad to this existing ad set without creating a new
12222
+ * campaign. Budget, targeting, goal, and schedule are inherited
12223
+ * from the ad set on Meta. Mutually exclusive with `creatives[]`.
12224
+ *
12225
+ */
12226
+ adSetId?: string;
12196
12227
  /**
12197
12228
  * Google Display only
12198
12229
  */
@@ -12241,10 +12272,15 @@ type CreateStandaloneAdData = {
12241
12272
  advantageAudience?: 0 | 1;
12242
12273
  };
12243
12274
  };
12244
- type CreateStandaloneAdResponse = ({
12275
+ type CreateStandaloneAdResponse = (({
12245
12276
  ad?: Ad;
12246
12277
  message?: string;
12247
- });
12278
+ } | {
12279
+ ads?: Array<Ad>;
12280
+ platformCampaignId?: string;
12281
+ platformAdSetId?: string;
12282
+ message?: string;
12283
+ }));
12248
12284
  type CreateStandaloneAdError = (unknown | {
12249
12285
  error?: string;
12250
12286
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zernio/node",
3
- "version": "0.2.79",
3
+ "version": "0.2.80",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -3158,7 +3158,14 @@ export const boostPost = <ThrowOnError extends boolean = false>(options: Options
3158
3158
 
3159
3159
  /**
3160
3160
  * Create standalone ad
3161
- * Creates a paid ad with custom creative (headline, body, image/video, link). Creates the full platform campaign hierarchy.
3161
+ * Creates a paid ad with custom creative. The request body supports three mutually-exclusive shapes:
3162
+ *
3163
+ * 1. **Legacy single-creative** (all platforms). Top-level `headline` + `body` + `imageUrl` + `linkUrl` + `callToAction` create 1 campaign + 1 ad set + 1 ad.
3164
+ * 2. **Multi-creative** (Meta only — use `creatives[]` array). Creates 1 campaign + 1 ad set + N ads sharing the same budget / targeting / schedule. This is the standard performance-marketing creative-testing flow — Meta's delivery algorithm A/B tests the creatives inside a single ad set so budget isn't fragmented across N parallel campaigns.
3165
+ * 3. **Attach to existing ad set** (Meta only — pass `adSetId` + a single creative). Adds one new ad to an existing ad set without creating a new campaign. Budget, targeting, goal are inherited from the ad set on Meta.
3166
+ *
3167
+ * `creatives[]` and `adSetId` are mutually exclusive; specifying both returns 400.
3168
+ *
3162
3169
  */
3163
3170
  export const createStandaloneAd = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateStandaloneAdData, ThrowOnError>) => {
3164
3171
  return (options?.client ?? client).post<CreateStandaloneAdResponse, CreateStandaloneAdError, ThrowOnError>({
@@ -12476,14 +12476,20 @@ export type CreateStandaloneAdData = {
12476
12476
  adAccountId: string;
12477
12477
  name: string;
12478
12478
  /**
12479
- * Available goals vary by platform. Meta (Facebook/Instagram) and TikTok support all 7. LinkedIn supports all except app_promotion. Twitter/X supports engagement, traffic, awareness, video_views, app_promotion. Pinterest and Google Ads support only engagement, traffic, awareness, video_views.
12479
+ * Required on legacy + multi-creative shapes. Inherited from the ad set on the attach shape. Available goals vary by platform.
12480
12480
  */
12481
- goal: 'engagement' | 'traffic' | 'awareness' | 'video_views' | 'lead_generation' | 'conversions' | 'app_promotion';
12482
- budgetAmount: number;
12483
- budgetType: 'daily' | 'lifetime';
12481
+ goal?: 'engagement' | 'traffic' | 'awareness' | 'video_views' | 'lead_generation' | 'conversions' | 'app_promotion';
12482
+ /**
12483
+ * Required on legacy + multi-creative shapes. Inherited on attach.
12484
+ */
12485
+ budgetAmount?: number;
12486
+ /**
12487
+ * Required on legacy + multi-creative shapes. Inherited on attach.
12488
+ */
12489
+ budgetType?: 'daily' | 'lifetime';
12484
12490
  currency?: string;
12485
12491
  /**
12486
- * Required for most platforms. Max: Meta=255, Google=30, Pinterest=100
12492
+ * Required on legacy + attach shapes (skip for multi-creative — use `creatives[].headline`). Max: Meta=255, Google=30, Pinterest=100
12487
12493
  */
12488
12494
  headline?: string;
12489
12495
  /**
@@ -12491,18 +12497,43 @@ export type CreateStandaloneAdData = {
12491
12497
  */
12492
12498
  longHeadline?: string;
12493
12499
  /**
12494
- * Max: Google=90, Pinterest=500
12500
+ * Required on legacy + attach shapes. Max: Google=90, Pinterest=500
12495
12501
  */
12496
- body: string;
12502
+ body?: string;
12497
12503
  /**
12498
- * Meta only
12504
+ * Required on legacy + attach shapes. Meta only.
12499
12505
  */
12500
12506
  callToAction?: 'LEARN_MORE' | 'SHOP_NOW' | 'SIGN_UP' | 'BOOK_TRAVEL' | 'CONTACT_US' | 'DOWNLOAD' | 'GET_OFFER' | 'GET_QUOTE' | 'SUBSCRIBE' | 'WATCH_MORE';
12507
+ /**
12508
+ * Required on legacy + attach shapes. Skip for multi-creative.
12509
+ */
12501
12510
  linkUrl?: string;
12502
12511
  /**
12503
- * Image URL (or video URL for TikTok). Not required for Google Search campaigns.
12512
+ * Required on legacy + attach shapes. Not required for Google Search campaigns.
12504
12513
  */
12505
12514
  imageUrl?: string;
12515
+ /**
12516
+ * Meta-only. When present, switches to the multi-creative shape:
12517
+ * creates 1 campaign + 1 ad set + N ads (one per entry here).
12518
+ * Top-level `headline` / `body` / `imageUrl` / `linkUrl` /
12519
+ * `callToAction` are ignored in this mode. Mutually exclusive with `adSetId`.
12520
+ *
12521
+ */
12522
+ creatives?: Array<{
12523
+ headline: string;
12524
+ body: string;
12525
+ imageUrl: string;
12526
+ linkUrl: string;
12527
+ callToAction: 'LEARN_MORE' | 'SHOP_NOW' | 'SIGN_UP' | 'BOOK_TRAVEL' | 'CONTACT_US' | 'DOWNLOAD' | 'GET_OFFER' | 'GET_QUOTE' | 'SUBSCRIBE' | 'WATCH_MORE';
12528
+ }>;
12529
+ /**
12530
+ * Meta-only. When present, switches to the attach shape: adds
12531
+ * one new ad to this existing ad set without creating a new
12532
+ * campaign. Budget, targeting, goal, and schedule are inherited
12533
+ * from the ad set on Meta. Mutually exclusive with `creatives[]`.
12534
+ *
12535
+ */
12536
+ adSetId?: string;
12506
12537
  /**
12507
12538
  * Google Display only
12508
12539
  */
@@ -12552,10 +12583,15 @@ export type CreateStandaloneAdData = {
12552
12583
  };
12553
12584
  };
12554
12585
 
12555
- export type CreateStandaloneAdResponse = ({
12586
+ export type CreateStandaloneAdResponse = (({
12556
12587
  ad?: Ad;
12557
12588
  message?: string;
12558
- });
12589
+ } | {
12590
+ ads?: Array<Ad>;
12591
+ platformCampaignId?: string;
12592
+ platformAdSetId?: string;
12593
+ message?: string;
12594
+ }));
12559
12595
 
12560
12596
  export type CreateStandaloneAdError = (unknown | {
12561
12597
  error?: string;