@getlatedev/node 0.2.1425 → 0.2.1426
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 +27 -21
- package/dist/index.d.ts +27 -21
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
- package/src/generated/sdk.gen.ts +28 -1
- package/src/generated/types.gen.ts +27 -21
package/dist/index.d.mts
CHANGED
|
@@ -2367,7 +2367,7 @@ type AccountWithFollowerStats = SocialAccount & {
|
|
|
2367
2367
|
type Ad = {
|
|
2368
2368
|
_id?: string;
|
|
2369
2369
|
name?: string;
|
|
2370
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
2370
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
2371
2371
|
/**
|
|
2372
2372
|
* Profile the row belongs to: the profile of its owning connection (`accountId`); when that connection no longer exists, the requested profile (`profileId` filter) that reaches the row ad account, else the profile of the oldest connection of the row owner that reaches it.
|
|
2373
2373
|
*/
|
|
@@ -2837,7 +2837,7 @@ type Ad = {
|
|
|
2837
2837
|
createdAt?: string;
|
|
2838
2838
|
updatedAt?: string;
|
|
2839
2839
|
};
|
|
2840
|
-
type platform = 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
2840
|
+
type platform = 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
2841
2841
|
type adType = 'boost' | 'standalone';
|
|
2842
2842
|
/**
|
|
2843
2843
|
* Creative format, classified from the media the creative carries. `null` when the creative carries no media to classify. An unsynced creative and a genuine text-only ad are indistinguishable, so neither is guessed at. Returned by `GET /v1/ads`, `GET /v1/ads/{adId}` and the ad nodes of `GET /v1/ads/tree`.
|
|
@@ -3003,7 +3003,7 @@ type AdBudget = {
|
|
|
3003
3003
|
};
|
|
3004
3004
|
type AdCampaign = {
|
|
3005
3005
|
platformCampaignId?: string;
|
|
3006
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
3006
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
3007
3007
|
campaignName?: string;
|
|
3008
3008
|
/**
|
|
3009
3009
|
* Delivery status derived from child ad statuses. Distinct from `reviewStatus`.
|
|
@@ -4484,7 +4484,7 @@ type AdTreeCampaign = {
|
|
|
4484
4484
|
[key: string]: (number);
|
|
4485
4485
|
};
|
|
4486
4486
|
platformCampaignId?: string;
|
|
4487
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
4487
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
4488
4488
|
campaignName?: string;
|
|
4489
4489
|
/**
|
|
4490
4490
|
* Earliest `platformCreatedAt` across every ad in the campaign (platform ad creation time; falls back to `createdAt`, Zernio's sync time, for ads synced before that field existed).
|
|
@@ -27883,7 +27883,7 @@ type GetAllAccountsHealthData = {
|
|
|
27883
27883
|
/**
|
|
27884
27884
|
* Filter by platform
|
|
27885
27885
|
*/
|
|
27886
|
-
platform?: 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'tiktok' | 'youtube' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'shopify' | 'wordpress' | 'wix' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads' | 'redditads' | 'whopads' | 'hubspot' | 'webflow' | 'googleanalytics';
|
|
27886
|
+
platform?: 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'tiktok' | 'youtube' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'shopify' | 'wordpress' | 'wix' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads' | 'redditads' | 'microsoftads' | 'whopads' | 'hubspot' | 'webflow' | 'googleanalytics';
|
|
27887
27887
|
/**
|
|
27888
27888
|
* Filter by profile ID
|
|
27889
27889
|
*/
|
|
@@ -28969,12 +28969,13 @@ type GetConnectUrlData = {
|
|
|
28969
28969
|
* - TikTok Ads (platform=tiktokads): `tiktok_ads_auth_failed`, `tiktok_ads_invalid_state`, `tiktok_ads_access_denied`, `tiktok_ads_config_error`, `tiktok_ads_token_failed`, `tiktok_ads_account_not_found`, `tiktok_ads_callback_error`.
|
|
28970
28970
|
* - X Ads (platform=xads): `x_ads_denied`, `x_ads_auth_failed`, `x_ads_config_error`, `x_ads_account_not_found`, `x_ads_state_error`, `x_ads_token_failed`, `x_ads_token_missing`, `x_ads_callback_error`.
|
|
28971
28971
|
* - Reddit Ads (platform=redditads): `reddit_ads_auth_failed`, `reddit_ads_invalid_state`, `reddit_ads_access_denied`, `reddit_ads_scope_not_granted`, `reddit_ads_no_ad_accounts`, `reddit_ads_callback_error`.
|
|
28972
|
+
* - Microsoft Ads (platform=microsoftads): `microsoft_ads_auth_failed`, `microsoft_ads_invalid_state`, `microsoft_ads_access_denied`, `microsoft_ads_scope_not_granted`, `microsoft_ads_unknown_user`, `microsoft_ads_no_ad_accounts`, `microsoft_ads_callback_error`.
|
|
28972
28973
|
* - Shopify (platform=shopify): `shopify_auth_failed`, `shopify_config_error`, `shopify_invalid_state`, `shopify_invalid_hmac`, `shopify_invalid_shop`, `shopify_missing_scopes`, `shopify_callback_error`.
|
|
28973
28974
|
*
|
|
28974
28975
|
* Notes:
|
|
28975
28976
|
*
|
|
28976
28977
|
* 1. On this endpoint every upstream OAuth error collapses into `oauth_denied`, with the provider's values in the `platform_error*` params. The dedicated ads flows differ: they use their own denial slugs, and `google_ads_auth_failed` and `tiktok_ads_auth_failed` may carry the provider's raw error string in `error_message`.
|
|
28977
|
-
* 2. On the tiktok and twitter ads flows `platform` carries the ads platform id (`tiktokads`, `xads`), not the value in the request path. The googleads, redditads and shopify flows report `googleads`, `redditads` and `shopify`.
|
|
28978
|
+
* 2. On the tiktok and twitter ads flows `platform` carries the ads platform id (`tiktokads`, `xads`), not the value in the request path. The googleads, redditads, microsoftads and shopify flows report `googleads`, `redditads`, `microsoftads` and `shopify`.
|
|
28978
28979
|
* 3. `missing_tiktok_permissions`: the TikTok authorization left out a permission the already-connected account needs, so nothing changed and it keeps working as before. User-fixable: connect again and accept every permission on TikTok's screen.
|
|
28979
28980
|
* 4. `instagram_login_method_mismatch`: an Instagram Login authorization landed on a profile whose Instagram account is connected through Facebook Login, so nothing changed. To refresh it, connect again with `loginMethod=facebook_login`. To move it to Instagram Login, disconnect it first.
|
|
28980
28981
|
*
|
|
@@ -29243,7 +29244,7 @@ type ConnectAdsData = {
|
|
|
29243
29244
|
* instagram_login flow no ads account can be created; do not use this value for those accounts.
|
|
29244
29245
|
*
|
|
29245
29246
|
*/
|
|
29246
|
-
platform: 'facebook' | 'instagram' | 'linkedin' | 'tiktok' | 'twitter' | 'pinterest' | 'googleads' | 'redditads';
|
|
29247
|
+
platform: 'facebook' | 'instagram' | 'linkedin' | 'tiktok' | 'twitter' | 'pinterest' | 'googleads' | 'redditads' | 'microsoftads';
|
|
29247
29248
|
};
|
|
29248
29249
|
query: {
|
|
29249
29250
|
/**
|
|
@@ -29252,7 +29253,7 @@ type ConnectAdsData = {
|
|
|
29252
29253
|
* - `twitter` (X Ads): required.
|
|
29253
29254
|
* - `tiktok`: optional. Omit it for ads-only mode (no TikTok posting account linked; ad creation uses a Brand Identity instead of a TT_USER).
|
|
29254
29255
|
* - Same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`): picks which posting account the ads connection uses when the profile holds several of that platform. With one, it can be omitted.
|
|
29255
|
-
* - Standalone platforms (`googleads`, `redditads`): ignored.
|
|
29256
|
+
* - Standalone platforms (`googleads`, `redditads`, `microsoftads`): ignored.
|
|
29256
29257
|
*
|
|
29257
29258
|
* On same-token platforms, an id that names no active account of the platform on the profile is ignored. Exception: with `force=true`, when it names the posting account the profile's ads connection hangs off, that account is no longer connected.
|
|
29258
29259
|
*
|
|
@@ -29269,6 +29270,7 @@ type ConnectAdsData = {
|
|
|
29269
29270
|
* - `linkedin`: bare numeric sponsored-account id.
|
|
29270
29271
|
* - `googleads`: bare customer id digits.
|
|
29271
29272
|
* - `redditads`: Reddit ad account id, `a2_<id>` or `t2_<id>`.
|
|
29273
|
+
* - `microsoftads`: bare numeric account id (the Id, not the account number).
|
|
29272
29274
|
* - `twitter` (X Ads): base36 account id.
|
|
29273
29275
|
*
|
|
29274
29276
|
* `tiktok` scopes advertisers at OAuth and `pinterest` has no ads discovery, so both ignore it.
|
|
@@ -29283,7 +29285,7 @@ type ConnectAdsData = {
|
|
|
29283
29285
|
*
|
|
29284
29286
|
* **Through OAuth**: on Meta the scope is kept when this call returns an `authUrl`, so the Meta Ads account created after OAuth is scoped (only its scoped ad accounts synced and subscribed) from the start.
|
|
29285
29287
|
*
|
|
29286
|
-
* On `googleads` and `
|
|
29288
|
+
* On `googleads`, `redditads` and `microsoftads` it is kept through OAuth when `redirect_url` is set, so the new connection syncs only scoped ad accounts from the first sync.
|
|
29287
29289
|
*
|
|
29288
29290
|
* **Reconnects**: business-login reconnects preserve the existing scope; supplied IDs are checked against the new grant. To change the scope after migration, call this endpoint with the IDs and omit loginMode.
|
|
29289
29291
|
*
|
|
@@ -29317,6 +29319,10 @@ type ConnectAdsData = {
|
|
|
29317
29319
|
* Enable headless mode (same-token platforms only)
|
|
29318
29320
|
*/
|
|
29319
29321
|
headless?: boolean;
|
|
29322
|
+
/**
|
|
29323
|
+
* Microsoft Ads only. How the user signs in to Microsoft Advertising: `google` for a Microsoft Advertising login that is a Google account. `google` on any other platform returns 400 `invalid_field_value`.
|
|
29324
|
+
*/
|
|
29325
|
+
identityProvider?: 'microsoft' | 'google';
|
|
29320
29326
|
/**
|
|
29321
29327
|
* Meta ads authorization mode. Business login is opt-in for Facebook and Instagram; classic preserves the posting-account flow.
|
|
29322
29328
|
*/
|
|
@@ -29348,19 +29354,19 @@ type ConnectAdsData = {
|
|
|
29348
29354
|
*/
|
|
29349
29355
|
profileId: string;
|
|
29350
29356
|
/**
|
|
29351
|
-
* Custom URL the browser is sent to once the OAuth flow finishes. When omitted, the browser lands on the Zernio dashboard. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`, `redditads`) flows.
|
|
29357
|
+
* Custom URL the browser is sent to once the OAuth flow finishes. When omitted, the browser lands on the Zernio dashboard. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`, `redditads`, `microsoftads`) flows.
|
|
29352
29358
|
*
|
|
29353
29359
|
* MUST be an absolute http(s) URL or a custom app scheme for mobile deeplinks (e.g. myapp://callback). A relative path is rejected with 400 INVALID_REDIRECT_URL.
|
|
29354
29360
|
*
|
|
29355
29361
|
* On success:
|
|
29356
29362
|
*
|
|
29357
29363
|
* - `tiktok`: lands on the URL unchanged.
|
|
29358
|
-
* - `twitter`, `googleads` and `
|
|
29364
|
+
* - `twitter`, `googleads`, `redditads` and `microsoftads`: append `connected` (the ads platform id: `xads`, `googleads`, `redditads` or `microsoftads`), `profileId`, `accountId` (the ads connection) and `username`.
|
|
29359
29365
|
* - Same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`): append `connected`, `profileId`, `accountId`, `username` and, on API-key calls, `connect_token`.
|
|
29360
29366
|
*
|
|
29361
29367
|
* On failure the same error contract applies as on GET /v1/connect/{platform}: `error` and `platform` are always appended, other params are optional, and the value list there is not exhaustive.
|
|
29362
29368
|
*
|
|
29363
|
-
* On the tiktok, twitter, googleads and
|
|
29369
|
+
* On the tiktok, twitter, googleads, redditads and microsoftads flows, `platform` carries the ads platform id (`tiktokads`, `xads`, `googleads`, `redditads`, `microsoftads`), not the value used in the request path.
|
|
29364
29370
|
*
|
|
29365
29371
|
*/
|
|
29366
29372
|
redirect_url?: string;
|
|
@@ -49194,7 +49200,7 @@ type ListAdsData = {
|
|
|
49194
49200
|
* Meta only: Facebook Page ID. Returns only ads whose creative is backed by this Page (a Meta ad account serves ads for every Page in the Business Manager). Matches each ad's `creative.pageId`; ads with no page signal (rare IG-only creatives) never match. Mirrors the same filter on /v1/ads/campaigns and /v1/ads/tree.
|
|
49195
49201
|
*/
|
|
49196
49202
|
pageId?: string;
|
|
49197
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
49203
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
49198
49204
|
/**
|
|
49199
49205
|
* Meta ad ID. Returns the ad with this platform-side ad ID.
|
|
49200
49206
|
*/
|
|
@@ -50221,7 +50227,7 @@ type ListAdCampaignsData = {
|
|
|
50221
50227
|
* Meta only: Facebook Page ID. Campaigns have no Page of their own, so this keeps campaigns having at least one ad backed by this Page, with adCount and metrics computed over those ads only. Mirrors the same filter on /v1/ads and /v1/ads/tree.
|
|
50222
50228
|
*/
|
|
50223
50229
|
pageId?: string;
|
|
50224
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
50230
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
50225
50231
|
/**
|
|
50226
50232
|
* Profile ID
|
|
50227
50233
|
*/
|
|
@@ -50376,7 +50382,7 @@ type CreateAdCampaignError = (unknown | ErrorResponse);
|
|
|
50376
50382
|
type UpdateAdCampaignStatusData = {
|
|
50377
50383
|
body: {
|
|
50378
50384
|
status: 'active' | 'paused';
|
|
50379
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
50385
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
50380
50386
|
};
|
|
50381
50387
|
path: {
|
|
50382
50388
|
/**
|
|
@@ -50595,7 +50601,7 @@ type UpdateAdCampaignData = {
|
|
|
50595
50601
|
/**
|
|
50596
50602
|
* Required: platform campaign IDs are not globally unique.
|
|
50597
50603
|
*/
|
|
50598
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
50604
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
50599
50605
|
/**
|
|
50600
50606
|
* **Meta only.** Zernio SocialAccount id owning the ad account. Needed only for an EMPTY campaign (zero ads); ignored otherwise.
|
|
50601
50607
|
*/
|
|
@@ -50704,7 +50710,7 @@ type UpdateAdCampaignResponse = ({
|
|
|
50704
50710
|
type UpdateAdCampaignError = (unknown | ErrorResponse);
|
|
50705
50711
|
type DeleteAdCampaignData = {
|
|
50706
50712
|
body: {
|
|
50707
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
50713
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
50708
50714
|
/**
|
|
50709
50715
|
* Zernio SocialAccount id owning the ad account. Required only to delete an EMPTY campaign (zero ads), which has no local Ad documents to resolve a token from.
|
|
50710
50716
|
*/
|
|
@@ -50804,7 +50810,7 @@ type BulkUpdateAdCampaignStatusData = {
|
|
|
50804
50810
|
/**
|
|
50805
50811
|
* The ad platform, e.g. `google` for Google Ads. The ads connection slug (`googleads`, `tiktokads`, ...) is accepted as an alias. `metaads` is not: send `facebook` or `instagram`.
|
|
50806
50812
|
*/
|
|
50807
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'googleads' | 'tiktokads' | 'linkedinads' | 'pinterestads' | 'xads' | 'openaiads' | 'redditads';
|
|
50813
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft' | 'googleads' | 'tiktokads' | 'linkedinads' | 'pinterestads' | 'xads' | 'openaiads' | 'redditads' | 'microsoftads';
|
|
50808
50814
|
}>;
|
|
50809
50815
|
};
|
|
50810
50816
|
};
|
|
@@ -51979,7 +51985,7 @@ type GetAdSetTargetingError = (ErrorResponse | unknown);
|
|
|
51979
51985
|
type UpdateAdSetStatusData = {
|
|
51980
51986
|
body: {
|
|
51981
51987
|
status: 'active' | 'paused';
|
|
51982
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
51988
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
51983
51989
|
};
|
|
51984
51990
|
path: {
|
|
51985
51991
|
/**
|
|
@@ -52084,7 +52090,7 @@ type GetAdTreeData = {
|
|
|
52084
52090
|
* Meta only: Facebook Page ID. Prunes the tree to ads whose creative is backed by this Page: campaigns and ad sets with no ad on the Page drop out, and rolled-up metrics cover only the Page's ads. Mirrors the same filter on /v1/ads and /v1/ads/campaigns.
|
|
52085
52091
|
*/
|
|
52086
52092
|
pageId?: string;
|
|
52087
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
52093
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
52088
52094
|
/**
|
|
52089
52095
|
* Profile ID
|
|
52090
52096
|
*/
|
|
@@ -52163,7 +52169,7 @@ type GetAdsTimelineData = {
|
|
|
52163
52169
|
/**
|
|
52164
52170
|
* Restrict to one platform.
|
|
52165
52171
|
*/
|
|
52166
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
52172
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
52167
52173
|
/**
|
|
52168
52174
|
* Inclusive end of metrics range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
52169
52175
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -2367,7 +2367,7 @@ type AccountWithFollowerStats = SocialAccount & {
|
|
|
2367
2367
|
type Ad = {
|
|
2368
2368
|
_id?: string;
|
|
2369
2369
|
name?: string;
|
|
2370
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
2370
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
2371
2371
|
/**
|
|
2372
2372
|
* Profile the row belongs to: the profile of its owning connection (`accountId`); when that connection no longer exists, the requested profile (`profileId` filter) that reaches the row ad account, else the profile of the oldest connection of the row owner that reaches it.
|
|
2373
2373
|
*/
|
|
@@ -2837,7 +2837,7 @@ type Ad = {
|
|
|
2837
2837
|
createdAt?: string;
|
|
2838
2838
|
updatedAt?: string;
|
|
2839
2839
|
};
|
|
2840
|
-
type platform = 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
2840
|
+
type platform = 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
2841
2841
|
type adType = 'boost' | 'standalone';
|
|
2842
2842
|
/**
|
|
2843
2843
|
* Creative format, classified from the media the creative carries. `null` when the creative carries no media to classify. An unsynced creative and a genuine text-only ad are indistinguishable, so neither is guessed at. Returned by `GET /v1/ads`, `GET /v1/ads/{adId}` and the ad nodes of `GET /v1/ads/tree`.
|
|
@@ -3003,7 +3003,7 @@ type AdBudget = {
|
|
|
3003
3003
|
};
|
|
3004
3004
|
type AdCampaign = {
|
|
3005
3005
|
platformCampaignId?: string;
|
|
3006
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
3006
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
3007
3007
|
campaignName?: string;
|
|
3008
3008
|
/**
|
|
3009
3009
|
* Delivery status derived from child ad statuses. Distinct from `reviewStatus`.
|
|
@@ -4484,7 +4484,7 @@ type AdTreeCampaign = {
|
|
|
4484
4484
|
[key: string]: (number);
|
|
4485
4485
|
};
|
|
4486
4486
|
platformCampaignId?: string;
|
|
4487
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
4487
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
4488
4488
|
campaignName?: string;
|
|
4489
4489
|
/**
|
|
4490
4490
|
* Earliest `platformCreatedAt` across every ad in the campaign (platform ad creation time; falls back to `createdAt`, Zernio's sync time, for ads synced before that field existed).
|
|
@@ -27883,7 +27883,7 @@ type GetAllAccountsHealthData = {
|
|
|
27883
27883
|
/**
|
|
27884
27884
|
* Filter by platform
|
|
27885
27885
|
*/
|
|
27886
|
-
platform?: 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'tiktok' | 'youtube' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'shopify' | 'wordpress' | 'wix' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads' | 'redditads' | 'whopads' | 'hubspot' | 'webflow' | 'googleanalytics';
|
|
27886
|
+
platform?: 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'tiktok' | 'youtube' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'shopify' | 'wordpress' | 'wix' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads' | 'redditads' | 'microsoftads' | 'whopads' | 'hubspot' | 'webflow' | 'googleanalytics';
|
|
27887
27887
|
/**
|
|
27888
27888
|
* Filter by profile ID
|
|
27889
27889
|
*/
|
|
@@ -28969,12 +28969,13 @@ type GetConnectUrlData = {
|
|
|
28969
28969
|
* - TikTok Ads (platform=tiktokads): `tiktok_ads_auth_failed`, `tiktok_ads_invalid_state`, `tiktok_ads_access_denied`, `tiktok_ads_config_error`, `tiktok_ads_token_failed`, `tiktok_ads_account_not_found`, `tiktok_ads_callback_error`.
|
|
28970
28970
|
* - X Ads (platform=xads): `x_ads_denied`, `x_ads_auth_failed`, `x_ads_config_error`, `x_ads_account_not_found`, `x_ads_state_error`, `x_ads_token_failed`, `x_ads_token_missing`, `x_ads_callback_error`.
|
|
28971
28971
|
* - Reddit Ads (platform=redditads): `reddit_ads_auth_failed`, `reddit_ads_invalid_state`, `reddit_ads_access_denied`, `reddit_ads_scope_not_granted`, `reddit_ads_no_ad_accounts`, `reddit_ads_callback_error`.
|
|
28972
|
+
* - Microsoft Ads (platform=microsoftads): `microsoft_ads_auth_failed`, `microsoft_ads_invalid_state`, `microsoft_ads_access_denied`, `microsoft_ads_scope_not_granted`, `microsoft_ads_unknown_user`, `microsoft_ads_no_ad_accounts`, `microsoft_ads_callback_error`.
|
|
28972
28973
|
* - Shopify (platform=shopify): `shopify_auth_failed`, `shopify_config_error`, `shopify_invalid_state`, `shopify_invalid_hmac`, `shopify_invalid_shop`, `shopify_missing_scopes`, `shopify_callback_error`.
|
|
28973
28974
|
*
|
|
28974
28975
|
* Notes:
|
|
28975
28976
|
*
|
|
28976
28977
|
* 1. On this endpoint every upstream OAuth error collapses into `oauth_denied`, with the provider's values in the `platform_error*` params. The dedicated ads flows differ: they use their own denial slugs, and `google_ads_auth_failed` and `tiktok_ads_auth_failed` may carry the provider's raw error string in `error_message`.
|
|
28977
|
-
* 2. On the tiktok and twitter ads flows `platform` carries the ads platform id (`tiktokads`, `xads`), not the value in the request path. The googleads, redditads and shopify flows report `googleads`, `redditads` and `shopify`.
|
|
28978
|
+
* 2. On the tiktok and twitter ads flows `platform` carries the ads platform id (`tiktokads`, `xads`), not the value in the request path. The googleads, redditads, microsoftads and shopify flows report `googleads`, `redditads`, `microsoftads` and `shopify`.
|
|
28978
28979
|
* 3. `missing_tiktok_permissions`: the TikTok authorization left out a permission the already-connected account needs, so nothing changed and it keeps working as before. User-fixable: connect again and accept every permission on TikTok's screen.
|
|
28979
28980
|
* 4. `instagram_login_method_mismatch`: an Instagram Login authorization landed on a profile whose Instagram account is connected through Facebook Login, so nothing changed. To refresh it, connect again with `loginMethod=facebook_login`. To move it to Instagram Login, disconnect it first.
|
|
28980
28981
|
*
|
|
@@ -29243,7 +29244,7 @@ type ConnectAdsData = {
|
|
|
29243
29244
|
* instagram_login flow no ads account can be created; do not use this value for those accounts.
|
|
29244
29245
|
*
|
|
29245
29246
|
*/
|
|
29246
|
-
platform: 'facebook' | 'instagram' | 'linkedin' | 'tiktok' | 'twitter' | 'pinterest' | 'googleads' | 'redditads';
|
|
29247
|
+
platform: 'facebook' | 'instagram' | 'linkedin' | 'tiktok' | 'twitter' | 'pinterest' | 'googleads' | 'redditads' | 'microsoftads';
|
|
29247
29248
|
};
|
|
29248
29249
|
query: {
|
|
29249
29250
|
/**
|
|
@@ -29252,7 +29253,7 @@ type ConnectAdsData = {
|
|
|
29252
29253
|
* - `twitter` (X Ads): required.
|
|
29253
29254
|
* - `tiktok`: optional. Omit it for ads-only mode (no TikTok posting account linked; ad creation uses a Brand Identity instead of a TT_USER).
|
|
29254
29255
|
* - Same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`): picks which posting account the ads connection uses when the profile holds several of that platform. With one, it can be omitted.
|
|
29255
|
-
* - Standalone platforms (`googleads`, `redditads`): ignored.
|
|
29256
|
+
* - Standalone platforms (`googleads`, `redditads`, `microsoftads`): ignored.
|
|
29256
29257
|
*
|
|
29257
29258
|
* On same-token platforms, an id that names no active account of the platform on the profile is ignored. Exception: with `force=true`, when it names the posting account the profile's ads connection hangs off, that account is no longer connected.
|
|
29258
29259
|
*
|
|
@@ -29269,6 +29270,7 @@ type ConnectAdsData = {
|
|
|
29269
29270
|
* - `linkedin`: bare numeric sponsored-account id.
|
|
29270
29271
|
* - `googleads`: bare customer id digits.
|
|
29271
29272
|
* - `redditads`: Reddit ad account id, `a2_<id>` or `t2_<id>`.
|
|
29273
|
+
* - `microsoftads`: bare numeric account id (the Id, not the account number).
|
|
29272
29274
|
* - `twitter` (X Ads): base36 account id.
|
|
29273
29275
|
*
|
|
29274
29276
|
* `tiktok` scopes advertisers at OAuth and `pinterest` has no ads discovery, so both ignore it.
|
|
@@ -29283,7 +29285,7 @@ type ConnectAdsData = {
|
|
|
29283
29285
|
*
|
|
29284
29286
|
* **Through OAuth**: on Meta the scope is kept when this call returns an `authUrl`, so the Meta Ads account created after OAuth is scoped (only its scoped ad accounts synced and subscribed) from the start.
|
|
29285
29287
|
*
|
|
29286
|
-
* On `googleads` and `
|
|
29288
|
+
* On `googleads`, `redditads` and `microsoftads` it is kept through OAuth when `redirect_url` is set, so the new connection syncs only scoped ad accounts from the first sync.
|
|
29287
29289
|
*
|
|
29288
29290
|
* **Reconnects**: business-login reconnects preserve the existing scope; supplied IDs are checked against the new grant. To change the scope after migration, call this endpoint with the IDs and omit loginMode.
|
|
29289
29291
|
*
|
|
@@ -29317,6 +29319,10 @@ type ConnectAdsData = {
|
|
|
29317
29319
|
* Enable headless mode (same-token platforms only)
|
|
29318
29320
|
*/
|
|
29319
29321
|
headless?: boolean;
|
|
29322
|
+
/**
|
|
29323
|
+
* Microsoft Ads only. How the user signs in to Microsoft Advertising: `google` for a Microsoft Advertising login that is a Google account. `google` on any other platform returns 400 `invalid_field_value`.
|
|
29324
|
+
*/
|
|
29325
|
+
identityProvider?: 'microsoft' | 'google';
|
|
29320
29326
|
/**
|
|
29321
29327
|
* Meta ads authorization mode. Business login is opt-in for Facebook and Instagram; classic preserves the posting-account flow.
|
|
29322
29328
|
*/
|
|
@@ -29348,19 +29354,19 @@ type ConnectAdsData = {
|
|
|
29348
29354
|
*/
|
|
29349
29355
|
profileId: string;
|
|
29350
29356
|
/**
|
|
29351
|
-
* Custom URL the browser is sent to once the OAuth flow finishes. When omitted, the browser lands on the Zernio dashboard. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`, `redditads`) flows.
|
|
29357
|
+
* Custom URL the browser is sent to once the OAuth flow finishes. When omitted, the browser lands on the Zernio dashboard. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`, `redditads`, `microsoftads`) flows.
|
|
29352
29358
|
*
|
|
29353
29359
|
* MUST be an absolute http(s) URL or a custom app scheme for mobile deeplinks (e.g. myapp://callback). A relative path is rejected with 400 INVALID_REDIRECT_URL.
|
|
29354
29360
|
*
|
|
29355
29361
|
* On success:
|
|
29356
29362
|
*
|
|
29357
29363
|
* - `tiktok`: lands on the URL unchanged.
|
|
29358
|
-
* - `twitter`, `googleads` and `
|
|
29364
|
+
* - `twitter`, `googleads`, `redditads` and `microsoftads`: append `connected` (the ads platform id: `xads`, `googleads`, `redditads` or `microsoftads`), `profileId`, `accountId` (the ads connection) and `username`.
|
|
29359
29365
|
* - Same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`): append `connected`, `profileId`, `accountId`, `username` and, on API-key calls, `connect_token`.
|
|
29360
29366
|
*
|
|
29361
29367
|
* On failure the same error contract applies as on GET /v1/connect/{platform}: `error` and `platform` are always appended, other params are optional, and the value list there is not exhaustive.
|
|
29362
29368
|
*
|
|
29363
|
-
* On the tiktok, twitter, googleads and
|
|
29369
|
+
* On the tiktok, twitter, googleads, redditads and microsoftads flows, `platform` carries the ads platform id (`tiktokads`, `xads`, `googleads`, `redditads`, `microsoftads`), not the value used in the request path.
|
|
29364
29370
|
*
|
|
29365
29371
|
*/
|
|
29366
29372
|
redirect_url?: string;
|
|
@@ -49194,7 +49200,7 @@ type ListAdsData = {
|
|
|
49194
49200
|
* Meta only: Facebook Page ID. Returns only ads whose creative is backed by this Page (a Meta ad account serves ads for every Page in the Business Manager). Matches each ad's `creative.pageId`; ads with no page signal (rare IG-only creatives) never match. Mirrors the same filter on /v1/ads/campaigns and /v1/ads/tree.
|
|
49195
49201
|
*/
|
|
49196
49202
|
pageId?: string;
|
|
49197
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
49203
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
49198
49204
|
/**
|
|
49199
49205
|
* Meta ad ID. Returns the ad with this platform-side ad ID.
|
|
49200
49206
|
*/
|
|
@@ -50221,7 +50227,7 @@ type ListAdCampaignsData = {
|
|
|
50221
50227
|
* Meta only: Facebook Page ID. Campaigns have no Page of their own, so this keeps campaigns having at least one ad backed by this Page, with adCount and metrics computed over those ads only. Mirrors the same filter on /v1/ads and /v1/ads/tree.
|
|
50222
50228
|
*/
|
|
50223
50229
|
pageId?: string;
|
|
50224
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
50230
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
50225
50231
|
/**
|
|
50226
50232
|
* Profile ID
|
|
50227
50233
|
*/
|
|
@@ -50376,7 +50382,7 @@ type CreateAdCampaignError = (unknown | ErrorResponse);
|
|
|
50376
50382
|
type UpdateAdCampaignStatusData = {
|
|
50377
50383
|
body: {
|
|
50378
50384
|
status: 'active' | 'paused';
|
|
50379
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
50385
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
50380
50386
|
};
|
|
50381
50387
|
path: {
|
|
50382
50388
|
/**
|
|
@@ -50595,7 +50601,7 @@ type UpdateAdCampaignData = {
|
|
|
50595
50601
|
/**
|
|
50596
50602
|
* Required: platform campaign IDs are not globally unique.
|
|
50597
50603
|
*/
|
|
50598
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
50604
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
50599
50605
|
/**
|
|
50600
50606
|
* **Meta only.** Zernio SocialAccount id owning the ad account. Needed only for an EMPTY campaign (zero ads); ignored otherwise.
|
|
50601
50607
|
*/
|
|
@@ -50704,7 +50710,7 @@ type UpdateAdCampaignResponse = ({
|
|
|
50704
50710
|
type UpdateAdCampaignError = (unknown | ErrorResponse);
|
|
50705
50711
|
type DeleteAdCampaignData = {
|
|
50706
50712
|
body: {
|
|
50707
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
50713
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
50708
50714
|
/**
|
|
50709
50715
|
* Zernio SocialAccount id owning the ad account. Required only to delete an EMPTY campaign (zero ads), which has no local Ad documents to resolve a token from.
|
|
50710
50716
|
*/
|
|
@@ -50804,7 +50810,7 @@ type BulkUpdateAdCampaignStatusData = {
|
|
|
50804
50810
|
/**
|
|
50805
50811
|
* The ad platform, e.g. `google` for Google Ads. The ads connection slug (`googleads`, `tiktokads`, ...) is accepted as an alias. `metaads` is not: send `facebook` or `instagram`.
|
|
50806
50812
|
*/
|
|
50807
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'googleads' | 'tiktokads' | 'linkedinads' | 'pinterestads' | 'xads' | 'openaiads' | 'redditads';
|
|
50813
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft' | 'googleads' | 'tiktokads' | 'linkedinads' | 'pinterestads' | 'xads' | 'openaiads' | 'redditads' | 'microsoftads';
|
|
50808
50814
|
}>;
|
|
50809
50815
|
};
|
|
50810
50816
|
};
|
|
@@ -51979,7 +51985,7 @@ type GetAdSetTargetingError = (ErrorResponse | unknown);
|
|
|
51979
51985
|
type UpdateAdSetStatusData = {
|
|
51980
51986
|
body: {
|
|
51981
51987
|
status: 'active' | 'paused';
|
|
51982
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
51988
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
51983
51989
|
};
|
|
51984
51990
|
path: {
|
|
51985
51991
|
/**
|
|
@@ -52084,7 +52090,7 @@ type GetAdTreeData = {
|
|
|
52084
52090
|
* Meta only: Facebook Page ID. Prunes the tree to ads whose creative is backed by this Page: campaigns and ad sets with no ad on the Page drop out, and rolled-up metrics cover only the Page's ads. Mirrors the same filter on /v1/ads and /v1/ads/campaigns.
|
|
52085
52091
|
*/
|
|
52086
52092
|
pageId?: string;
|
|
52087
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
52093
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
52088
52094
|
/**
|
|
52089
52095
|
* Profile ID
|
|
52090
52096
|
*/
|
|
@@ -52163,7 +52169,7 @@ type GetAdsTimelineData = {
|
|
|
52163
52169
|
/**
|
|
52164
52170
|
* Restrict to one platform.
|
|
52165
52171
|
*/
|
|
52166
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
52172
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
52167
52173
|
/**
|
|
52168
52174
|
* Inclusive end of metrics range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
52169
52175
|
*/
|
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: "@getlatedev/node",
|
|
39
|
-
version: "0.2.
|
|
39
|
+
version: "0.2.1426",
|
|
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: "@getlatedev/node",
|
|
8
|
-
version: "0.2.
|
|
8
|
+
version: "0.2.1426",
|
|
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
|
@@ -2361,7 +2361,7 @@ export const verifyWhatsAppNumber = <ThrowOnError extends boolean = false>(optio
|
|
|
2361
2361
|
* - When Meta reports that the number's inbound message webhook does not reach Zernio, or subscribing the number's WhatsApp Business Account to Zernio's webhooks failed at connect, `platformConnection.inboundWebhookSubscribed` is `false`, an entry is added to `issues`, and the overall `status` is at least `warning`.
|
|
2362
2362
|
* - When `platformConnection.phoneStatus` is anything other than `CONNECTED`, an entry is added to `issues` and the overall `status` is at least `warning`; `BANNED` makes it `error`. `disconnectReason` stays null, since reconnecting does not lift a Meta status.
|
|
2363
2363
|
*
|
|
2364
|
-
* ### Standalone ads connections (`googleads`, `redditads`)
|
|
2364
|
+
* ### Standalone ads connections (`googleads`, `redditads`, `microsoftads`)
|
|
2365
2365
|
*
|
|
2366
2366
|
* A connection that cannot serve requests until a fresh OAuth repairs it adds an entry to `issues`. It also adds a recommendation to call `GET /v1/connect/{platform}/ads`, whose `authUrl` reconnects the same account.
|
|
2367
2367
|
*
|
|
@@ -2786,6 +2786,22 @@ export const handleOAuthCallback = <ThrowOnError extends boolean = false>(option
|
|
|
2786
2786
|
*
|
|
2787
2787
|
* Without `redirect_url` the browser lands on the Zernio dashboard's ad account picker for the new connection.
|
|
2788
2788
|
*
|
|
2789
|
+
* ### Standalone platforms (microsoftads)
|
|
2790
|
+
*
|
|
2791
|
+
* Starts the Microsoft Advertising OAuth flow and creates a standalone ads SocialAccount (microsoftads) with no parent. It is reached only as `microsoftads` in the path.
|
|
2792
|
+
*
|
|
2793
|
+
* Microsoft Advertising users sign in with a Microsoft account by default. A user who signs in to ads.microsoft.com with Google passes `identityProvider=google`, and the flow runs on Google's consent screen instead.
|
|
2794
|
+
*
|
|
2795
|
+
* If an active Microsoft Ads connection already exists on the profile, is not flagged needsReconnection and was signed in with the same identity provider, returns alreadyConnected: true. Otherwise it returns an authUrl; completing it reconnects the same account (same accountId).
|
|
2796
|
+
*
|
|
2797
|
+
* Discovery lists every Microsoft Advertising ad account the user can reach. The callback redirects with `platform=microsoftads` and:
|
|
2798
|
+
*
|
|
2799
|
+
* - `error=microsoft_ads_scope_not_granted`: the user declines the Microsoft Advertising permission (nothing is saved)
|
|
2800
|
+
* - `error=microsoft_ads_unknown_user`: the account that signed in is not a Microsoft Advertising user, for example a Google user connecting without `identityProvider=google` (nothing is saved)
|
|
2801
|
+
* - `error=microsoft_ads_no_ad_accounts`: the user reaches no Microsoft Advertising ad account
|
|
2802
|
+
*
|
|
2803
|
+
* Without `redirect_url` the browser lands on the Zernio dashboard's ad account picker for the new connection.
|
|
2804
|
+
*
|
|
2789
2805
|
*/
|
|
2790
2806
|
export const connectAds = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ConnectAdsData, ThrowOnError>) => {
|
|
2791
2807
|
return (options?.client ?? client).get<ConnectAdsResponse, ConnectAdsError, ThrowOnError>({
|
|
@@ -16579,6 +16595,17 @@ export const replaceGoogleListingGroupFilters = <ThrowOnError extends boolean =
|
|
|
16579
16595
|
*
|
|
16580
16596
|
* Reddit throttling surfaces as 429 `rate_limited` with `platform: reddit`; retry after a delay. To promote an existing Reddit post, use POST /v1/ads/boost.
|
|
16581
16597
|
*
|
|
16598
|
+
* ### Microsoft Ads
|
|
16599
|
+
*
|
|
16600
|
+
* Use the `accountId` of a `microsoftads` connection and its numeric `adAccountId`. Zernio creates a Search campaign carrying the daily budget and the countries, an ad group carrying the schedule, a responsive search ad and the `keywords`.
|
|
16601
|
+
*
|
|
16602
|
+
* - `goal` is `traffic`; `budgetType` must be `daily`.
|
|
16603
|
+
* - `headline`, `body` and `linkUrl` are required. `additionalHeadlines` and `additionalDescriptions` complete the ad to 3 to 15 headlines (30 characters) and 2 to 4 descriptions (90 characters); missing ones are filled from `name` and the link's host.
|
|
16604
|
+
* - `countries` (or `targeting.countries`) is required; no other targeting field applies.
|
|
16605
|
+
* - Bid fields, `negativeKeywords`, `campaignNegativeKeywords`, sitelinks, callouts, structured snippets, `businessName`, `longHeadline` and a `campaignType` other than `search` return 422.
|
|
16606
|
+
*
|
|
16607
|
+
* Without `status`, every level is switched on and the campaign spends once Microsoft approves the ad: send `status: PAUSED` to create it paused. A failed step deletes the campaign the call created.
|
|
16608
|
+
*
|
|
16582
16609
|
* ### Idempotency
|
|
16583
16610
|
*
|
|
16584
16611
|
* This endpoint is not idempotent at the platform level: a blind retry creates a second campaign/ad set/ad. Send an `Idempotency-Key` header to make retries safe.
|
|
@@ -113,7 +113,7 @@ export type AccountWithFollowerStats = SocialAccount & {
|
|
|
113
113
|
export type Ad = {
|
|
114
114
|
_id?: string;
|
|
115
115
|
name?: string;
|
|
116
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
116
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
117
117
|
/**
|
|
118
118
|
* Profile the row belongs to: the profile of its owning connection (`accountId`); when that connection no longer exists, the requested profile (`profileId` filter) that reaches the row ad account, else the profile of the oldest connection of the row owner that reaches it.
|
|
119
119
|
*/
|
|
@@ -584,7 +584,7 @@ export type Ad = {
|
|
|
584
584
|
updatedAt?: string;
|
|
585
585
|
};
|
|
586
586
|
|
|
587
|
-
export type platform = 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
587
|
+
export type platform = 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
588
588
|
|
|
589
589
|
export type adType = 'boost' | 'standalone';
|
|
590
590
|
|
|
@@ -761,7 +761,7 @@ export type AdBudget = {
|
|
|
761
761
|
|
|
762
762
|
export type AdCampaign = {
|
|
763
763
|
platformCampaignId?: string;
|
|
764
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
764
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
765
765
|
campaignName?: string;
|
|
766
766
|
/**
|
|
767
767
|
* Delivery status derived from child ad statuses. Distinct from `reviewStatus`.
|
|
@@ -2300,7 +2300,7 @@ export type AdTreeCampaign = {
|
|
|
2300
2300
|
[key: string]: (number);
|
|
2301
2301
|
};
|
|
2302
2302
|
platformCampaignId?: string;
|
|
2303
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
2303
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
2304
2304
|
campaignName?: string;
|
|
2305
2305
|
/**
|
|
2306
2306
|
* Earliest `platformCreatedAt` across every ad in the campaign (platform ad creation time; falls back to `createdAt`, Zernio's sync time, for ads synced before that field existed).
|
|
@@ -26884,7 +26884,7 @@ export type GetAllAccountsHealthData = {
|
|
|
26884
26884
|
/**
|
|
26885
26885
|
* Filter by platform
|
|
26886
26886
|
*/
|
|
26887
|
-
platform?: 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'tiktok' | 'youtube' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'shopify' | 'wordpress' | 'wix' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads' | 'redditads' | 'whopads' | 'hubspot' | 'webflow' | 'googleanalytics';
|
|
26887
|
+
platform?: 'facebook' | 'instagram' | 'linkedin' | 'twitter' | 'tiktok' | 'youtube' | 'threads' | 'pinterest' | 'reddit' | 'bluesky' | 'googlebusiness' | 'telegram' | 'snapchat' | 'discord' | 'slack' | 'whatsapp' | 'shopify' | 'wordpress' | 'wix' | 'linkedinads' | 'metaads' | 'pinterestads' | 'tiktokads' | 'xads' | 'googleads' | 'openaiads' | 'redditads' | 'microsoftads' | 'whopads' | 'hubspot' | 'webflow' | 'googleanalytics';
|
|
26888
26888
|
/**
|
|
26889
26889
|
* Filter by profile ID
|
|
26890
26890
|
*/
|
|
@@ -28021,12 +28021,13 @@ export type GetConnectUrlData = {
|
|
|
28021
28021
|
* - TikTok Ads (platform=tiktokads): `tiktok_ads_auth_failed`, `tiktok_ads_invalid_state`, `tiktok_ads_access_denied`, `tiktok_ads_config_error`, `tiktok_ads_token_failed`, `tiktok_ads_account_not_found`, `tiktok_ads_callback_error`.
|
|
28022
28022
|
* - X Ads (platform=xads): `x_ads_denied`, `x_ads_auth_failed`, `x_ads_config_error`, `x_ads_account_not_found`, `x_ads_state_error`, `x_ads_token_failed`, `x_ads_token_missing`, `x_ads_callback_error`.
|
|
28023
28023
|
* - Reddit Ads (platform=redditads): `reddit_ads_auth_failed`, `reddit_ads_invalid_state`, `reddit_ads_access_denied`, `reddit_ads_scope_not_granted`, `reddit_ads_no_ad_accounts`, `reddit_ads_callback_error`.
|
|
28024
|
+
* - Microsoft Ads (platform=microsoftads): `microsoft_ads_auth_failed`, `microsoft_ads_invalid_state`, `microsoft_ads_access_denied`, `microsoft_ads_scope_not_granted`, `microsoft_ads_unknown_user`, `microsoft_ads_no_ad_accounts`, `microsoft_ads_callback_error`.
|
|
28024
28025
|
* - Shopify (platform=shopify): `shopify_auth_failed`, `shopify_config_error`, `shopify_invalid_state`, `shopify_invalid_hmac`, `shopify_invalid_shop`, `shopify_missing_scopes`, `shopify_callback_error`.
|
|
28025
28026
|
*
|
|
28026
28027
|
* Notes:
|
|
28027
28028
|
*
|
|
28028
28029
|
* 1. On this endpoint every upstream OAuth error collapses into `oauth_denied`, with the provider's values in the `platform_error*` params. The dedicated ads flows differ: they use their own denial slugs, and `google_ads_auth_failed` and `tiktok_ads_auth_failed` may carry the provider's raw error string in `error_message`.
|
|
28029
|
-
* 2. On the tiktok and twitter ads flows `platform` carries the ads platform id (`tiktokads`, `xads`), not the value in the request path. The googleads, redditads and shopify flows report `googleads`, `redditads` and `shopify`.
|
|
28030
|
+
* 2. On the tiktok and twitter ads flows `platform` carries the ads platform id (`tiktokads`, `xads`), not the value in the request path. The googleads, redditads, microsoftads and shopify flows report `googleads`, `redditads`, `microsoftads` and `shopify`.
|
|
28030
28031
|
* 3. `missing_tiktok_permissions`: the TikTok authorization left out a permission the already-connected account needs, so nothing changed and it keeps working as before. User-fixable: connect again and accept every permission on TikTok's screen.
|
|
28031
28032
|
* 4. `instagram_login_method_mismatch`: an Instagram Login authorization landed on a profile whose Instagram account is connected through Facebook Login, so nothing changed. To refresh it, connect again with `loginMethod=facebook_login`. To move it to Instagram Login, disconnect it first.
|
|
28032
28033
|
*
|
|
@@ -28301,7 +28302,7 @@ export type ConnectAdsData = {
|
|
|
28301
28302
|
* instagram_login flow no ads account can be created; do not use this value for those accounts.
|
|
28302
28303
|
*
|
|
28303
28304
|
*/
|
|
28304
|
-
platform: 'facebook' | 'instagram' | 'linkedin' | 'tiktok' | 'twitter' | 'pinterest' | 'googleads' | 'redditads';
|
|
28305
|
+
platform: 'facebook' | 'instagram' | 'linkedin' | 'tiktok' | 'twitter' | 'pinterest' | 'googleads' | 'redditads' | 'microsoftads';
|
|
28305
28306
|
};
|
|
28306
28307
|
query: {
|
|
28307
28308
|
/**
|
|
@@ -28310,7 +28311,7 @@ export type ConnectAdsData = {
|
|
|
28310
28311
|
* - `twitter` (X Ads): required.
|
|
28311
28312
|
* - `tiktok`: optional. Omit it for ads-only mode (no TikTok posting account linked; ad creation uses a Brand Identity instead of a TT_USER).
|
|
28312
28313
|
* - Same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`): picks which posting account the ads connection uses when the profile holds several of that platform. With one, it can be omitted.
|
|
28313
|
-
* - Standalone platforms (`googleads`, `redditads`): ignored.
|
|
28314
|
+
* - Standalone platforms (`googleads`, `redditads`, `microsoftads`): ignored.
|
|
28314
28315
|
*
|
|
28315
28316
|
* On same-token platforms, an id that names no active account of the platform on the profile is ignored. Exception: with `force=true`, when it names the posting account the profile's ads connection hangs off, that account is no longer connected.
|
|
28316
28317
|
*
|
|
@@ -28327,6 +28328,7 @@ export type ConnectAdsData = {
|
|
|
28327
28328
|
* - `linkedin`: bare numeric sponsored-account id.
|
|
28328
28329
|
* - `googleads`: bare customer id digits.
|
|
28329
28330
|
* - `redditads`: Reddit ad account id, `a2_<id>` or `t2_<id>`.
|
|
28331
|
+
* - `microsoftads`: bare numeric account id (the Id, not the account number).
|
|
28330
28332
|
* - `twitter` (X Ads): base36 account id.
|
|
28331
28333
|
*
|
|
28332
28334
|
* `tiktok` scopes advertisers at OAuth and `pinterest` has no ads discovery, so both ignore it.
|
|
@@ -28341,7 +28343,7 @@ export type ConnectAdsData = {
|
|
|
28341
28343
|
*
|
|
28342
28344
|
* **Through OAuth**: on Meta the scope is kept when this call returns an `authUrl`, so the Meta Ads account created after OAuth is scoped (only its scoped ad accounts synced and subscribed) from the start.
|
|
28343
28345
|
*
|
|
28344
|
-
* On `googleads` and `
|
|
28346
|
+
* On `googleads`, `redditads` and `microsoftads` it is kept through OAuth when `redirect_url` is set, so the new connection syncs only scoped ad accounts from the first sync.
|
|
28345
28347
|
*
|
|
28346
28348
|
* **Reconnects**: business-login reconnects preserve the existing scope; supplied IDs are checked against the new grant. To change the scope after migration, call this endpoint with the IDs and omit loginMode.
|
|
28347
28349
|
*
|
|
@@ -28375,6 +28377,10 @@ export type ConnectAdsData = {
|
|
|
28375
28377
|
* Enable headless mode (same-token platforms only)
|
|
28376
28378
|
*/
|
|
28377
28379
|
headless?: boolean;
|
|
28380
|
+
/**
|
|
28381
|
+
* Microsoft Ads only. How the user signs in to Microsoft Advertising: `google` for a Microsoft Advertising login that is a Google account. `google` on any other platform returns 400 `invalid_field_value`.
|
|
28382
|
+
*/
|
|
28383
|
+
identityProvider?: 'microsoft' | 'google';
|
|
28378
28384
|
/**
|
|
28379
28385
|
* Meta ads authorization mode. Business login is opt-in for Facebook and Instagram; classic preserves the posting-account flow.
|
|
28380
28386
|
*/
|
|
@@ -28406,19 +28412,19 @@ export type ConnectAdsData = {
|
|
|
28406
28412
|
*/
|
|
28407
28413
|
profileId: string;
|
|
28408
28414
|
/**
|
|
28409
|
-
* Custom URL the browser is sent to once the OAuth flow finishes. When omitted, the browser lands on the Zernio dashboard. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`, `redditads`) flows.
|
|
28415
|
+
* Custom URL the browser is sent to once the OAuth flow finishes. When omitted, the browser lands on the Zernio dashboard. Honored on every ads platform, including the separate-token (`tiktok`, `twitter`) and standalone (`googleads`, `redditads`, `microsoftads`) flows.
|
|
28410
28416
|
*
|
|
28411
28417
|
* MUST be an absolute http(s) URL or a custom app scheme for mobile deeplinks (e.g. myapp://callback). A relative path is rejected with 400 INVALID_REDIRECT_URL.
|
|
28412
28418
|
*
|
|
28413
28419
|
* On success:
|
|
28414
28420
|
*
|
|
28415
28421
|
* - `tiktok`: lands on the URL unchanged.
|
|
28416
|
-
* - `twitter`, `googleads` and `
|
|
28422
|
+
* - `twitter`, `googleads`, `redditads` and `microsoftads`: append `connected` (the ads platform id: `xads`, `googleads`, `redditads` or `microsoftads`), `profileId`, `accountId` (the ads connection) and `username`.
|
|
28417
28423
|
* - Same-token platforms (`facebook`, `instagram`, `linkedin`, `pinterest`): append `connected`, `profileId`, `accountId`, `username` and, on API-key calls, `connect_token`.
|
|
28418
28424
|
*
|
|
28419
28425
|
* On failure the same error contract applies as on GET /v1/connect/{platform}: `error` and `platform` are always appended, other params are optional, and the value list there is not exhaustive.
|
|
28420
28426
|
*
|
|
28421
|
-
* On the tiktok, twitter, googleads and
|
|
28427
|
+
* On the tiktok, twitter, googleads, redditads and microsoftads flows, `platform` carries the ads platform id (`tiktokads`, `xads`, `googleads`, `redditads`, `microsoftads`), not the value used in the request path.
|
|
28422
28428
|
*
|
|
28423
28429
|
*/
|
|
28424
28430
|
redirect_url?: string;
|
|
@@ -49860,7 +49866,7 @@ export type ListAdsData = {
|
|
|
49860
49866
|
* Meta only: Facebook Page ID. Returns only ads whose creative is backed by this Page (a Meta ad account serves ads for every Page in the Business Manager). Matches each ad's `creative.pageId`; ads with no page signal (rare IG-only creatives) never match. Mirrors the same filter on /v1/ads/campaigns and /v1/ads/tree.
|
|
49861
49867
|
*/
|
|
49862
49868
|
pageId?: string;
|
|
49863
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
49869
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
49864
49870
|
/**
|
|
49865
49871
|
* Meta ad ID. Returns the ad with this platform-side ad ID.
|
|
49866
49872
|
*/
|
|
@@ -50978,7 +50984,7 @@ export type ListAdCampaignsData = {
|
|
|
50978
50984
|
* Meta only: Facebook Page ID. Campaigns have no Page of their own, so this keeps campaigns having at least one ad backed by this Page, with adCount and metrics computed over those ads only. Mirrors the same filter on /v1/ads and /v1/ads/tree.
|
|
50979
50985
|
*/
|
|
50980
50986
|
pageId?: string;
|
|
50981
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
50987
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
50982
50988
|
/**
|
|
50983
50989
|
* Profile ID
|
|
50984
50990
|
*/
|
|
@@ -51139,7 +51145,7 @@ export type CreateAdCampaignError = (unknown | ErrorResponse);
|
|
|
51139
51145
|
export type UpdateAdCampaignStatusData = {
|
|
51140
51146
|
body: {
|
|
51141
51147
|
status: 'active' | 'paused';
|
|
51142
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
51148
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
51143
51149
|
};
|
|
51144
51150
|
path: {
|
|
51145
51151
|
/**
|
|
@@ -51373,7 +51379,7 @@ export type UpdateAdCampaignData = {
|
|
|
51373
51379
|
/**
|
|
51374
51380
|
* Required: platform campaign IDs are not globally unique.
|
|
51375
51381
|
*/
|
|
51376
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
51382
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
51377
51383
|
/**
|
|
51378
51384
|
* **Meta only.** Zernio SocialAccount id owning the ad account. Needed only for an EMPTY campaign (zero ads); ignored otherwise.
|
|
51379
51385
|
*/
|
|
@@ -51485,7 +51491,7 @@ export type UpdateAdCampaignError = (unknown | ErrorResponse);
|
|
|
51485
51491
|
|
|
51486
51492
|
export type DeleteAdCampaignData = {
|
|
51487
51493
|
body: {
|
|
51488
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
51494
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
51489
51495
|
/**
|
|
51490
51496
|
* Zernio SocialAccount id owning the ad account. Required only to delete an EMPTY campaign (zero ads), which has no local Ad documents to resolve a token from.
|
|
51491
51497
|
*/
|
|
@@ -51594,7 +51600,7 @@ export type BulkUpdateAdCampaignStatusData = {
|
|
|
51594
51600
|
/**
|
|
51595
51601
|
* The ad platform, e.g. `google` for Google Ads. The ads connection slug (`googleads`, `tiktokads`, ...) is accepted as an alias. `metaads` is not: send `facebook` or `instagram`.
|
|
51596
51602
|
*/
|
|
51597
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'googleads' | 'tiktokads' | 'linkedinads' | 'pinterestads' | 'xads' | 'openaiads' | 'redditads';
|
|
51603
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft' | 'googleads' | 'tiktokads' | 'linkedinads' | 'pinterestads' | 'xads' | 'openaiads' | 'redditads' | 'microsoftads';
|
|
51598
51604
|
}>;
|
|
51599
51605
|
};
|
|
51600
51606
|
};
|
|
@@ -52805,7 +52811,7 @@ export type GetAdSetTargetingError = (ErrorResponse | unknown);
|
|
|
52805
52811
|
export type UpdateAdSetStatusData = {
|
|
52806
52812
|
body: {
|
|
52807
52813
|
status: 'active' | 'paused';
|
|
52808
|
-
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
52814
|
+
platform: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
52809
52815
|
};
|
|
52810
52816
|
path: {
|
|
52811
52817
|
/**
|
|
@@ -52913,7 +52919,7 @@ export type GetAdTreeData = {
|
|
|
52913
52919
|
* Meta only: Facebook Page ID. Prunes the tree to ads whose creative is backed by this Page: campaigns and ad sets with no ad on the Page drop out, and rolled-up metrics cover only the Page's ads. Mirrors the same filter on /v1/ads and /v1/ads/campaigns.
|
|
52914
52920
|
*/
|
|
52915
52921
|
pageId?: string;
|
|
52916
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
52922
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
52917
52923
|
/**
|
|
52918
52924
|
* Profile ID
|
|
52919
52925
|
*/
|
|
@@ -52995,7 +53001,7 @@ export type GetAdsTimelineData = {
|
|
|
52995
53001
|
/**
|
|
52996
53002
|
* Restrict to one platform.
|
|
52997
53003
|
*/
|
|
52998
|
-
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit';
|
|
53004
|
+
platform?: 'facebook' | 'instagram' | 'tiktok' | 'linkedin' | 'pinterest' | 'google' | 'twitter' | 'openai' | 'reddit' | 'microsoft';
|
|
52999
53005
|
/**
|
|
53000
53006
|
* Inclusive end of metrics range (YYYY-MM-DD). Defaults to today. Max 730-day range.
|
|
53001
53007
|
*/
|