@zernio/node 0.2.202 → 0.2.203

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
@@ -17886,6 +17886,50 @@ type CreateStandaloneAdData = {
17886
17886
  */
17887
17887
  adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE';
17888
17888
  };
17889
+ /**
17890
+ * Meta only. Placement asset customization: pin a SPECIFIC image to each placement
17891
+ * group on a SINGLE ad (e.g. a 9:16 image on Stories/Reels and a 4:5 on Feed). This
17892
+ * is the same thing Meta Ads Manager produces with "different creative per placement",
17893
+ * mapped to the creative's `asset_feed_spec` + `asset_customization_rules`. It is
17894
+ * deterministic pinning, NOT the auto-optimizing pool of `dynamicCreative` (the two are
17895
+ * mutually exclusive, and it cannot be combined with `creatives[]` or `adSetId`). The
17896
+ * shared copy (headline, body, link, CTA) comes from the top-level single-creative
17897
+ * fields (`headline`, `body`, `linkUrl`, `callToAction`) since only the image varies by
17898
+ * placement. Each rule's `placements` accepts the same fields as the top-level
17899
+ * `placements` object; Meta enforces co-selection rules and returns an actionable error.
17900
+ *
17901
+ */
17902
+ placementAssets?: {
17903
+ /**
17904
+ * Catch-all image for any placement not matched by a rule. REQUIRED — Meta mandates
17905
+ * a default asset customization rule (empty placement spec, lowest priority) on every
17906
+ * placement-customized creative.
17907
+ *
17908
+ */
17909
+ defaultImageUrl: string;
17910
+ /**
17911
+ * One entry per placement group you want to pin a specific image to.
17912
+ */
17913
+ rules: Array<{
17914
+ /**
17915
+ * The image to deliver for this rule's placements.
17916
+ */
17917
+ imageUrl: string;
17918
+ /**
17919
+ * Placements this image is pinned to. At least one field must be set (an empty rule is invalid — that role is served by defaultImageUrl). Same enums as the top-level `placements` object.
17920
+ */
17921
+ placements: {
17922
+ publisherPlatforms?: Array<('facebook' | 'instagram' | 'threads' | 'messenger' | 'audience_network')>;
17923
+ facebookPositions?: Array<('feed' | 'right_hand_column' | 'marketplace' | 'video_feeds' | 'story' | 'search' | 'instream_video' | 'facebook_reels' | 'facebook_reels_overlay' | 'profile_feed' | 'notification')>;
17924
+ instagramPositions?: Array<('stream' | 'story' | 'explore' | 'explore_home' | 'reels' | 'profile_feed' | 'ig_search' | 'profile_reels')>;
17925
+ messengerPositions?: Array<('messenger_home' | 'sponsored_messages' | 'story')>;
17926
+ audienceNetworkPositions?: Array<('classic' | 'rewarded_video')>;
17927
+ threadsPositions?: Array<('threads_stream')>;
17928
+ whatsappPositions?: Array<('status')>;
17929
+ devicePlatforms?: Array<('mobile' | 'desktop')>;
17930
+ };
17931
+ }>;
17932
+ };
17889
17933
  /**
17890
17934
  * Custom audience ID for targeting
17891
17935
  */
package/dist/index.d.ts CHANGED
@@ -17886,6 +17886,50 @@ type CreateStandaloneAdData = {
17886
17886
  */
17887
17887
  adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE';
17888
17888
  };
