@zernio/node 0.2.714 → 0.2.716
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/README.md +5 -0
- package/dist/index.d.mts +255 -56
- package/dist/index.d.ts +255 -56
- package/dist/index.js +46 -1
- package/dist/index.mjs +46 -1
- package/package.json +1 -1
- package/src/client.ts +20 -0
- package/src/generated/sdk.gen.ts +85 -4
- package/src/generated/types.gen.ts +260 -55
|
@@ -661,6 +661,65 @@ export type AdFunnelCounts = {
|
|
|
661
661
|
messagingFirstReplies?: number;
|
|
662
662
|
};
|
|
663
663
|
|
|
664
|
+
export type AdKeyword = {
|
|
665
|
+
id?: string;
|
|
666
|
+
/**
|
|
667
|
+
* Social account ID owning the sync
|
|
668
|
+
*/
|
|
669
|
+
accountId?: string;
|
|
670
|
+
profileId?: string;
|
|
671
|
+
platform?: 'google';
|
|
672
|
+
/**
|
|
673
|
+
* Google customer ID
|
|
674
|
+
*/
|
|
675
|
+
adAccountId?: string;
|
|
676
|
+
campaignId?: string;
|
|
677
|
+
campaignName?: (string) | null;
|
|
678
|
+
campaignStatus?: (string) | null;
|
|
679
|
+
/**
|
|
680
|
+
* Google ad group ID
|
|
681
|
+
*/
|
|
682
|
+
adSetId?: string;
|
|
683
|
+
adSetName?: (string) | null;
|
|
684
|
+
adSetStatus?: (string) | null;
|
|
685
|
+
keyword?: string;
|
|
686
|
+
matchType?: 'exact' | 'phrase' | 'broad' | 'unknown';
|
|
687
|
+
status?: 'active' | 'paused';
|
|
688
|
+
negative?: boolean;
|
|
689
|
+
/**
|
|
690
|
+
* Google Quality Score, 1-10. Null when unrated.
|
|
691
|
+
*/
|
|
692
|
+
qualityScore?: (number) | null;
|
|
693
|
+
syncedAt?: (string) | null;
|
|
694
|
+
/**
|
|
695
|
+
* Trailing 30-day window. Null on rows synced before the metrics columns existed (re-synced on the keyword's next weekly sweep).
|
|
696
|
+
*/
|
|
697
|
+
metrics?: {
|
|
698
|
+
windowDays?: number;
|
|
699
|
+
clicks?: number;
|
|
700
|
+
impressions?: number;
|
|
701
|
+
/**
|
|
702
|
+
* Account currency, not USD-normalized
|
|
703
|
+
*/
|
|
704
|
+
cost?: number;
|
|
705
|
+
conversions?: number;
|
|
706
|
+
/**
|
|
707
|
+
* Account currency
|
|
708
|
+
*/
|
|
709
|
+
firstPageCpc?: (number) | null;
|
|
710
|
+
/**
|
|
711
|
+
* Account currency
|
|
712
|
+
*/
|
|
713
|
+
firstPositionCpc?: (number) | null;
|
|
714
|
+
} | null;
|
|
715
|
+
};
|
|
716
|
+
|
|
717
|
+
export type platform2 = 'google';
|
|
718
|
+
|
|
719
|
+
export type matchType = 'exact' | 'phrase' | 'broad' | 'unknown';
|
|
720
|
+
|
|
721
|
+
export type status = 'active' | 'paused';
|
|
722
|
+
|
|
664
723
|
export type AdMetrics = {
|
|
665
724
|
spend?: number;
|
|
666
725
|
impressions?: number;
|
|
@@ -1320,7 +1379,7 @@ export type AnalyticsSinglePostResponse = {
|
|
|
1320
1379
|
/**
|
|
1321
1380
|
* Overall post status. "partial" when some platforms published and others failed.
|
|
1322
1381
|
*/
|
|
1323
|
-
export type
|
|
1382
|
+
export type status2 = 'published' | 'failed' | 'partial';
|
|
1324
1383
|
|
|
1325
1384
|
/**
|
|
1326
1385
|
* Overall sync state across all platforms
|
|
@@ -1468,7 +1527,7 @@ export type Blog = {
|
|
|
1468
1527
|
handle?: string;
|
|
1469
1528
|
};
|
|
1470
1529
|
|
|
1471
|
-
export type
|
|
1530
|
+
export type platform3 = 'shopify';
|
|
1472
1531
|
|
|
1473
1532
|
/**
|
|
1474
1533
|
* An article inside a blog on the connected platform.
|
|
@@ -1757,7 +1816,7 @@ export type channel = 'whatsapp' | 'pstn';
|
|
|
1757
1816
|
|
|
1758
1817
|
export type direction = 'inbound' | 'outbound';
|
|
1759
1818
|
|
|
1760
|
-
export type
|
|
1819
|
+
export type status3 = 'ringing' | 'answered' | 'ended' | 'failed';
|
|
1761
1820
|
|
|
1762
1821
|
/**
|
|
1763
1822
|
* Caller ID presented on the forwarded leg.
|
|
@@ -1973,7 +2032,7 @@ export type ConversionDestination = {
|
|
|
1973
2032
|
* For LinkedIn, `inactive` means the rule is soft-deleted (`enabled: false`).
|
|
1974
2033
|
*
|
|
1975
2034
|
*/
|
|
1976
|
-
export type
|
|
2035
|
+
export type status4 = 'active' | 'inactive';
|
|
1977
2036
|
|
|
1978
2037
|
/**
|
|
1979
2038
|
* A single conversion event to relay to the ad platform. All PII fields
|
|
@@ -2569,7 +2628,7 @@ export type objective = 'OUTCOME_ENGAGEMENT' | 'OUTCOME_SALES' | 'OUTCOME_LEADS'
|
|
|
2569
2628
|
* newly created ad(s) after Meta accepts them.
|
|
2570
2629
|
*
|
|
2571
2630
|
*/
|
|
2572
|
-
export type
|
|
2631
|
+
export type status5 = 'ACTIVE' | 'PAUSED';
|
|
2573
2632
|
|
|
2574
2633
|
/**
|
|
2575
2634
|
* Campaign-level status, same semantics as `POST /v1/ads/create`. Defaults
|
|
@@ -2937,7 +2996,7 @@ export type privacy_level = 2;
|
|
|
2937
2996
|
/**
|
|
2938
2997
|
* 1=SCHEDULED, 2=ACTIVE, 3=COMPLETED, 4=CANCELED
|
|
2939
2998
|
*/
|
|
2940
|
-
export type
|
|
2999
|
+
export type status6 = 1 | 2 | 3 | 4;
|
|
2941
3000
|
|
|
2942
3001
|
/**
|
|
2943
3002
|
* 1=STAGE_INSTANCE, 2=VOICE, 3=EXTERNAL
|
|
@@ -3694,7 +3753,7 @@ export type InboxWebhookConversation = {
|
|
|
3694
3753
|
contactId?: string;
|
|
3695
3754
|
};
|
|
3696
3755
|
|
|
3697
|
-
export type
|
|
3756
|
+
export type status7 = 'active' | 'archived';
|
|
3698
3757
|
|
|
3699
3758
|
/**
|
|
3700
3759
|
* The message object included in inbox webhook payloads.
|
|
@@ -3810,7 +3869,7 @@ export type InboxWebhookMessage = {
|
|
|
3810
3869
|
isRead: boolean;
|
|
3811
3870
|
};
|
|
3812
3871
|
|
|
3813
|
-
export type
|
|
3872
|
+
export type platform4 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'sms';
|
|
3814
3873
|
|
|
3815
3874
|
export type direction2 = 'incoming' | 'outgoing';
|
|
3816
3875
|
|
|
@@ -3938,7 +3997,7 @@ export type InstagramAccountInsightsResponse = {
|
|
|
3938
3997
|
/**
|
|
3939
3998
|
* Platform that served this response.
|
|
3940
3999
|
*/
|
|
3941
|
-
export type
|
|
4000
|
+
export type platform5 = 'facebook' | 'instagram' | 'youtube' | 'linkedin' | 'tiktok';
|
|
3942
4001
|
|
|
3943
4002
|
export type metricType = 'time_series' | 'total_value';
|
|
3944
4003
|
|
|
@@ -4153,6 +4212,16 @@ export type contentType2 = 'story';
|
|
|
4153
4212
|
*/
|
|
4154
4213
|
export type graduationStrategy = 'MANUAL' | 'SS_PERFORMANCE';
|
|
4155
4214
|
|
|
4215
|
+
/**
|
|
4216
|
+
* A Google Search keyword: a bare string (BROAD match), or an object naming the match type.
|
|
4217
|
+
*/
|
|
4218
|
+
export type KeywordEntry = string | {
|
|
4219
|
+
text: string;
|
|
4220
|
+
matchType?: 'exact' | 'phrase' | 'broad';
|
|
4221
|
+
};
|
|
4222
|
+
|
|
4223
|
+
export type matchType2 = 'exact' | 'phrase' | 'broad';
|
|
4224
|
+
|
|
4156
4225
|
/**
|
|
4157
4226
|
* LinkedIn-specific options for POST /v1/ads/boost and POST /v1/ads/create: campaign bidding and delivery controls, plus the LinkedIn-only creative formats on /v1/ads/create. Unknown keys are rejected.
|
|
4158
4227
|
*
|
|
@@ -4800,7 +4869,7 @@ export type PlatformAnalytics = {
|
|
|
4800
4869
|
errorMessage?: (string) | null;
|
|
4801
4870
|
};
|
|
4802
4871
|
|
|
4803
|
-
export type
|
|
4872
|
+
export type status8 = 'published' | 'failed';
|
|
4804
4873
|
|
|
4805
4874
|
/**
|
|
4806
4875
|
* Sync state of analytics for this platform
|
|
@@ -4931,7 +5000,7 @@ export type Post = {
|
|
|
4931
5000
|
updatedAt?: string;
|
|
4932
5001
|
};
|
|
4933
5002
|
|
|
4934
|
-
export type
|
|
5003
|
+
export type status9 = 'draft' | 'scheduled' | 'publishing' | 'published' | 'failed' | 'partial';
|
|
4935
5004
|
|
|
4936
5005
|
export type visibility = 'public' | 'private' | 'unlisted';
|
|
4937
5006
|
|
|
@@ -5427,7 +5496,7 @@ export type ReviewWebhookReview = {
|
|
|
5427
5496
|
/**
|
|
5428
5497
|
* Platform the review originated on. Currently Google Business Profile only.
|
|
5429
5498
|
*/
|
|
5430
|
-
export type
|
|
5499
|
+
export type platform6 = 'googlebusiness';
|
|
5431
5500
|
|
|
5432
5501
|
/**
|
|
5433
5502
|
* A Meta Reach & Frequency prediction. Money values in whole units of the ad account currency.
|
|
@@ -5590,7 +5659,7 @@ export type SocialAccount = {
|
|
|
5590
5659
|
};
|
|
5591
5660
|
};
|
|
5592
5661
|
|
|
5593
|
-
export type
|
|
5662
|
+
export type platform7 = 'tiktok' | 'instagram' | 'facebook' | 'youtube' | 'linkedin' | 'twitter' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads' | 'sms' | 'phone' | 'rcs';
|
|
5594
5663
|
|
|
5595
5664
|
/**
|
|
5596
5665
|
* Normalized, platform-agnostic ad-targeting spec. Every field is optional, an
|
|
@@ -6056,7 +6125,7 @@ export type TrackingTag = {
|
|
|
6056
6125
|
ownerAdAccountId?: string;
|
|
6057
6126
|
};
|
|
6058
6127
|
|
|
6059
|
-
export type
|
|
6128
|
+
export type platform8 = 'metaads';
|
|
6060
6129
|
|
|
6061
6130
|
/**
|
|
6062
6131
|
* Platform-native flavor of the tag (Meta: `pixel`).
|
|
@@ -6156,7 +6225,7 @@ export type UploadTokenResponse = {
|
|
|
6156
6225
|
status?: 'pending' | 'completed' | 'expired';
|
|
6157
6226
|
};
|
|
6158
6227
|
|
|
6159
|
-
export type
|
|
6228
|
+
export type status10 = 'pending' | 'completed' | 'expired';
|
|
6160
6229
|
|
|
6161
6230
|
export type UploadTokenStatusResponse = {
|
|
6162
6231
|
token?: string;
|
|
@@ -6631,7 +6700,7 @@ export type Verification = {
|
|
|
6631
6700
|
resend?: boolean;
|
|
6632
6701
|
};
|
|
6633
6702
|
|
|
6634
|
-
export type
|
|
6703
|
+
export type status11 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
|
|
6635
6704
|
|
|
6636
6705
|
export type channel2 = 'sms';
|
|
6637
6706
|
|
|
@@ -6750,7 +6819,7 @@ export type WebhookLog = {
|
|
|
6750
6819
|
/**
|
|
6751
6820
|
* Delivery outcome
|
|
6752
6821
|
*/
|
|
6753
|
-
export type
|
|
6822
|
+
export type status12 = 'success' | 'failed';
|
|
6754
6823
|
|
|
6755
6824
|
/**
|
|
6756
6825
|
* Webhook payload for `account.ads.initial_sync_completed` events.
|
|
@@ -6862,7 +6931,7 @@ export type event = 'account.ads.initial_sync_completed';
|
|
|
6862
6931
|
/**
|
|
6863
6932
|
* Overall outcome of the initial sync.
|
|
6864
6933
|
*/
|
|
6865
|
-
export type
|
|
6934
|
+
export type status13 = 'success' | 'failure';
|
|
6866
6935
|
|
|
6867
6936
|
/**
|
|
6868
6937
|
* Stable category for UX branching. New values may be added; existing ones are
|
|
@@ -7489,7 +7558,7 @@ export type WebhookPayloadComment = {
|
|
|
7489
7558
|
|
|
7490
7559
|
export type event10 = 'comment.received';
|
|
7491
7560
|
|
|
7492
|
-
export type
|
|
7561
|
+
export type platform9 = 'instagram' | 'facebook' | 'twitter' | 'youtube' | 'linkedin' | 'bluesky' | 'reddit';
|
|
7493
7562
|
|
|
7494
7563
|
/**
|
|
7495
7564
|
* Fired once when a new conversation begins, in either direction. A conversation
|
|
@@ -7546,7 +7615,7 @@ export type WebhookPayloadConversationStarted = {
|
|
|
7546
7615
|
|
|
7547
7616
|
export type event11 = 'conversation.started';
|
|
7548
7617
|
|
|
7549
|
-
export type
|
|
7618
|
+
export type platform10 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'twitter' | 'reddit' | 'bluesky' | 'sms' | 'slack';
|
|
7550
7619
|
|
|
7551
7620
|
/**
|
|
7552
7621
|
* Webhook payload for post.external.created / post.external.updated /
|
|
@@ -7647,7 +7716,7 @@ export type WebhookPayloadLead = {
|
|
|
7647
7716
|
|
|
7648
7717
|
export type event13 = 'lead.received';
|
|
7649
7718
|
|
|
7650
|
-
export type
|
|
7719
|
+
export type platform11 = 'facebook';
|
|
7651
7720
|
|
|
7652
7721
|
/**
|
|
7653
7722
|
* Webhook payload for message received events
|
|
@@ -8443,7 +8512,7 @@ export type event18 = 'message.sent';
|
|
|
8443
8512
|
/**
|
|
8444
8513
|
* Every platform whose outgoing messages Zernio observes. sms is absent on purpose: its carrier receipts update delivery status and never raise message.sent.
|
|
8445
8514
|
*/
|
|
8446
|
-
export type
|
|
8515
|
+
export type platform12 = 'instagram' | 'facebook' | 'telegram' | 'whatsapp' | 'twitter' | 'reddit' | 'bluesky' | 'slack';
|
|
8447
8516
|
|
|
8448
8517
|
/**
|
|
8449
8518
|
* WhatsApp send origin. whatsapp_business_app when sent from the WhatsApp Business phone app on a Coexistence number; cloud_api when sent through Zernio (dashboard, API, or broadcasts). Absent on non-WhatsApp platforms. Says where WhatsApp saw the send come from, not which Zernio surface produced it: read sentVia for that.
|
|
@@ -8629,7 +8698,7 @@ export type event21 = 'post.platform.published' | 'post.platform.failed' | 'post
|
|
|
8629
8698
|
/**
|
|
8630
8699
|
* Terminal status this event fires on. Matches the event suffix.
|
|
8631
8700
|
*/
|
|
8632
|
-
export type
|
|
8701
|
+
export type status14 = 'published' | 'failed' | 'deleted';
|
|
8633
8702
|
|
|
8634
8703
|
/**
|
|
8635
8704
|
* Webhook payload for reaction received events (WhatsApp, Telegram, Slack, Instagram, Facebook Messenger)
|
|
@@ -8889,12 +8958,12 @@ export type WebhookPayloadWhatsAppAccountNameStatusUpdated = {
|
|
|
8889
8958
|
|
|
8890
8959
|
export type event27 = 'whatsapp.account.name_status_updated';
|
|
8891
8960
|
|
|
8892
|
-
export type
|
|
8961
|
+
export type platform13 = 'whatsapp';
|
|
8893
8962
|
|
|
8894
8963
|
/**
|
|
8895
8964
|
* Normalized from Meta's `decision` (REJECTED -> DECLINED, DEFERRED -> PENDING_REVIEW; the review is still open on DEFERRED, not a rejection).
|
|
8896
8965
|
*/
|
|
8897
|
-
export type
|
|
8966
|
+
export type status15 = 'APPROVED' | 'DECLINED' | 'PENDING_REVIEW';
|
|
8898
8967
|
|
|
8899
8968
|
/**
|
|
8900
8969
|
* Webhook payload for the `whatsapp.template.category_updated` event.
|
|
@@ -9043,7 +9112,7 @@ export type event29 = 'whatsapp.template.status_updated';
|
|
|
9043
9112
|
* request before the template is actually removed.
|
|
9044
9113
|
*
|
|
9045
9114
|
*/
|
|
9046
|
-
export type
|
|
9115
|
+
export type status16 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
|
|
9047
9116
|
|
|
9048
9117
|
export type WhatsAppBodyComponent = {
|
|
9049
9118
|
type: 'body';
|
|
@@ -9192,7 +9261,7 @@ export type WhatsAppSandboxSession = {
|
|
|
9192
9261
|
* list responses.
|
|
9193
9262
|
*
|
|
9194
9263
|
*/
|
|
9195
|
-
export type
|
|
9264
|
+
export type status17 = 'pending' | 'active';
|
|
9196
9265
|
|
|
9197
9266
|
export type WhatsAppTemplateButton = {
|
|
9198
9267
|
type: 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
|
|
@@ -9311,7 +9380,7 @@ export type WorkflowExecutionEvent = {
|
|
|
9311
9380
|
|
|
9312
9381
|
export type action2 = 'execution_started' | 'execution_completed' | 'execution_exited' | 'execution_paused' | 'execution_resumed' | 'node_started' | 'node_completed' | 'node_failed' | 'node_skipped';
|
|
9313
9382
|
|
|
9314
|
-
export type
|
|
9383
|
+
export type status18 = 'success' | 'failed' | 'pending';
|
|
9315
9384
|
|
|
9316
9385
|
/**
|
|
9317
9386
|
* A node in a workflow graph. `config` shape depends on `type`.
|
|
@@ -11784,6 +11853,9 @@ export type CreatePostData = {
|
|
|
11784
11853
|
* Post caption/text. Optional when media is attached, all platforms have customContent, every platform entry is an X Article (platformSpecificData.article), or every platform entry is a LinkedIn text-free reshare (platformSpecificData.reshareUrl with no text). Required for other text-only posts.
|
|
11785
11854
|
*/
|
|
11786
11855
|
content?: string;
|
|
11856
|
+
/**
|
|
11857
|
+
* Media attached to every platform in the request (a platform entry can override it with `customMedia`). Each entry needs a publicly reachable HTTPS `url`; `type` (image, video, gif, document) is inferred from the URL extension when omitted and a `type` that contradicts the extension is rejected with 400. Upload files with `POST /v1/media/presign` first; per-platform size, duration and format limits are listed on each platform schema.
|
|
11858
|
+
*/
|
|
11787
11859
|
mediaItems?: Array<MediaItem>;
|
|
11788
11860
|
/**
|
|
11789
11861
|
* Target platforms and accounts for this post. Required for non-draft posts (returns 400 if empty). Drafts can omit platforms.
|
|
@@ -11802,12 +11874,21 @@ export type CreatePostData = {
|
|
|
11802
11874
|
scheduledFor?: string;
|
|
11803
11875
|
platformSpecificData?: (TwitterPlatformData | ThreadsPlatformData | FacebookPlatformData | InstagramPlatformData | LinkedInPlatformData | PinterestPlatformData | YouTubePlatformData | GoogleBusinessPlatformData | TikTokPlatformData | TelegramPlatformData | SnapchatPlatformData | RedditPlatformData | BlueskyPlatformData | DiscordPlatformData | SlackPlatformData);
|
|
11804
11876
|
}>;
|
|
11877
|
+
/**
|
|
11878
|
+
* When to publish. Required unless `publishNow` is true, `queuedFromProfile` is set, or the post is a draft. An ISO 8601 value with a `Z` or offset (`2026-01-15T10:00:00Z`, `2026-01-15T11:00:00+01:00`) is taken as-is; a value without one (`2026-01-15T10:00:00` or `2026-01-15 10:00`) is read as local time in `timezone`. A value already in the past is published synchronously in the same request. Ignored when `publishNow` is true.
|
|
11879
|
+
*/
|
|
11805
11880
|
scheduledFor?: string;
|
|
11881
|
+
/**
|
|
11882
|
+
* Publish to every platform synchronously in this request instead of scheduling; the response then carries each platform result and `platformPostUrl`, with HTTP 207 when some platforms failed. Takes precedence over `scheduledFor`; ignored when `isDraft` is true.
|
|
11883
|
+
*/
|
|
11806
11884
|
publishNow?: boolean;
|
|
11807
11885
|
/**
|
|
11808
11886
|
* When true, saves the post as a draft. When none of scheduledFor, publishNow, or queuedFromProfile are provided, the post defaults to draft automatically.
|
|
11809
11887
|
*/
|
|
11810
11888
|
isDraft?: boolean;
|
|
11889
|
+
/**
|
|
11890
|
+
* IANA timezone (`Europe/Madrid`, `America/New_York`) used to interpret a `scheduledFor` (root or per-platform) that carries no `Z` or offset. Has no effect on values that already carry one. An unknown name returns 400 when `scheduledFor` is set.
|
|
11891
|
+
*/
|
|
11811
11892
|
timezone?: string;
|
|
11812
11893
|
/**
|
|
11813
11894
|
* Tags/keywords. YouTube constraints: each tag max 100 chars, combined max 500 chars, duplicates auto-removed.
|
|
@@ -11821,7 +11902,13 @@ export type CreatePostData = {
|
|
|
11821
11902
|
* Stored for reference only. This field does NOT automatically create @mentions when publishing. For LinkedIn @mentions, use the /v1/accounts/{accountId}/linkedin-mentions endpoint to resolve profile URLs to URNs, then embed the returned mentionFormat directly in the post content field.
|
|
11822
11903
|
*/
|
|
11823
11904
|
mentions?: Array<(string)>;
|
|
11905
|
+
/**
|
|
11906
|
+
* Stored on the post and echoed back on reads. Publishing does not branch on it: every entry in `platforms` is published regardless, so treat it as a label for your own tooling.
|
|
11907
|
+
*/
|
|
11824
11908
|
crosspostingEnabled?: boolean;
|
|
11909
|
+
/**
|
|
11910
|
+
* Free-form key/value pairs of your own, stored on the post and returned on reads and in webhook payloads. Zernio also writes the bookkeeping keys `usageCounted`, `usageRefunded` and `hidden` into this object; do not set them, and they are stripped from webhook payloads.
|
|
11911
|
+
*/
|
|
11825
11912
|
metadata?: {
|
|
11826
11913
|
[key: string]: unknown;
|
|
11827
11914
|
};
|
|
@@ -13169,7 +13256,7 @@ export type CreateInviteTokenError = (unknown | {
|
|
|
13169
13256
|
export type GetConnectUrlData = {
|
|
13170
13257
|
path: {
|
|
13171
13258
|
/**
|
|
13172
|
-
* Social media platform to connect
|
|
13259
|
+
* Social media platform to connect. `snapchat` is a closed beta with no public release date: it returns 403 `PLATFORM_BETA_RESTRICTED` until the account is approved.
|
|
13173
13260
|
*/
|
|
13174
13261
|
platform: 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'tiktok' | 'youtube' | 'threads' | 'reddit' | 'pinterest' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp';
|
|
13175
13262
|
};
|
|
@@ -30388,37 +30475,81 @@ export type ListAdKeywordsData = {
|
|
|
30388
30475
|
};
|
|
30389
30476
|
|
|
30390
30477
|
export type ListAdKeywordsResponse = ({
|
|
30391
|
-
keywords?: Array<
|
|
30392
|
-
|
|
30478
|
+
keywords?: Array<AdKeyword>;
|
|
30479
|
+
pagination?: Pagination;
|
|
30480
|
+
});
|
|
30481
|
+
|
|
30482
|
+
export type ListAdKeywordsError = (ErrorResponse | {
|
|
30483
|
+
error?: string;
|
|
30484
|
+
} | unknown);
|
|
30485
|
+
|
|
30486
|
+
export type AddAdKeywordsData = {
|
|
30487
|
+
body: {
|
|
30393
30488
|
/**
|
|
30394
|
-
* Social account ID
|
|
30489
|
+
* Social account ID (Google Ads)
|
|
30395
30490
|
*/
|
|
30396
|
-
accountId
|
|
30397
|
-
profileId?: string;
|
|
30398
|
-
platform?: 'google';
|
|
30491
|
+
accountId: string;
|
|
30399
30492
|
/**
|
|
30400
|
-
* Google
|
|
30493
|
+
* Google ad group ID to add the keywords to
|
|
30401
30494
|
*/
|
|
30402
|
-
|
|
30403
|
-
|
|
30404
|
-
|
|
30405
|
-
|
|
30495
|
+
adSetId: string;
|
|
30496
|
+
keywords: Array<(string | {
|
|
30497
|
+
text: string;
|
|
30498
|
+
matchType?: 'exact' | 'phrase' | 'broad';
|
|
30499
|
+
})>;
|
|
30406
30500
|
/**
|
|
30407
|
-
*
|
|
30501
|
+
* Add as ad-group-level negatives instead of positive keywords
|
|
30408
30502
|
*/
|
|
30409
|
-
adSetId?: string;
|
|
30410
|
-
adSetName?: (string) | null;
|
|
30411
|
-
adSetStatus?: (string) | null;
|
|
30412
|
-
keyword?: string;
|
|
30413
|
-
matchType?: 'exact' | 'phrase' | 'broad' | 'unknown';
|
|
30414
|
-
status?: 'active' | 'paused';
|
|
30415
30503
|
negative?: boolean;
|
|
30416
|
-
|
|
30417
|
-
|
|
30418
|
-
|
|
30504
|
+
};
|
|
30505
|
+
};
|
|
30506
|
+
|
|
30507
|
+
export type AddAdKeywordsResponse = ({
|
|
30508
|
+
keywords?: Array<AdKeyword>;
|
|
30419
30509
|
});
|
|
30420
30510
|
|
|
30421
|
-
export type
|
|
30511
|
+
export type AddAdKeywordsError = (ErrorResponse | {
|
|
30512
|
+
error?: string;
|
|
30513
|
+
} | unknown);
|
|
30514
|
+
|
|
30515
|
+
export type UpdateAdKeywordData = {
|
|
30516
|
+
body: {
|
|
30517
|
+
status: 'active' | 'paused';
|
|
30518
|
+
};
|
|
30519
|
+
path: {
|
|
30520
|
+
/**
|
|
30521
|
+
* Zernio keyword ID (not the Google criterion ID)
|
|
30522
|
+
*/
|
|
30523
|
+
keywordId: string;
|
|
30524
|
+
};
|
|
30525
|
+
};
|
|
30526
|
+
|
|
30527
|
+
export type UpdateAdKeywordResponse = ({
|
|
30528
|
+
keyword?: AdKeyword;
|
|
30529
|
+
});
|
|
30530
|
+
|
|
30531
|
+
export type UpdateAdKeywordError = (ErrorResponse | {
|
|
30532
|
+
error?: string;
|
|
30533
|
+
} | unknown);
|
|
30534
|
+
|
|
30535
|
+
export type RemoveAdKeywordData = {
|
|
30536
|
+
path: {
|
|
30537
|
+
/**
|
|
30538
|
+
* Zernio keyword ID (not the Google criterion ID)
|
|
30539
|
+
*/
|
|
30540
|
+
keywordId: string;
|
|
30541
|
+
};
|
|
30542
|
+
};
|
|
30543
|
+
|
|
30544
|
+
export type RemoveAdKeywordResponse = ({
|
|
30545
|
+
/**
|
|
30546
|
+
* Always true on success
|
|
30547
|
+
*/
|
|
30548
|
+
removed?: boolean;
|
|
30549
|
+
keywordId?: string;
|
|
30550
|
+
});
|
|
30551
|
+
|
|
30552
|
+
export type RemoveAdKeywordError = (ErrorResponse | {
|
|
30422
30553
|
error?: string;
|
|
30423
30554
|
} | unknown);
|
|
30424
30555
|
|
|
@@ -30683,6 +30814,72 @@ export type DeleteAdCampaignError = ({
|
|
|
30683
30814
|
error?: string;
|
|
30684
30815
|
} | unknown);
|
|
30685
30816
|
|
|
30817
|
+
export type ListCampaignNegativeKeywordsData = {
|
|
30818
|
+
path: {
|
|
30819
|
+
/**
|
|
30820
|
+
* Platform campaign ID
|
|
30821
|
+
*/
|
|
30822
|
+
campaignId: string;
|
|
30823
|
+
};
|
|
30824
|
+
query?: {
|
|
30825
|
+
/**
|
|
30826
|
+
* Optional and NOT authoritative: the resolved campaign's own platform decides 200 vs 501, never this hint.
|
|
30827
|
+
*/
|
|
30828
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai';
|
|
30829
|
+
};
|
|
30830
|
+
};
|
|
30831
|
+
|
|
30832
|
+
export type ListCampaignNegativeKeywordsResponse = ({
|
|
30833
|
+
keywords?: Array<{
|
|
30834
|
+
criterionId?: string;
|
|
30835
|
+
text?: string;
|
|
30836
|
+
matchType?: 'exact' | 'phrase' | 'broad';
|
|
30837
|
+
}>;
|
|
30838
|
+
});
|
|
30839
|
+
|
|
30840
|
+
export type ListCampaignNegativeKeywordsError = ({
|
|
30841
|
+
error?: string;
|
|
30842
|
+
} | unknown);
|
|
30843
|
+
|
|
30844
|
+
export type ReplaceCampaignNegativeKeywordsData = {
|
|
30845
|
+
body: {
|
|
30846
|
+
/**
|
|
30847
|
+
* Optional and NOT authoritative: the resolved campaign's own platform decides 200 vs 501, never this hint.
|
|
30848
|
+
*/
|
|
30849
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai';
|
|
30850
|
+
keywords: Array<KeywordEntry>;
|
|
30851
|
+
};
|
|
30852
|
+
path: {
|
|
30853
|
+
/**
|
|
30854
|
+
* Platform campaign ID
|
|
30855
|
+
*/
|
|
30856
|
+
campaignId: string;
|
|
30857
|
+
};
|
|
30858
|
+
};
|
|
30859
|
+
|
|
30860
|
+
export type ReplaceCampaignNegativeKeywordsResponse = ({
|
|
30861
|
+
/**
|
|
30862
|
+
* Negative criteria newly created on Google
|
|
30863
|
+
*/
|
|
30864
|
+
created?: number;
|
|
30865
|
+
/**
|
|
30866
|
+
* Negative criteria removed from Google
|
|
30867
|
+
*/
|
|
30868
|
+
removed?: number;
|
|
30869
|
+
/**
|
|
30870
|
+
* The full negative-keyword set after the replace
|
|
30871
|
+
*/
|
|
30872
|
+
keywords?: Array<{
|
|
30873
|
+
criterionId?: string;
|
|
30874
|
+
text?: string;
|
|
30875
|
+
matchType?: 'exact' | 'phrase' | 'broad';
|
|
30876
|
+
}>;
|
|
30877
|
+
});
|
|
30878
|
+
|
|
30879
|
+
export type ReplaceCampaignNegativeKeywordsError = (ErrorResponse | {
|
|
30880
|
+
error?: string;
|
|
30881
|
+
} | unknown);
|
|
30882
|
+
|
|
30686
30883
|
export type BulkUpdateAdCampaignStatusData = {
|
|
30687
30884
|
body: {
|
|
30688
30885
|
status: 'active' | 'paused';
|
|
@@ -34196,13 +34393,17 @@ export type CreateStandaloneAdData = {
|
|
|
34196
34393
|
*/
|
|
34197
34394
|
campaignType?: 'display' | 'search';
|
|
34198
34395
|
/**
|
|
34199
|
-
* Google Search only.
|
|
34396
|
+
* Google Search only. Keywords on the new ad group; entries are strings (BROAD) or { text, matchType }. Editable later via PUT /v1/ads/{adId} targeting.keywords.
|
|
34200
34397
|
*/
|
|
34201
|
-
keywords?: Array<
|
|
34398
|
+
keywords?: Array<KeywordEntry>;
|
|
34399
|
+
/**
|
|
34400
|
+
* Google Search only; other platforms return 400. Ad-group-level negative keywords on the new ad group. Editable later via PUT /v1/ads/{adId} targeting.negativeKeywords.
|
|
34401
|
+
*/
|
|
34402
|
+
negativeKeywords?: Array<KeywordEntry>;
|
|
34202
34403
|
/**
|
|
34203
|
-
* Google Search only; other platforms return 400.
|
|
34404
|
+
* Google Search only; other platforms return 400. Campaign-level negative keywords (campaign_criterion.negative), created alongside the ad group. Editable later via PUT /v1/ads/campaigns/{campaignId}/negative-keywords.
|
|
34204
34405
|
*/
|
|
34205
|
-
|
|
34406
|
+
campaignNegativeKeywords?: Array<KeywordEntry>;
|
|
34206
34407
|
/**
|
|
34207
34408
|
* Google Search RSA only. Extra headlines.
|
|
34208
34409
|
*/
|
|
@@ -36800,6 +37001,10 @@ export type CreateTrackingTagData = {
|
|
|
36800
37001
|
*/
|
|
36801
37002
|
adAccountId: string;
|
|
36802
37003
|
name: string;
|
|
37004
|
+
/**
|
|
37005
|
+
* OpenAI Ads only (ignored by Meta). When set, also provisions a standard conversion event setting wired to the new pixel, so `goal: conversions` ad creates on `POST /v1/ads/create` have an event to reference immediately.
|
|
37006
|
+
*/
|
|
37007
|
+
defaultEventType?: 'order_created' | 'lead_created' | 'items_added' | 'contents_viewed' | 'checkout_started' | 'registration_completed' | 'subscription_created' | 'trial_started' | 'appointment_scheduled' | 'page_viewed' | 'app_installed' | 'app_opened';
|
|
36803
37008
|
};
|
|
36804
37009
|
path: {
|
|
36805
37010
|
/**
|