@zernio/node 0.2.202 → 0.2.204
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 +91 -7
- package/dist/index.d.ts +91 -7
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/src/generated/sdk.gen.ts +2 -2
- package/src/generated/types.gen.ts +91 -7
package/dist/index.d.mts
CHANGED
|
@@ -3113,13 +3113,13 @@ type RecyclingConfig = {
|
|
|
3113
3113
|
*/
|
|
3114
3114
|
startDate?: string;
|
|
3115
3115
|
/**
|
|
3116
|
-
* Stop recycling after this many copies have been created
|
|
3116
|
+
* Stop recycling after this many copies have been created. Send null on update to clear this limit.
|
|
3117
3117
|
*/
|
|
3118
|
-
expireCount?: number;
|
|
3118
|
+
expireCount?: (number) | null;
|
|
3119
3119
|
/**
|
|
3120
|
-
* Stop recycling after this date, regardless of count
|
|
3120
|
+
* Stop recycling after this date, regardless of count. Send null on update to clear this limit.
|
|
3121
3121
|
*/
|
|
3122
|
-
expireDate?: string;
|
|
3122
|
+
expireDate?: (string) | null;
|
|
3123
3123
|
/**
|
|
3124
3124
|
* Array of content variations for recycled copies. On each recycle, the next
|
|
3125
3125
|
* variation is used in round-robin order. Recommended for Twitter and Pinterest
|
|
@@ -6997,8 +6997,8 @@ type CreatePostData = {
|
|
|
6997
6997
|
* Target platforms and accounts for this post. Required for non-draft posts (returns 400 if empty). Drafts can omit platforms.
|
|
6998
6998
|
*/
|
|
6999
6999
|
platforms?: Array<{
|
|
7000
|
-
platform
|
|
7001
|
-
accountId
|
|
7000
|
+
platform: string;
|
|
7001
|
+
accountId: string;
|
|
7002
7002
|
/**
|
|
7003
7003
|
* Platform-specific text override. When set, this content is used instead of the top-level post content for this platform. Useful for tailoring captions per platform (e.g. keeping tweets under 280 characters).
|
|
7004
7004
|
*/
|
|
@@ -7089,8 +7089,48 @@ type GetPostError = ({
|
|
|
7089
7089
|
} | unknown);
|
|
7090
7090
|
type UpdatePostData = {
|
|
7091
7091
|
body: {
|
|
7092
|
+
title?: string;
|
|
7092
7093
|
content?: string;
|
|
7094
|
+
mediaItems?: Array<MediaItem>;
|
|
7095
|
+
/**
|
|
7096
|
+
* Target platforms and accounts for this post. Each item must include platform and accountId.
|
|
7097
|
+
*/
|
|
7098
|
+
platforms?: Array<{
|
|
7099
|
+
platform: string;
|
|
7100
|
+
accountId: string;
|
|
7101
|
+
/**
|
|
7102
|
+
* Platform-specific text override.
|
|
7103
|
+
*/
|
|
7104
|
+
customContent?: string;
|
|
7105
|
+
customMedia?: Array<MediaItem>;
|
|
7106
|
+
/**
|
|
7107
|
+
* Optional per-platform scheduled time override.
|
|
7108
|
+
*/
|
|
7109
|
+
scheduledFor?: string;
|
|
7110
|
+
platformSpecificData?: {
|
|
7111
|
+
[key: string]: unknown;
|
|
7112
|
+
};
|
|
7113
|
+
}>;
|
|
7093
7114
|
scheduledFor?: string;
|
|
7115
|
+
publishNow?: boolean;
|
|
7116
|
+
isDraft?: boolean;
|
|
7117
|
+
timezone?: string;
|
|
7118
|
+
visibility?: 'public' | 'private' | 'unlisted';
|
|
7119
|
+
tags?: Array<(string)>;
|
|
7120
|
+
hashtags?: Array<(string)>;
|
|
7121
|
+
mentions?: Array<(string)>;
|
|
7122
|
+
crosspostingEnabled?: boolean;
|
|
7123
|
+
metadata?: {
|
|
7124
|
+
[key: string]: unknown;
|
|
7125
|
+
};
|
|
7126
|
+
/**
|
|
7127
|
+
* Profile ID to schedule via queue.
|
|
7128
|
+
*/
|
|
7129
|
+
queuedFromProfile?: string;
|
|
7130
|
+
/**
|
|
7131
|
+
* Specific queue ID to use when scheduling via queue.
|
|
7132
|
+
*/
|
|
7133
|
+
queueId?: string;
|
|
7094
7134
|
/**
|
|
7095
7135
|
* Root-level TikTok settings applied to all TikTok platforms. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
|
|
7096
7136
|
*/
|
|
@@ -7100,7 +7140,7 @@ type UpdatePostData = {
|
|
|
7100
7140
|
*/
|
|
7101
7141
|
facebookSettings?: FacebookPlatformData;
|
|
7102
7142
|
recycling?: RecyclingConfig;
|
|
7103
|
-
[key: string]: unknown | string | TikTokPlatformData | FacebookPlatformData | RecyclingConfig;
|
|
7143
|
+
[key: string]: unknown | string | MediaItem | boolean | TikTokPlatformData | FacebookPlatformData | RecyclingConfig;
|
|
7104
7144
|
};
|
|
7105
7145
|
path: {
|
|
7106
7146
|
postId: string;
|
|
@@ -17886,6 +17926,50 @@ type CreateStandaloneAdData = {
|
|
|
17886
17926
|
*/
|
|
17887
17927
|
adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE';
|
|
17888
17928
|
};
|
|
17929
|
+
/**
|
|
17930
|
+
* Meta only. Placement asset customization: pin a SPECIFIC image to each placement
|
|
17931
|
+
* group on a SINGLE ad (e.g. a 9:16 image on Stories/Reels and a 4:5 on Feed). This
|
|
17932
|
+
* is the same thing Meta Ads Manager produces with "different creative per placement",
|
|
17933
|
+
* mapped to the creative's `asset_feed_spec` + `asset_customization_rules`. It is
|
|
17934
|
+
* deterministic pinning, NOT the auto-optimizing pool of `dynamicCreative` (the two are
|
|
17935
|
+
* mutually exclusive, and it cannot be combined with `creatives[]` or `adSetId`). The
|
|
17936
|
+
* shared copy (headline, body, link, CTA) comes from the top-level single-creative
|
|
17937
|
+
* fields (`headline`, `body`, `linkUrl`, `callToAction`) since only the image varies by
|
|
17938
|
+
* placement. Each rule's `placements` accepts the same fields as the top-level
|
|
17939
|
+
* `placements` object; Meta enforces co-selection rules and returns an actionable error.
|
|
17940
|
+
*
|
|
17941
|
+
*/
|
|
17942
|
+
placementAssets?: {
|
|
17943
|
+
/**
|
|
17944
|
+
* Catch-all image for any placement not matched by a rule. REQUIRED — Meta mandates
|
|
17945
|
+
* a default asset customization rule (empty placement spec, lowest priority) on every
|
|
17946
|
+
* placement-customized creative.
|
|
17947
|
+
*
|
|
17948
|
+
*/
|
|
17949
|
+
defaultImageUrl: string;
|
|
17950
|
+
/**
|
|
17951
|
+
* One entry per placement group you want to pin a specific image to.
|
|
17952
|
+
*/
|
|
17953
|
+
rules: Array<{
|
|
17954
|
+
/**
|
|
17955
|
+
* The image to deliver for this rule's placements.
|
|
17956
|
+
*/
|
|
17957
|
+
imageUrl: string;
|
|
17958
|
+
/**
|
|
17959
|
+
* 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.
|
|
17960
|
+
*/
|
|
17961
|
+
placements: {
|
|
17962
|
+
publisherPlatforms?: Array<('facebook' | 'instagram' | 'threads' | 'messenger' | 'audience_network')>;
|
|
17963
|
+
facebookPositions?: Array<('feed' | 'right_hand_column' | 'marketplace' | 'video_feeds' | 'story' | 'search' | 'instream_video' | 'facebook_reels' | 'facebook_reels_overlay' | 'profile_feed' | 'notification')>;
|
|
17964
|
+
instagramPositions?: Array<('stream' | 'story' | 'explore' | 'explore_home' | 'reels' | 'profile_feed' | 'ig_search' | 'profile_reels')>;
|
|
17965
|
+
messengerPositions?: Array<('messenger_home' | 'sponsored_messages' | 'story')>;
|
|
17966
|
+
audienceNetworkPositions?: Array<('classic' | 'rewarded_video')>;
|
|
17967
|
+
threadsPositions?: Array<('threads_stream')>;
|
|
17968
|
+
whatsappPositions?: Array<('status')>;
|
|
17969
|
+
devicePlatforms?: Array<('mobile' | 'desktop')>;
|
|
17970
|
+
};
|
|
17971
|
+
}>;
|
|
17972
|
+
};
|
|
17889
17973
|
/**
|
|
17890
17974
|
* Custom audience ID for targeting
|
|
17891
17975
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -3113,13 +3113,13 @@ type RecyclingConfig = {
|
|
|
3113
3113
|
*/
|
|
3114
3114
|
startDate?: string;
|
|
3115
3115
|
/**
|
|
3116
|
-
* Stop recycling after this many copies have been created
|
|
3116
|
+
* Stop recycling after this many copies have been created. Send null on update to clear this limit.
|
|
3117
3117
|
*/
|
|
3118
|
-
expireCount?: number;
|
|
3118
|
+
expireCount?: (number) | null;
|
|
3119
3119
|
/**
|
|
3120
|
-
* Stop recycling after this date, regardless of count
|
|
3120
|
+
* Stop recycling after this date, regardless of count. Send null on update to clear this limit.
|
|
3121
3121
|
*/
|
|
3122
|
-
expireDate?: string;
|
|
3122
|
+
expireDate?: (string) | null;
|
|
3123
3123
|
/**
|
|
3124
3124
|
* Array of content variations for recycled copies. On each recycle, the next
|
|
3125
3125
|
* variation is used in round-robin order. Recommended for Twitter and Pinterest
|
|
@@ -6997,8 +6997,8 @@ type CreatePostData = {
|
|
|
6997
6997
|
* Target platforms and accounts for this post. Required for non-draft posts (returns 400 if empty). Drafts can omit platforms.
|
|
6998
6998
|
*/
|
|
6999
6999
|
platforms?: Array<{
|
|
7000
|
-
platform
|
|
7001
|
-
accountId
|
|
7000
|
+
platform: string;
|
|
7001
|
+
accountId: string;
|
|
7002
7002
|
/**
|
|
7003
7003
|
* Platform-specific text override. When set, this content is used instead of the top-level post content for this platform. Useful for tailoring captions per platform (e.g. keeping tweets under 280 characters).
|
|
7004
7004
|
*/
|
|
@@ -7089,8 +7089,48 @@ type GetPostError = ({
|
|
|
7089
7089
|
} | unknown);
|
|
7090
7090
|
type UpdatePostData = {
|
|
7091
7091
|
body: {
|
|
7092
|
+
title?: string;
|
|
7092
7093
|
content?: string;
|
|
7094
|
+
mediaItems?: Array<MediaItem>;
|
|
7095
|
+
/**
|
|
7096
|
+
* Target platforms and accounts for this post. Each item must include platform and accountId.
|
|
7097
|
+
*/
|
|
7098
|
+
platforms?: Array<{
|
|
7099
|
+
platform: string;
|
|
7100
|
+
accountId: string;
|
|
7101
|
+
/**
|
|
7102
|
+
* Platform-specific text override.
|
|
7103
|
+
*/
|
|
7104
|
+
customContent?: string;
|
|
7105
|
+
customMedia?: Array<MediaItem>;
|
|
7106
|
+
/**
|
|
7107
|
+
* Optional per-platform scheduled time override.
|
|
7108
|
+
*/
|
|
7109
|
+
scheduledFor?: string;
|
|
7110
|
+
platformSpecificData?: {
|
|
7111
|
+
[key: string]: unknown;
|
|
7112
|
+
};
|
|
7113
|
+
}>;
|
|
7093
7114
|
scheduledFor?: string;
|
|
7115
|
+
publishNow?: boolean;
|
|
7116
|
+
isDraft?: boolean;
|
|
7117
|
+
timezone?: string;
|
|
7118
|
+
visibility?: 'public' | 'private' | 'unlisted';
|
|
7119
|
+
tags?: Array<(string)>;
|
|
7120
|
+
hashtags?: Array<(string)>;
|
|
7121
|
+
mentions?: Array<(string)>;
|
|
7122
|
+
crosspostingEnabled?: boolean;
|
|
7123
|
+
metadata?: {
|
|
7124
|
+
[key: string]: unknown;
|
|
7125
|
+
};
|
|
7126
|
+
/**
|
|
7127
|
+
* Profile ID to schedule via queue.
|
|
7128
|
+
*/
|
|
7129
|
+
queuedFromProfile?: string;
|
|
7130
|
+
/**
|
|
7131
|
+
* Specific queue ID to use when scheduling via queue.
|
|
7132
|
+
*/
|
|
7133
|
+
queueId?: string;
|
|
7094
7134
|
/**
|
|
7095
7135
|
* Root-level TikTok settings applied to all TikTok platforms. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
|
|
7096
7136
|
*/
|
|
@@ -7100,7 +7140,7 @@ type UpdatePostData = {
|
|
|
7100
7140
|
*/
|
|
7101
7141
|
facebookSettings?: FacebookPlatformData;
|
|
7102
7142
|
recycling?: RecyclingConfig;
|
|
7103
|
-
[key: string]: unknown | string | TikTokPlatformData | FacebookPlatformData | RecyclingConfig;
|
|
7143
|
+
[key: string]: unknown | string | MediaItem | boolean | TikTokPlatformData | FacebookPlatformData | RecyclingConfig;
|
|
7104
7144
|
};
|
|
7105
7145
|
path: {
|
|
7106
7146
|
postId: string;
|
|
@@ -17886,6 +17926,50 @@ type CreateStandaloneAdData = {
|
|
|
17886
17926
|
*/
|
|
17887
17927
|
adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE';
|
|
17888
17928
|
};
|
|
17929
|
+
/**
|
|
17930
|
+
* Meta only. Placement asset customization: pin a SPECIFIC image to each placement
|
|
17931
|
+
* group on a SINGLE ad (e.g. a 9:16 image on Stories/Reels and a 4:5 on Feed). This
|
|
17932
|
+
* is the same thing Meta Ads Manager produces with "different creative per placement",
|
|
17933
|
+
* mapped to the creative's `asset_feed_spec` + `asset_customization_rules`. It is
|
|
17934
|
+
* deterministic pinning, NOT the auto-optimizing pool of `dynamicCreative` (the two are
|
|
17935
|
+
* mutually exclusive, and it cannot be combined with `creatives[]` or `adSetId`). The
|
|
17936
|
+
* shared copy (headline, body, link, CTA) comes from the top-level single-creative
|
|
17937
|
+
* fields (`headline`, `body`, `linkUrl`, `callToAction`) since only the image varies by
|
|
17938
|
+
* placement. Each rule's `placements` accepts the same fields as the top-level
|
|
17939
|
+
* `placements` object; Meta enforces co-selection rules and returns an actionable error.
|
|
17940
|
+
*
|
|
17941
|
+
*/
|
|
17942
|
+
placementAssets?: {
|
|
17943
|
+
/**
|
|
17944
|
+
* Catch-all image for any placement not matched by a rule. REQUIRED — Meta mandates
|
|
17945
|
+
* a default asset customization rule (empty placement spec, lowest priority) on every
|
|
17946
|
+
* placement-customized creative.
|
|
17947
|
+
*
|
|
17948
|
+
*/
|
|
17949
|
+
defaultImageUrl: string;
|
|
17950
|
+
/**
|
|
17951
|
+
* One entry per placement group you want to pin a specific image to.
|
|
17952
|
+
*/
|
|
17953
|
+
rules: Array<{
|
|
17954
|
+
/**
|
|
17955
|
+
* The image to deliver for this rule's placements.
|
|
17956
|
+
*/
|
|
17957
|
+
imageUrl: string;
|
|
17958
|
+
/**
|
|
17959
|
+
* 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.
|
|
17960
|
+
*/
|
|
17961
|
+
placements: {
|
|
17962
|
+
publisherPlatforms?: Array<('facebook' | 'instagram' | 'threads' | 'messenger' | 'audience_network')>;
|
|
17963
|
+
facebookPositions?: Array<('feed' | 'right_hand_column' | 'marketplace' | 'video_feeds' | 'story' | 'search' | 'instream_video' | 'facebook_reels' | 'facebook_reels_overlay' | 'profile_feed' | 'notification')>;
|
|
17964
|
+
instagramPositions?: Array<('stream' | 'story' | 'explore' | 'explore_home' | 'reels' | 'profile_feed' | 'ig_search' | 'profile_reels')>;
|
|
17965
|
+
messengerPositions?: Array<('messenger_home' | 'sponsored_messages' | 'story')>;
|
|
17966
|
+
audienceNetworkPositions?: Array<('classic' | 'rewarded_video')>;
|
|
17967
|
+
threadsPositions?: Array<('threads_stream')>;
|
|
17968
|
+
whatsappPositions?: Array<('status')>;
|
|
17969
|
+
devicePlatforms?: Array<('mobile' | 'desktop')>;
|
|
17970
|
+
};
|
|
17971
|
+
}>;
|
|
17972
|
+
};
|
|
17889
17973
|
/**
|
|
17890
17974
|
* Custom audience ID for targeting
|
|
17891
17975
|
*/
|
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.204",
|
|
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.204",
|
|
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
|
@@ -551,8 +551,8 @@ export const getPost = <ThrowOnError extends boolean = false>(options: OptionsLe
|
|
|
551
551
|
|
|
552
552
|
/**
|
|
553
553
|
* Update post
|
|
554
|
-
* Update an existing post.
|
|
555
|
-
* Published
|
|
554
|
+
* Update an existing post. Draft, scheduled, failed, partial, and cancelled posts can be edited.
|
|
555
|
+
* Published posts can only have their recycling config updated.
|
|
556
556
|
*
|
|
557
557
|
*/
|
|
558
558
|
export const updatePost = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdatePostData, ThrowOnError>) => {
|
|
@@ -2498,13 +2498,13 @@ export type RecyclingConfig = {
|
|
|
2498
2498
|
*/
|
|
2499
2499
|
startDate?: string;
|
|
2500
2500
|
/**
|
|
2501
|
-
* Stop recycling after this many copies have been created
|
|
2501
|
+
* Stop recycling after this many copies have been created. Send null on update to clear this limit.
|
|
2502
2502
|
*/
|
|
2503
|
-
expireCount?: number;
|
|
2503
|
+
expireCount?: (number) | null;
|
|
2504
2504
|
/**
|
|
2505
|
-
* Stop recycling after this date, regardless of count
|
|
2505
|
+
* Stop recycling after this date, regardless of count. Send null on update to clear this limit.
|
|
2506
2506
|
*/
|
|
2507
|
-
expireDate?: string;
|
|
2507
|
+
expireDate?: (string) | null;
|
|
2508
2508
|
/**
|
|
2509
2509
|
* Array of content variations for recycled copies. On each recycle, the next
|
|
2510
2510
|
* variation is used in round-robin order. Recommended for Twitter and Pinterest
|
|
@@ -6594,8 +6594,8 @@ export type CreatePostData = {
|
|
|
6594
6594
|
* Target platforms and accounts for this post. Required for non-draft posts (returns 400 if empty). Drafts can omit platforms.
|
|
6595
6595
|
*/
|
|
6596
6596
|
platforms?: Array<{
|
|
6597
|
-
platform
|
|
6598
|
-
accountId
|
|
6597
|
+
platform: string;
|
|
6598
|
+
accountId: string;
|
|
6599
6599
|
/**
|
|
6600
6600
|
* Platform-specific text override. When set, this content is used instead of the top-level post content for this platform. Useful for tailoring captions per platform (e.g. keeping tweets under 280 characters).
|
|
6601
6601
|
*/
|
|
@@ -6692,8 +6692,48 @@ export type GetPostError = ({
|
|
|
6692
6692
|
|
|
6693
6693
|
export type UpdatePostData = {
|
|
6694
6694
|
body: {
|
|
6695
|
+
title?: string;
|
|
6695
6696
|
content?: string;
|
|
6697
|
+
mediaItems?: Array<MediaItem>;
|
|
6698
|
+
/**
|
|
6699
|
+
* Target platforms and accounts for this post. Each item must include platform and accountId.
|
|
6700
|
+
*/
|
|
6701
|
+
platforms?: Array<{
|
|
6702
|
+
platform: string;
|
|
6703
|
+
accountId: string;
|
|
6704
|
+
/**
|
|
6705
|
+
* Platform-specific text override.
|
|
6706
|
+
*/
|
|
6707
|
+
customContent?: string;
|
|
6708
|
+
customMedia?: Array<MediaItem>;
|
|
6709
|
+
/**
|
|
6710
|
+
* Optional per-platform scheduled time override.
|
|
6711
|
+
*/
|
|
6712
|
+
scheduledFor?: string;
|
|
6713
|
+
platformSpecificData?: {
|
|
6714
|
+
[key: string]: unknown;
|
|
6715
|
+
};
|
|
6716
|
+
}>;
|
|
6696
6717
|
scheduledFor?: string;
|
|
6718
|
+
publishNow?: boolean;
|
|
6719
|
+
isDraft?: boolean;
|
|
6720
|
+
timezone?: string;
|
|
6721
|
+
visibility?: 'public' | 'private' | 'unlisted';
|
|
6722
|
+
tags?: Array<(string)>;
|
|
6723
|
+
hashtags?: Array<(string)>;
|
|
6724
|
+
mentions?: Array<(string)>;
|
|
6725
|
+
crosspostingEnabled?: boolean;
|
|
6726
|
+
metadata?: {
|
|
6727
|
+
[key: string]: unknown;
|
|
6728
|
+
};
|
|
6729
|
+
/**
|
|
6730
|
+
* Profile ID to schedule via queue.
|
|
6731
|
+
*/
|
|
6732
|
+
queuedFromProfile?: string;
|
|
6733
|
+
/**
|
|
6734
|
+
* Specific queue ID to use when scheduling via queue.
|
|
6735
|
+
*/
|
|
6736
|
+
queueId?: string;
|
|
6697
6737
|
/**
|
|
6698
6738
|
* Root-level TikTok settings applied to all TikTok platforms. Merged into each platform's platformSpecificData, with platform-specific settings taking precedence.
|
|
6699
6739
|
*/
|
|
@@ -6703,7 +6743,7 @@ export type UpdatePostData = {
|
|
|
6703
6743
|
*/
|
|
6704
6744
|
facebookSettings?: FacebookPlatformData;
|
|
6705
6745
|
recycling?: RecyclingConfig;
|
|
6706
|
-
[key: string]: unknown | string | TikTokPlatformData | FacebookPlatformData | RecyclingConfig;
|
|
6746
|
+
[key: string]: unknown | string | MediaItem | boolean | TikTokPlatformData | FacebookPlatformData | RecyclingConfig;
|
|
6707
6747
|
};
|
|
6708
6748
|
path: {
|
|
6709
6749
|
postId: string;
|
|
@@ -18348,6 +18388,50 @@ export type CreateStandaloneAdData = {
|
|
|
18348
18388
|
*/
|
|
18349
18389
|
adFormat?: 'SINGLE_IMAGE' | 'CAROUSEL_IMAGE';
|
|
18350
18390
|
};
|
|
18391
|
+
/**
|
|
18392
|
+
* Meta only. Placement asset customization: pin a SPECIFIC image to each placement
|
|
18393
|
+
* group on a SINGLE ad (e.g. a 9:16 image on Stories/Reels and a 4:5 on Feed). This
|
|
18394
|
+
* is the same thing Meta Ads Manager produces with "different creative per placement",
|
|
18395
|
+
* mapped to the creative's `asset_feed_spec` + `asset_customization_rules`. It is
|
|
18396
|
+
* deterministic pinning, NOT the auto-optimizing pool of `dynamicCreative` (the two are
|
|
18397
|
+
* mutually exclusive, and it cannot be combined with `creatives[]` or `adSetId`). The
|
|
18398
|
+
* shared copy (headline, body, link, CTA) comes from the top-level single-creative
|
|
18399
|
+
* fields (`headline`, `body`, `linkUrl`, `callToAction`) since only the image varies by
|
|
18400
|
+
* placement. Each rule's `placements` accepts the same fields as the top-level
|
|
18401
|
+
* `placements` object; Meta enforces co-selection rules and returns an actionable error.
|
|
18402
|
+
*
|
|
18403
|
+
*/
|
|
18404
|
+
placementAssets?: {
|
|
18405
|
+
/**
|
|
18406
|
+
* Catch-all image for any placement not matched by a rule. REQUIRED — Meta mandates
|
|
18407
|
+
* a default asset customization rule (empty placement spec, lowest priority) on every
|
|
18408
|
+
* placement-customized creative.
|
|
18409
|
+
*
|
|
18410
|
+
*/
|
|
18411
|
+
defaultImageUrl: string;
|
|
18412
|
+
/**
|
|
18413
|
+
* One entry per placement group you want to pin a specific image to.
|
|
18414
|
+
*/
|
|
18415
|
+
rules: Array<{
|
|
18416
|
+
/**
|
|
18417
|
+
* The image to deliver for this rule's placements.
|
|
18418
|
+
*/
|
|
18419
|
+
imageUrl: string;
|
|
18420
|
+
/**
|
|
18421
|
+
* 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.
|
|
18422
|
+
*/
|
|
18423
|
+
placements: {
|
|
18424
|
+
publisherPlatforms?: Array<('facebook' | 'instagram' | 'threads' | 'messenger' | 'audience_network')>;
|
|
18425
|
+
facebookPositions?: Array<('feed' | 'right_hand_column' | 'marketplace' | 'video_feeds' | 'story' | 'search' | 'instream_video' | 'facebook_reels' | 'facebook_reels_overlay' | 'profile_feed' | 'notification')>;
|
|
18426
|
+
instagramPositions?: Array<('stream' | 'story' | 'explore' | 'explore_home' | 'reels' | 'profile_feed' | 'ig_search' | 'profile_reels')>;
|
|
18427
|
+
messengerPositions?: Array<('messenger_home' | 'sponsored_messages' | 'story')>;
|
|
18428
|
+
audienceNetworkPositions?: Array<('classic' | 'rewarded_video')>;
|
|
18429
|
+
threadsPositions?: Array<('threads_stream')>;
|
|
18430
|
+
whatsappPositions?: Array<('status')>;
|
|
18431
|
+
devicePlatforms?: Array<('mobile' | 'desktop')>;
|
|
18432
|
+
};
|
|
18433
|
+
}>;
|
|
18434
|
+
};
|
|
18351
18435
|
/**
|
|
18352
18436
|
* Custom audience ID for targeting
|
|
18353
18437
|
*/
|