17889
+ /**
17890
+ * Meta only. Placement asset customization: pin a SPECIFIC image to each placement
17891
+ * group on a SINGLE ad (e.g. a 9:16 image on Stories/Reels and a 4:5 on Feed). This
17892
+ * is the same thing Meta Ads Manager produces with "different creative per placement",
17893
+ * mapped to the creative's `asset_feed_spec` + `asset_customization_rules`. It is
17894
+ * deterministic pinning, NOT the auto-optimizing pool of `dynamicCreative` (the two are
17895
+ * mutually exclusive, and it cannot be combined with `creatives[]` or `adSetId`). The
17896
+ * shared copy (headline, body, link, CTA) comes from the top-level single-creative
17897
+ * fields (`headline`, `body`, `linkUrl`, `callToAction`) since only the image varies by
17898
+ * placement. Each rule's `placements` accepts the same fields as the top-level
17899
+ * `placements` object; Meta enforces co-selection rules and returns an actionable error.
17900
+ *
17901
+ */
17902
+ placementAssets?: {
17903
+ /**
17904
+ * Catch-all image for any placement not matched by a rule. REQUIRED — Meta mandates
17905
+ * a default asset customization rule (empty placement spec, lowest priority) on every
17906
+ * placement-customized creative.
17907
+ *
17908
+ */
17909
+ defaultImageUrl: string;
17910
+ /**
17911
+ * One entry per placement group you want to pin a specific image to.
17912
+ */
17913
+ rules: Array<{
17914
+ /**
17915
+ * The image to deliver for this rule's placements.
17916
+ */
17917
+ imageUrl: string;
17918
+ /**
17919
+ * Placements this image is pinned to. At least one field must be set (an empty rule is invalid — that role is served by defaultImageUrl). Same enums as the top-level `placements` object.
17920
+ */
17921
+ placements: {
17922
+ publisherPlatforms?: Array<('facebook' | 'instagram' | 'threads' | 'messenger' | 'audience_network')>;
17923
+ facebookPositions?: Array<('feed' | 'right_hand_column' | 'marketplace' | 'video_feeds' | 'story' | 'search' | 'instream_video' | 'facebook_reels' | 'facebook_reels_overlay' | 'profile_feed' | 'notification')>;
17924
+ instagramPositions?: Array<('stream' | 'story' | 'explore' | 'explore_home' | 'reels' | 'profile_feed' | 'ig_search' | 'profile_reels')>;
17925
+ messengerPositions?: Array<('messenger_home' | 'sponsored_messages' | 'story')>;
17926
+ audienceNetworkPositions?: Array<('classic' | 'rewarded_video')>;
17927
+ threadsPositions?: Array<('threads_stream')>;
17928
+ whatsappPositions?: Array<('status')>;
17929
+ devicePlatforms?: Array<('mobile' | 'desktop')>;
17930
+ };
17931
+ }>;
17932
+ };
17889
17933
  /**
17890
17934
  * Custom audience ID for targeting
17891
17935
  */
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.202",
39
+ version: "0.2.203",
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.202",
8
+ version: "0.2.203",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zernio/node",
3
- "version": "0.2.202",
3
+ "version": "0.2.203",
4
4
  "description": "The official Node.js library for the Zernio API",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -18348,6 +18348,50 @@ export type CreateStandaloneAdData = {
18348
18348
  */
18349
18349
  adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE';
18350
18350
  };
18351
+ /**
18352
+ * Meta only. Placement asset customization: pin a SPECIFIC image to each placement
18353
+ * group on a SINGLE ad (e.g. a 9:16 image on Stories/Reels and a 4:5 on Feed). This
18354
+ * is the same thing Meta Ads Manager produces with "different creative per placement",
18355
+ * mapped to the creative's `asset_feed_spec` + `asset_customization_rules`. It is
18356
+ * deterministic pinning, NOT the auto-optimizing pool of `dynamicCreative` (the two are
18357
+ * mutually exclusive, and it cannot be combined with `creatives[]` or `adSetId`). The
18358
+ * shared copy (headline, body, link, CTA) comes from the top-level single-creative
18359
+ * fields (`headline`, `body`, `linkUrl`, `callToAction`) since only the image varies by
18360
+ * placement. Each rule's `placements` accepts the same fields as the top-level
18361
+ * `placements` object; Meta enforces co-selection rules and returns an actionable error.
18362
+ *
18363
+ */
18364
+ placementAssets?: {
18365
+ /**
18366
+ * Catch-all image for any placement not matched by a rule. REQUIRED — Meta mandates
18367
+ * a default asset customization rule (empty placement spec, lowest priority) on every
18368
+ * placement-customized creative.
18369
+ *
18370
+ */
18371
+ defaultImageUrl: string;
18372
+ /**
18373
+ * One entry per placement group you want to pin a specific image to.
18374
+ */
18375
+ rules: Array<{
18376
+ /**
18377
+ * The image to deliver for this rule's placements.
18378
+ */
18379
+ imageUrl: string;
18380
+ /**
18381
+ * Placements this image is pinned to. At least one field must be set (an empty rule is invalid — that role is served by defaultImageUrl). Same enums as the top-level `placements` object.
18382
+ */
18383
+ placements: {
18384
+ publisherPlatforms?: Array<('facebook' | 'instagram' | 'threads' | 'messenger' | 'audience_network')>;
18385
+ facebookPositions?: Array<('feed' | 'right_hand_column' | 'marketplace' | 'video_feeds' | 'story' | 'search' | 'instream_video' | 'facebook_reels' | 'facebook_reels_overlay' | 'profile_feed' | 'notification')>;
18386
+ instagramPositions?: Array<('stream' | 'story' | 'explore' | 'explore_home' | 'reels' | 'profile_feed' | 'ig_search' | 'profile_reels')>;
18387
+ messengerPositions?: Array<('messenger_home' | 'sponsored_messages' | 'story')>;
18388
+ audienceNetworkPositions?: Array<('classic' | 'rewarded_video')>;
18389
+ threadsPositions?: Array<('threads_stream')>;
18390
+ whatsappPositions?: Array<('status')>;
18391
+ devicePlatforms?: Array<('mobile' | 'desktop')>;
18392
+ };
18393
+ }>;
18394
+ };
18351
18395
  /**
18352
18396
  * Custom audience ID for targeting
18353
18397
  */