@getlatedev/node 0.2.1158 → 0.2.1159

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.
@@ -1727,7 +1727,9 @@ export const handleOAuthCallback = <ThrowOnError extends boolean = false>(option
1727
1727
 
1728
1728
  /**
1729
1729
  * Connect ads for a platform
1730
- * Unified ads connection endpoint. Creates a dedicated ads SocialAccount for the specified platform.
1730
+ * Starts connecting a platform's ads account, giving you a dedicated ads connection to manage campaigns without touching posting accounts.
1731
+ *
1732
+ * Creates a dedicated ads SocialAccount for the specified platform.
1731
1733
  *
1732
1734
  * **Meta business login (opt-in).** Set `loginMode=business` for `facebook` or
1733
1735
  * `instagram` to use Facebook Login for Business and a Business Integration System User
@@ -1827,7 +1829,10 @@ export const connectAds = <ThrowOnError extends boolean = false>(options: Option
1827
1829
 
1828
1830
  /**
1829
1831
  * Complete Meta business login
1832
+ * Finishes a Meta business login after the user approves access, connects the Meta ads account and sends them back to your app.
1833
+ *
1830
1834
  * Facebook Login for Business redirect target. Meta supplies the single-use authorization code and the authenticated state returned by connectAds. The state expires after 30 minutes and binds the user, profile, Page selection and ad-account scope. No bearer token is sent by the browser. Success reconnects only metaads and redirects to the original redirect_url. Invalid state returns 400; inaccessible profiles or missing ads access cannot connect. Dashboard logins with several Pages redirect to the Facebook Page picker with an encrypted selectionToken valid for ten minutes. Listing and selecting require the initiating user and current profile access. No plaintext platform token is returned to the browser.
1835
+ *
1831
1836
  */
1832
1837
  export const completeMetaAdsBusinessLogin = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CompleteMetaAdsBusinessLoginData, ThrowOnError>) => {
1833
1838
  return (options?.client ?? client).get<void, unknown, ThrowOnError>({
@@ -1956,7 +1961,10 @@ export const configureTikTokAdsBrandIdentity = <ThrowOnError extends boolean = f
1956
1961
 
1957
1962
  /**
1958
1963
  * List Facebook pages
1959
- * Returns Facebook Pages after OAuth. Classic connections require profileId and tempToken from the OAuth redirect. Use X-Connect-Token for headless connections. The dashboard business-login picker instead sends only selectionToken, an encrypted grant valid for ten minutes. This requires the initiating user and current profile access and returns only Page IDs and names. X-Connect-Token cannot authorize business selection.
1964
+ * Lists the Facebook Pages a user can pick from after signing in, so they can choose which Page to connect.
1965
+ *
1966
+ * Classic connections require profileId and tempToken from the OAuth redirect. Use X-Connect-Token for headless connections. The dashboard business-login picker instead sends only selectionToken, an encrypted grant valid for ten minutes. This requires the initiating user and current profile access and returns only Page IDs and names. X-Connect-Token cannot authorize business selection.
1967
+ *
1960
1968
  */
1961
1969
  export const listFacebookPages = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<ListFacebookPagesData, ThrowOnError>) => {
1962
1970
  return (options?.client ?? client).get<ListFacebookPagesResponse, ListFacebookPagesError, ThrowOnError>({
@@ -1967,7 +1975,10 @@ export const listFacebookPages = <ThrowOnError extends boolean = false>(options?
1967
1975
 
1968
1976
  /**
1969
1977
  * Select Facebook page
1978
+ * Connects the Facebook Page the user picked after signing in, completing the Facebook or Meta Ads connection.
1979
+ *
1970
1980
  * Complete a classic Facebook Page connection with profileId, pageId, tempToken and userProfile. Use X-Connect-Token for headless connections. The dashboard business-login picker instead sends only selectionToken and pageId to complete a Meta Ads connection. The server verifies the initiating user, profile access, current grants and connection eligibility. The profile, platform token, ad-account scope and return URL come only from the encrypted grant. Business selection requires a session or bearer authentication for the initiating user; X-Connect-Token is not accepted. It returns redirect_url with connected=metaads on success or an eligibility error redirect.
1981
+ *
1971
1982
  */
1972
1983
  export const selectFacebookPage = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SelectFacebookPageData, ThrowOnError>) => {
1973
1984
  return (options?.client ?? client).post<SelectFacebookPageResponse, SelectFacebookPageError, ThrowOnError>({
@@ -9468,6 +9479,8 @@ export const listCommentAutomationLogs = <ThrowOnError extends boolean = false>(
9468
9479
 
9469
9480
  /**
9470
9481
  * List ads
9482
+ * Lists your ads with their performance over a date range, including ads created directly in each platform's ads manager.
9483
+ *
9471
9484
  * Returns a paginated list of ads with metrics computed over an optional date range.
9472
9485
  * Use source=all to include externally-synced ads from platform ad managers.
9473
9486
  * If no date range is provided, defaults to the last 90 days. Date range is capped at 730 days max.
@@ -9488,6 +9501,8 @@ export const listAds = <ThrowOnError extends boolean = false>(options?: OptionsL
9488
9501
 
9489
9502
  /**
9490
9503
  * Google Ads search terms report
9504
+ * Shows the actual Google searches that triggered your ads, with spend and results, so you can spot wasted spend and add negative keywords.
9505
+ *
9491
9506
  * The actual search queries that triggered your ads, with matched-keyword
9492
9507
  * status and spend metrics, the raw material for wasted-spend analysis and
9493
9508
  * negative-keyword lists. Reads Google's `search_term_view`, cached for
@@ -9505,7 +9520,10 @@ export const getAdsSearchTerms = <ThrowOnError extends boolean = false>(options:
9505
9520
 
9506
9521
  /**
9507
9522
  * List Google Ads recommendations
9523
+ * Lists Google's optimization suggestions for an ad account, with the estimated impact of each.
9524
+ *
9508
9525
  * Google's optimization recommendations for one ad account: type, estimated impact (base vs potential metrics, cost in account currency units), the campaign, ad group or budget they target, and the type-specific payload Google returns (`details`, in Google's own shape with micros). Filter by campaignId and types. Cached for 10 minutes and cleared by apply or dismiss; served stale when Google quota is exhausted.
9526
+ *
9509
9527
  */
9510
9528
  export const listGoogleRecommendations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListGoogleRecommendationsData, ThrowOnError>) => {
9511
9529
  return (options?.client ?? client).get<ListGoogleRecommendationsResponse, ListGoogleRecommendationsError, ThrowOnError>({
@@ -9516,7 +9534,10 @@ export const listGoogleRecommendations = <ThrowOnError extends boolean = false>(
9516
9534
 
9517
9535
  /**
9518
9536
  * Apply Google Ads recommendations
9537
+ * Applies Google's optimization suggestions to an ad account, using Google's values or your own; the changes cannot be undone.
9538
+ *
9519
9539
  * Apply up to 100 recommendations. This changes the account (budgets, bidding, keywords, assets) and is not reversible or idempotent; Google offers no validate-only mode for it. Items run in partial-failure mode, so one stale recommendation does not block the rest. `parameters` is optional and takes exactly one key named for the recommendation type, in Google's ApplyRecommendationOperation shape (for example `campaignBudget: { newBudgetAmountMicros }` or `keyword: { matchType, cpcBidMicros }`); omit it to apply Google's suggested values.
9540
+ *
9520
9541
  */
9521
9542
  export const applyGoogleRecommendations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ApplyGoogleRecommendationsData, ThrowOnError>) => {
9522
9543
  return (options?.client ?? client).post<ApplyGoogleRecommendationsResponse, ApplyGoogleRecommendationsError, ThrowOnError>({
@@ -9527,7 +9548,10 @@ export const applyGoogleRecommendations = <ThrowOnError extends boolean = false>
9527
9548
 
9528
9549
  /**
9529
9550
  * Dismiss Google Ads recommendations
9551
+ * Dismisses Google optimization suggestions so Google stops showing them.
9552
+ *
9530
9553
  * Dismiss up to 100 recommendations so Google stops suggesting them. Items run in partial-failure mode.
9554
+ *
9531
9555
  */
9532
9556
  export const dismissGoogleRecommendations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DismissGoogleRecommendationsData, ThrowOnError>) => {
9533
9557
  return (options?.client ?? client).post<DismissGoogleRecommendationsResponse, DismissGoogleRecommendationsError, ThrowOnError>({
@@ -9538,6 +9562,8 @@ export const dismissGoogleRecommendations = <ThrowOnError extends boolean = fals
9538
9562
 
9539
9563
  /**
9540
9564
  * List portfolio bid strategies
9565
+ * Lists a Google Ads account's shared bid strategies with how many campaigns use each and how they performed.
9566
+ *
9541
9567
  * Bidding strategy report: type, status, campaign count, clicks, cost, cost per conversion, impressions, average CPC and conversions over the date range (default last 30 days). Reads Google's `bidding_strategy` resource, cached for the quota window. Draws on the shared Google Ads operations budget. The response carries `cachedAt` and `stale`, set when a quota-exhausted call falls back to the last-good copy instead of a live read.
9542
9568
  */
9543
9569
  export const listBidStrategies = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListBidStrategiesData, ThrowOnError>) => {
@@ -9549,7 +9575,10 @@ export const listBidStrategies = <ThrowOnError extends boolean = false>(options:
9549
9575
 
9550
9576
  /**
9551
9577
  * Create portfolio bid strategy
9552
- * Creates a standalone bid strategy shared across campaigns. Attach it to a campaign with `portfolioBidStrategyId` on POST /v1/ads/create, PUT /v1/ads/campaigns/{campaignId}, or PUT /v1/ads/ad-sets/{adSetId}. Attaching a strategy aligned to a shared budget fails there with a 400 (Google's `BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED`); this is not retryable.
9578
+ * Creates a Google Ads bid strategy that several campaigns can share, such as one target CPA or ROAS.
9579
+ *
9580
+ * Attach it to a campaign with `portfolioBidStrategyId` on POST /v1/ads/create, PUT /v1/ads/campaigns/{campaignId}, or PUT /v1/ads/ad-sets/{adSetId}. Attaching a strategy aligned to a shared budget fails there with a 400 (Google's `BIDDING_STRATEGY_AND_BUDGET_MUST_BE_ALIGNED`); this is not retryable.
9581
+ *
9553
9582
  */
9554
9583
  export const createBidStrategy = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateBidStrategyData, ThrowOnError>) => {
9555
9584
  return (options?.client ?? client).post<CreateBidStrategyResponse, CreateBidStrategyError, ThrowOnError>({
@@ -9560,7 +9589,10 @@ export const createBidStrategy = <ThrowOnError extends boolean = false>(options:
9560
9589
 
9561
9590
  /**
9562
9591
  * Update portfolio bid strategy
9563
- * Renames or retargets a portfolio bid strategy. The strategy's status is output only on Google's side, so it cannot be changed here; remove a strategy in Google Ads. `type` is only needed alongside `targetCpa`/`targetRoas` to disambiguate the field Google writes to (TARGET_CPA and MAXIMIZE_CONVERSIONS both take a target CPA; TARGET_ROAS and MAXIMIZE_CONVERSION_VALUE both take a target ROAS); the strategy's family is otherwise immutable once created.
9592
+ * Renames a shared Google Ads bid strategy or changes its target CPA or ROAS.
9593
+ *
9594
+ * The strategy's status is output only on Google's side, so it cannot be changed here; remove a strategy in Google Ads. `type` is only needed alongside `targetCpa`/`targetRoas` to disambiguate the field Google writes to (TARGET_CPA and MAXIMIZE_CONVERSIONS both take a target CPA; TARGET_ROAS and MAXIMIZE_CONVERSION_VALUE both take a target ROAS); the strategy's family is otherwise immutable once created.
9595
+ *
9564
9596
  */
9565
9597
  export const updateBidStrategy = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateBidStrategyData, ThrowOnError>) => {
9566
9598
  return (options?.client ?? client).patch<UpdateBidStrategyResponse, UpdateBidStrategyError, ThrowOnError>({
@@ -9571,6 +9603,8 @@ export const updateBidStrategy = <ThrowOnError extends boolean = false>(options:
9571
9603
 
9572
9604
  /**
9573
9605
  * List shared budgets
9606
+ * Lists a Google Ads account's shared budgets and how many campaigns draw from each.
9607
+ *
9574
9608
  * Lists the Google Ads customer's shared campaign budgets (`campaign_budget.explicitly_shared`
9575
9609
  * = true, not removed), with how many campaigns use each. Move a campaign onto one with
9576
9610
  * `sharedBudgetId` on PUT /v1/ads/campaigns/{campaignId}. Google only; other platforms return 501.
@@ -9585,6 +9619,8 @@ export const listSharedBudgets = <ThrowOnError extends boolean = false>(options:
9585
9619
 
9586
9620
  /**
9587
9621
  * Create a shared budget
9622
+ * Creates a daily Google Ads budget that several campaigns can share.
9623
+ *
9588
9624
  * Creates a daily shared campaign budget (`explicitly_shared: true`, standard delivery) that
9589
9625
  * several campaigns can draw from. A lifetime budget returns 422, like every Google budget.
9590
9626
  * Google refuses some bidding strategies on a shared budget; that error surfaces when a
@@ -9600,6 +9636,8 @@ export const createSharedBudget = <ThrowOnError extends boolean = false>(options
9600
9636
 
9601
9637
  /**
9602
9638
  * Google Local Services Ads leads
9639
+ * Lists the calls, messages and bookings your Google Local Services Ads generated, newest first.
9640
+ *
9603
9641
  * Leads generated by Local Services Ads (phone calls, messages, bookings),
9604
9642
  * read live from Google's `local_services_lead` resource, newest first.
9605
9643
  * No persistence: Google is the source of truth and lead/credit statuses
@@ -9616,6 +9654,8 @@ export const listLocalServicesLeads = <ThrowOnError extends boolean = false>(opt
9616
9654
 
9617
9655
  /**
9618
9656
  * List lead conversations
9657
+ * Shows the calls (with recordings) and messages exchanged with one Google Local Services lead, oldest first.
9658
+ *
9619
9659
  * Conversation entries of one Local Services lead: phone calls (duration,
9620
9660
  * recording URL) and messages (text, attachment URLs), oldest first. Read
9621
9661
  * live from `local_services_lead_conversation`, always scoped to a single
@@ -9631,6 +9671,8 @@ export const listLocalServicesLeadConversations = <ThrowOnError extends boolean
9631
9671
 
9632
9672
  /**
9633
9673
  * List Search keywords
9674
+ * Lists the keywords and negative keywords in your Google Search ad groups.
9675
+ *
9634
9676
  * Returns the Google Search keyword criteria (positive and negative) synced from
9635
9677
  * connected Google Ads accounts, one row per ad-group keyword. Refreshed about
9636
9678
  * once a day per Google Ads customer (the keyword sweep rides the ads discovery
@@ -9651,6 +9693,8 @@ export const listAdKeywords = <ThrowOnError extends boolean = false>(options?: O
9651
9693
 
9652
9694
  /**
9653
9695
  * Add Search ad-group keywords
9696
+ * Adds keywords, or negative keywords, to a Google Search ad group without replacing the ones already there.
9697
+ *
9654
9698
  * Adds one or more keyword criteria to an existing Google Search ad group,
9655
9699
  * without touching the keywords already there (unlike the whole-set diff on
9656
9700
  * `PUT /v1/ads/{adId}`, `keywords`/`negativeKeywords` in `platformSpecificData`,
@@ -9667,6 +9711,8 @@ export const addAdKeywords = <ThrowOnError extends boolean = false>(options: Opt
9667
9711
 
9668
9712
  /**
9669
9713
  * Pause or enable a Search keyword
9714
+ * Pauses or re-enables a single Google Search keyword.
9715
+ *
9670
9716
  * Changes `ad_group_criterion.status` for one keyword criterion (M.140).
9671
9717
  * Negative keywords have no status on Google and cannot be paused or enabled.
9672
9718
  *
@@ -9680,7 +9726,10 @@ export const updateAdKeyword = <ThrowOnError extends boolean = false>(options: O
9680
9726
 
9681
9727
  /**
9682
9728
  * Remove a Search keyword
9729
+ * Removes a single keyword or negative keyword from a Google Search ad group.
9730
+ *
9683
9731
  * Removes one keyword criterion (positive or negative) from its ad group (M.140).
9732
+ *
9684
9733
  */
9685
9734
  export const removeAdKeyword = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAdKeywordData, ThrowOnError>) => {
9686
9735
  return (options?.client ?? client).delete<RemoveAdKeywordResponse, RemoveAdKeywordError, ThrowOnError>({
@@ -9691,6 +9740,8 @@ export const removeAdKeyword = <ThrowOnError extends boolean = false>(options: O
9691
9740
 
9692
9741
  /**
9693
9742
  * List campaigns
9743
+ * Lists your campaigns with spend, impressions and clicks summed across their ads, plus each campaign's status and budget.
9744
+ *
9694
9745
  * Returns campaigns as virtual aggregations over ad documents grouped by platform campaign ID.
9695
9746
  * Metrics (spend, impressions, clicks, etc.) are summed across all ads in each campaign.
9696
9747
  * Campaign status is derived from child ad statuses (active > pending_review > paused > error > completed > cancelled > rejected).
@@ -9723,6 +9774,8 @@ export const listAdCampaigns = <ThrowOnError extends boolean = false>(options?:
9723
9774
 
9724
9775
  /**
9725
9776
  * Create a standalone campaign
9777
+ * Creates an empty campaign, paused, so you can add ad sets and ads to it afterwards.
9778
+ *
9726
9779
  * Creates a campaign WITHOUT its first ad set / ad, on the platform of the given
9727
9780
  * `accountId`. Ad sets join it later via `existingCampaignId` on the create endpoints.
9728
9781
  * Platform notes: on Meta a budget here is campaign-level (CBO) by definition; omit it
@@ -9747,6 +9800,8 @@ export const createAdCampaign = <ThrowOnError extends boolean = false>(options:
9747
9800
 
9748
9801
  /**
9749
9802
  * Pause or resume a campaign
9803
+ * Pauses or resumes a campaign, leaving the on/off switches of its ad sets and ads as they are.
9804
+ *
9750
9805
  * Writes the campaign's own on/off switch and nothing else, on every platform (Meta, TikTok,
9751
9806
  * Google, LinkedIn campaign group, Pinterest, X, ChatGPT (OpenAI)). Its ad sets and ads keep
9752
9807
  * their own switches: pausing stops their delivery through the campaign, and resuming lets
@@ -9773,6 +9828,8 @@ export const updateAdCampaignStatus = <ThrowOnError extends boolean = false>(opt
9773
9828
 
9774
9829
  /**
9775
9830
  * Read a campaign's ad schedule (dayparting)
9831
+ * Shows the days and hours a Google campaign runs and its bid adjustments, optionally with performance by day and hour.
9832
+ *
9776
9833
  * The windows a Google campaign serves in, with the bid modifier on each, plus the
9777
9834
  * criterion ids Google minted for them.
9778
9835
  *
@@ -9797,7 +9854,9 @@ export const getCampaignAdSchedule = <ThrowOnError extends boolean = false>(opti
9797
9854
 
9798
9855
  /**
9799
9856
  * Replace a campaign's ad schedule (dayparting)
9800
- * Replaces the campaign's whole ad schedule with the windows you send. This is a
9857
+ * Replaces the days and hours a Google campaign runs, or clears them so it serves around the clock.
9858
+ *
9859
+ * This is a
9801
9860
  * REPLACE, not a merge: windows you leave out stop serving.
9802
9861
  *
9803
9862
  * Send `schedule: []` to clear dayparting, which returns the campaign to serving around
@@ -9826,6 +9885,8 @@ export const updateCampaignAdSchedule = <ThrowOnError extends boolean = false>(o
9826
9885
 
9827
9886
  /**
9828
9887
  * Read a campaign's current bidding
9888
+ * Shows a Google campaign's current bidding strategy and targets, ready to prefill an edit.
9889
+ *
9829
9890
  * Read of the campaign's bidding strategy on Google, cached for the quota window, for
9830
9891
  * pre-filling the bid strategy block before a PUT to /v1/ads/campaigns/{campaignId}.
9831
9892
  * Google Ads only; `platform` is required and rejected when it is anything else, since
@@ -9850,6 +9911,8 @@ export const getCampaignBidding = <ThrowOnError extends boolean = false>(options
9850
9911
 
9851
9912
  /**
9852
9913
  * Get live campaign details
9914
+ * Shows a Meta campaign's current settings straight from Meta, such as its objective, budget, bid strategy, schedule and delivery issues.
9915
+ *
9853
9916
  * Reads one campaign live from Meta, returned verbatim, so a caller that knows a
9854
9917
  * campaign id no longer has to page `GET /v1/ads/campaigns` to find it. The default
9855
9918
  * projection covers name, status, objective, buying type, bid strategy, budgets,
@@ -9866,7 +9929,9 @@ export const getAdCampaignDetails = <ThrowOnError extends boolean = false>(optio
9866
9929
 
9867
9930
  /**
9868
9931
  * Update a campaign
9869
- * Campaign-level edits. Send at least one of `budget`, `bidStrategy`,
9932
+ * Changes a campaign's settings, such as its name, budget, bidding or tracking URLs.
9933
+ *
9934
+ * Send at least one of `budget`, `bidStrategy`,
9870
9935
  * `portfolioBidStrategyId`, `targetImpressionShare`, `manualCpc`, `networkSettings`,
9871
9936
  * `trackingUrlTemplate`, `finalUrlSuffix`, `sharedBudgetId`, `name` or `platformSpecificData`. An unsupported
9872
9937
  * field is always an error, never a silent drop.
@@ -9936,8 +10001,9 @@ export const updateAdCampaign = <ThrowOnError extends boolean = false>(options:
9936
10001
 
9937
10002
  /**
9938
10003
  * Delete a campaign
9939
- * Deletes the whole campaign on the platform, cascading to its ad sets
9940
- * and ads. Locally, all Ad documents for this campaign are marked
10004
+ * Deletes a campaign along with all of its ad sets and ads, including a campaign that never got any ads.
10005
+ *
10006
+ * Locally, all Ad documents for this campaign are marked
9941
10007
  * `status: cancelled`.
9942
10008
  *
9943
10009
  * **Empty campaigns.** A campaign with zero ads has no local Ad documents
@@ -9958,6 +10024,8 @@ export const deleteAdCampaign = <ThrowOnError extends boolean = false>(options:
9958
10024
 
9959
10025
  /**
9960
10026
  * List campaign-level negative keywords
10027
+ * Lists the negative keywords set on a whole Google campaign, separate from ad group negatives.
10028
+ *
9961
10029
  * Returns the campaign-level negative keywords (`campaign_criterion.negative`),
9962
10030
  * distinct from the ad-group-level negatives under `GET /v1/ads/keywords`. Cached
9963
10031
  * for the quota window (not synced to Postgres), and gated by the shared Google
@@ -9978,6 +10046,8 @@ export const listCampaignNegativeKeywords = <ThrowOnError extends boolean = fals
9978
10046
 
9979
10047
  /**
9980
10048
  * Replace campaign-level negative keywords
10049
+ * Replaces a Google campaign's full list of campaign-level negative keywords, or clears it.
10050
+ *
9981
10051
  * Replaces the FULL set of campaign-level negative keywords (C.270): the desired
9982
10052
  * list is diffed against what Google already has, and the difference is applied
9983
10053
  * as one `create`/`remove` mutate. Send an empty array to clear every campaign
@@ -9996,7 +10066,9 @@ export const replaceCampaignNegativeKeywords = <ThrowOnError extends boolean = f
9996
10066
 
9997
10067
  /**
9998
10068
  * Pause or resume many campaigns
9999
- * Process up to 50 campaigns in one call. Each campaign is updated
10069
+ * Pauses or resumes up to 50 campaigns in one call, with a separate result per campaign so one failure does not block the rest.
10070
+ *
10071
+ * Each campaign is updated
10000
10072
  * concurrently and the response contains a per-campaign result so a
10001
10073
  * single bad row does not fail the whole batch. Each campaign is read,
10002
10074
  * written and re-read exactly as PUT /v1/ads/campaigns/{campaignId}/status
@@ -10013,6 +10085,8 @@ export const bulkUpdateAdCampaignStatus = <ThrowOnError extends boolean = false>
10013
10085
 
10014
10086
  /**
10015
10087
  * Duplicate a campaign
10088
+ * Copies a campaign with its ad sets, ads, creatives and targeting, created paused so you can review it before launch.
10089
+ *
10016
10090
  * Duplicates a campaign, including its ad sets, ads, creatives, and
10017
10091
  * targeting by default (`deepCopy: true`). The copy is created paused
10018
10092
  * so callers can review before launching.
@@ -10053,6 +10127,8 @@ export const duplicateAdCampaign = <ThrowOnError extends boolean = false>(option
10053
10127
 
10054
10128
  /**
10055
10129
  * Read a Google campaign's device, location, excluded location, and language targeting
10130
+ * Shows a Google campaign's device, location, excluded location and language targeting so you can build an editor for it.
10131
+ *
10056
10132
  * Google Ads compliance requires geo, language, budget, and bidding targeting
10057
10133
  * set at creation to stay editable afterwards; this reads the campaign state
10058
10134
  * so an integrator can build an editor around it. Cached for the quota window
@@ -10080,6 +10156,8 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
10080
10156
 
10081
10157
  /**
10082
10158
  * Edit a Google campaign's device, location, excluded location, or language targeting
10159
+ * Changes a Google campaign's device, location, excluded location or language targeting after it was created.
10160
+ *
10083
10161
  * Google Ads compliance row M.10: geo and language targeting set at
10084
10162
  * creation must stay editable afterwards. Send at least one of `devices`,
10085
10163
  * `locations`, `excludedLocations`, `languages`, `locationTargetingType`; each provided field REPLACES that field's
@@ -10141,6 +10219,8 @@ export const updateCampaignTargeting = <ThrowOnError extends boolean = false>(op
10141
10219
 
10142
10220
  /**
10143
10221
  * List ad sets
10222
+ * Lists ad sets (ad groups on Google) with their targeting, bidding and optimization settings, optionally for one campaign.
10223
+ *
10144
10224
  * Ad sets (Google ad groups) synced for the connection, optionally
10145
10225
  * filtered by platform and campaignId. Reads the `ad_sets` table
10146
10226
  * directly, independent of the `ads` rollup GET /v1/ads/tree uses, so a
@@ -10188,6 +10268,8 @@ export const listAdSets = <ThrowOnError extends boolean = false>(options?: Optio
10188
10268
 
10189
10269
  /**
10190
10270
  * Create a standalone ad group
10271
+ * Creates an empty Google ad group under an existing campaign, ready for ads to be added later.
10272
+ *
10191
10273
  * Google Ads compliance row C.190: creates an ad group WITHOUT an ad,
10192
10274
  * under an existing campaign. Ads join it later via `adSetId`
10193
10275
  * on POST /v1/ads/create. Google only; every other platform returns 501.
@@ -10208,7 +10290,9 @@ export const createAdSet = <ThrowOnError extends boolean = false>(options: Optio
10208
10290
 
10209
10291
  /**
10210
10292
  * Duplicate an ad set
10211
- * Duplicates an ad set. The copy is created paused so callers can review before launching.
10293
+ * Copies an ad set, optionally with its ads and into another campaign, created paused so you can review it before launch.
10294
+ *
10295
+ * The copy is created paused so callers can review before launching.
10212
10296
  * `campaignId` retargets the copy into another campaign; omitted = the source's own campaign.
10213
10297
  *
10214
10298
  * Meta: ads and creatives are included by default (`deepCopy: true`) via Meta's native
@@ -10219,6 +10303,7 @@ export const createAdSet = <ThrowOnError extends boolean = false>(options: Optio
10219
10303
  * budget and schedule (start reset to now); `deepCopy: true` recreates its ads too (default
10220
10304
  * false). `startTime`, `endTime` and `renameStrategy` are ignored and `statusOption` must be
10221
10305
  * PAUSED or absent. The copy appears on the next discovery sync.
10306
+ *
10222
10307
  */
10223
10308
  export const duplicateAdSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DuplicateAdSetData, ThrowOnError>) => {
10224
10309
  return (options?.client ?? client).post<DuplicateAdSetResponse, DuplicateAdSetError, ThrowOnError>({
@@ -10229,6 +10314,8 @@ export const duplicateAdSet = <ThrowOnError extends boolean = false>(options: Op
10229
10314
 
10230
10315
  /**
10231
10316
  * Duplicate an ad
10317
+ * Copies a single Meta ad, optionally into another ad set, created paused so you can review it before launch.
10318
+ *
10232
10319
  * Duplicates a single ad via Meta's native `POST /{ad-id}/copies`. The copy is created
10233
10320
  * paused. `adSetId` retargets the copy into another ad set; omitted = the source's own ad
10234
10321
  * set. Accepts the Zernio ad id or the platform ad id. Sync discovery is triggered
@@ -10249,6 +10336,8 @@ export const duplicateAd = <ThrowOnError extends boolean = false>(options: Optio
10249
10336
 
10250
10337
  /**
10251
10338
  * Get live ad-set details
10339
+ * Shows a Meta ad set's current settings straight from Meta, including its learning phase, budget, schedule and targeting.
10340
+ *
10252
10341
  * Reads the ad set live from Meta, returned verbatim. The default projection includes
10253
10342
  * `learning_stage_info` (learning-phase status: LEARNING / SUCCESS / FAIL / WAIVING; Meta
10254
10343
  * omits its `status` key on paused ad sets), delivery settings, budgets, schedule and
@@ -10264,7 +10353,9 @@ export const getAdSetDetails = <ThrowOnError extends boolean = false>(options: O
10264
10353
 
10265
10354
  /**
10266
10355
  * Update an ad set
10267
- * Ad-set-level writes. Use this for ABO budget updates, ad-set-scoped
10356
+ * Changes an ad set's settings, such as its budget, bid strategy, status or delivery options.
10357
+ *
10358
+ * Use this for ABO budget updates, ad-set-scoped
10268
10359
  * pause/resume, bid-strategy edits, Meta value-rule-set attach/detach, and
10269
10360
  * Meta-only post-launch delivery settings via `platformSpecificData`. At
10270
10361
  * least one updatable field is required.
@@ -10317,8 +10408,9 @@ export const updateAdSet = <ThrowOnError extends boolean = false>(options: Optio
10317
10408
 
10318
10409
  /**
10319
10410
  * Delete an ad set
10320
- * Deletes the ad set on the platform, cascading to its ads only (never the
10321
- * campaign). Locally, every Ad document under the ad set is marked
10411
+ * Deletes an ad set and its ads while keeping the campaign, archiving it instead on platforms without a hard delete.
10412
+ *
10413
+ * Locally, every Ad document under the ad set is marked
10322
10414
  * `status: cancelled`.
10323
10415
  *
10324
10416
  * Delete is soft on platforms that have no hard delete: LinkedIn moves the
@@ -10336,7 +10428,9 @@ export const deleteAdSet = <ThrowOnError extends boolean = false>(options: Optio
10336
10428
 
10337
10429
  /**
10338
10430
  * Pause or resume a single ad set
10339
- * Ad-set-scoped pause/resume (doesn't touch sibling ad sets). Thin wrapper
10431
+ * Pauses or resumes one ad set without touching its campaign, its sibling ad sets or the switches of its ads.
10432
+ *
10433
+ * Thin wrapper
10340
10434
  * over PUT /v1/ads/ad-sets/{adSetId} for callers that only want the
10341
10435
  * status toggle and prefer a symmetric URL to
10342
10436
  * /v1/ads/campaigns/{campaignId}/status.
@@ -10371,7 +10465,8 @@ export const updateAdSetStatus = <ThrowOnError extends boolean = false>(options:
10371
10465
 
10372
10466
  /**
10373
10467
  * Get campaign tree
10374
- * Returns a nested Campaign > Ad Set > Ad hierarchy with rolled-up metrics at each level.
10468
+ * Shows your campaigns with their ad sets and ads nested inside, with spend and results rolled up at every level.
10469
+ *
10375
10470
  * Uses a two-stage aggregation: ads are grouped into ad sets, then ad sets into campaigns.
10376
10471
  * Metrics are computed over an optional date range, then rolled up from ad level to ad set
10377
10472
  * and campaign levels. Pagination is at the campaign level. Ads without a campaign or ad set
@@ -10399,6 +10494,8 @@ export const getAdTree = <ThrowOnError extends boolean = false>(options?: Option
10399
10494
 
10400
10495
  /**
10401
10496
  * Get daily account metrics
10497
+ * Returns an ads account's spend, results and other metrics day by day, ready for a daily performance chart.
10498
+ *
10402
10499
  * Returns daily aggregate metrics across all ads in a SocialAccount as a single
10403
10500
  * time series, one row per calendar day in the requested range. Use this for
10404
10501
  * dashboards that draw a daily-spend or daily-conversions chart, instead of
@@ -10425,7 +10522,8 @@ export const getAdsTimeline = <ThrowOnError extends boolean = false>(options: Op
10425
10522
 
10426
10523
  /**
10427
10524
  * Get ad details
10428
- * Returns an ad with its creative, targeting, status, and performance metrics.
10525
+ * Shows one ad with its creative, targeting, status and performance metrics.
10526
+ *
10429
10527
  * Google Search ads include current creative.headlines, creative.descriptions and creative.finalUrls,
10430
10528
  * preserving pinnedField. Top-level cachedAt and stale report cache freshness. Google mutations invalidate this read.
10431
10529
  * RSA enrichment requires a stored advertisingChannelType of SEARCH. Ads with an unknown or other channel
@@ -10464,6 +10562,8 @@ export const getAd = <ThrowOnError extends boolean = false>(options: OptionsLega
10464
10562
 
10465
10563
  /**
10466
10564
  * Update ad
10565
+ * Changes an ad's status, budget, targeting or creative and applies the change on the platform.
10566
+ *
10467
10567
  * Patch one or more fields on an ad. Status, budget, targeting, and creative changes
10468
10568
  * are propagated to the platform.
10469
10569
  *
@@ -10566,6 +10666,8 @@ export const updateAd = <ThrowOnError extends boolean = false>(options: OptionsL
10566
10666
 
10567
10667
  /**
10568
10668
  * Cancel an ad
10669
+ * Deletes an ad on the platform while keeping its history, and removes empty parents only when they were created through this API.
10670
+ *
10569
10671
  * Deletes the ad on the platform and marks it as cancelled in the database. The ad is preserved for history. OpenAI Ads has no delete API; the ad is archived instead (a terminal state, the closest equivalent).
10570
10672
  *
10571
10673
  * Only the ad is deleted; a campaign or ad set is never deleted while it still holds another ad. On Meta, when the ad set and campaign were created by Zernio (by `POST /v1/ads/create` or `POST /v1/ads/boost`) and Meta lists no other ad in the ad set (archived ads count), the emptied ad set is deleted too, then the campaign once it holds no other ad set. Parents created outside Zernio, and the parents of an ad imported from the platform, are always kept. On LinkedIn the ad is a creative inside a campaign inside a campaign group: the creative is always removed, the campaign only when Zernio created it and LinkedIn lists no other creative in it that is not archived, canceled or deleted, and the campaign group only when Zernio created it and LinkedIn lists no other campaign in it that is not canceled or deleted (archived campaigns count). If the creative itself cannot be removed the request fails and no parent is touched. To delete a whole campaign on purpose use `DELETE /v1/ads/campaigns/{campaignId}`.
@@ -10580,6 +10682,8 @@ export const deleteAd = <ThrowOnError extends boolean = false>(options: OptionsL
10580
10682
 
10581
10683
  /**
10582
10684
  * Pause or resume a single ad
10685
+ * Pauses or resumes a single ad without touching its ad set, campaign or sibling ads.
10686
+ *
10583
10687
  * Ad-scoped pause/resume: flips ONLY this ad's own switch (Meta
10584
10688
  * `configured_status`, TikTok `operation_status`, Google ad group ad
10585
10689
  * status, LinkedIn creative, Pinterest ad), never its parent ad set or
@@ -10616,7 +10720,10 @@ export const updateAdStatus = <ThrowOnError extends boolean = false>(options: Op
10616
10720
 
10617
10721
  /**
10618
10722
  * List campaign assets
10619
- * Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
10723
+ * Lists the sitelinks, callouts and other assets attached directly to a Google campaign.
10724
+ *
10725
+ * Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
10726
+ *
10620
10727
  */
10621
10728
  export const listCampaignAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListCampaignAssetsData, ThrowOnError>) => {
10622
10729
  return (options?.client ?? client).get<ListCampaignAssetsResponse, ListCampaignAssetsError, ThrowOnError>({
@@ -10627,7 +10734,10 @@ export const listCampaignAssets = <ThrowOnError extends boolean = false>(options
10627
10734
 
10628
10735
  /**
10629
10736
  * Attach campaign assets
10737
+ * Adds sitelinks, callouts, structured snippets and images to a Google campaign in one step.
10738
+ *
10630
10739
  * Creates and attaches sitelinks, callouts, structured snippets and image assets in one Google mutation. Google shows images only on accounts it deems eligible (account age, policy history, vertical).
10740
+ *
10631
10741
  */
10632
10742
  export const attachCampaignAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AttachCampaignAssetsData, ThrowOnError>) => {
10633
10743
  return (options?.client ?? client).post<AttachCampaignAssetsResponse, AttachCampaignAssetsError, ThrowOnError>({
@@ -10638,7 +10748,10 @@ export const attachCampaignAssets = <ThrowOnError extends boolean = false>(optio
10638
10748
 
10639
10749
  /**
10640
10750
  * Update campaign assets
10641
- * Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
10751
+ * Edits a Google campaign's existing assets, such as sitelinks or callouts, in place; the change applies everywhere that asset is used.
10752
+ *
10753
+ * Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
10754
+ *
10642
10755
  */
10643
10756
  export const updateCampaignAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateCampaignAssetsData, ThrowOnError>) => {
10644
10757
  return (options?.client ?? client).put<UpdateCampaignAssetsResponse, UpdateCampaignAssetsError, ThrowOnError>({
@@ -10649,7 +10762,10 @@ export const updateCampaignAssets = <ThrowOnError extends boolean = false>(optio
10649
10762
 
10650
10763
  /**
10651
10764
  * Remove campaign assets
10652
- * Removes the specified attachments only. Google assets cannot be deleted. Other attachments remain. assetResourceNames is retained for compatibility. Fields go in the query string. A JSON body with the same fields is also accepted and, when sent, the query string is ignored.
10765
+ * Detaches assets from a Google campaign without deleting them, so they stay in the account and on anything else they are attached to.
10766
+ *
10767
+ * Google assets cannot be deleted. Other attachments remain. assetResourceNames is retained for compatibility. Fields go in the query string. A JSON body with the same fields is also accepted and, when sent, the query string is ignored.
10768
+ *
10653
10769
  */
10654
10770
  export const removeCampaignAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveCampaignAssetsData, ThrowOnError>) => {
10655
10771
  return (options?.client ?? client).delete<RemoveCampaignAssetsResponse, RemoveCampaignAssetsError, ThrowOnError>({
@@ -10660,7 +10776,10 @@ export const removeCampaignAssets = <ThrowOnError extends boolean = false>(optio
10660
10776
 
10661
10777
  /**
10662
10778
  * List ad-group assets
10663
- * Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
10779
+ * Lists the sitelinks, callouts, snippets and images attached directly to a Google ad group, not those inherited from the campaign or account.
10780
+ *
10781
+ * Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
10782
+ *
10664
10783
  */
10665
10784
  export const listAdGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdGroupAssetsData, ThrowOnError>) => {
10666
10785
  return (options?.client ?? client).get<ListAdGroupAssetsResponse, ListAdGroupAssetsError, ThrowOnError>({
@@ -10671,7 +10790,10 @@ export const listAdGroupAssets = <ThrowOnError extends boolean = false>(options:
10671
10790
 
10672
10791
  /**
10673
10792
  * Attach ad-group assets
10793
+ * Creates sitelinks, callouts, structured snippets or image assets and attaches them to a Google ad group in one step.
10794
+ *
10674
10795
  * Creates and attaches sitelinks, callouts, structured snippets and image assets in one Google mutation. Google shows images only on accounts it deems eligible (account age, policy history, vertical).
10796
+ *
10675
10797
  */
10676
10798
  export const attachAdGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AttachAdGroupAssetsData, ThrowOnError>) => {
10677
10799
  return (options?.client ?? client).post<AttachAdGroupAssetsResponse, AttachAdGroupAssetsError, ThrowOnError>({
@@ -10682,7 +10804,10 @@ export const attachAdGroupAssets = <ThrowOnError extends boolean = false>(option
10682
10804
 
10683
10805
  /**
10684
10806
  * Update ad-group assets
10685
- * Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
10807
+ * Edits a Google ad group's existing assets in place; the change applies everywhere that asset is used.
10808
+ *
10809
+ * Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
10810
+ *
10686
10811
  */
10687
10812
  export const updateAdGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdGroupAssetsData, ThrowOnError>) => {
10688
10813
  return (options?.client ?? client).put<UpdateAdGroupAssetsResponse, UpdateAdGroupAssetsError, ThrowOnError>({
@@ -10693,7 +10818,10 @@ export const updateAdGroupAssets = <ThrowOnError extends boolean = false>(option
10693
10818
 
10694
10819
  /**
10695
10820
  * Remove ad-group assets
10696
- * Removes the specified attachments only. Google assets cannot be deleted. Other attachments remain. assetResourceNames is retained for compatibility. Fields go in the query string. A JSON body with the same fields is also accepted and, when sent, the query string is ignored.
10821
+ * Detaches assets from a Google ad group without deleting them, so they stay in the account and on anything else they are attached to.
10822
+ *
10823
+ * Google assets cannot be deleted. Other attachments remain. assetResourceNames is retained for compatibility. Fields go in the query string. A JSON body with the same fields is also accepted and, when sent, the query string is ignored.
10824
+ *
10697
10825
  */
10698
10826
  export const removeAdGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAdGroupAssetsData, ThrowOnError>) => {
10699
10827
  return (options?.client ?? client).delete<RemoveAdGroupAssetsResponse, RemoveAdGroupAssetsError, ThrowOnError>({
@@ -10704,6 +10832,8 @@ export const removeAdGroupAssets = <ThrowOnError extends boolean = false>(option
10704
10832
 
10705
10833
  /**
10706
10834
  * Get campaign analytics
10835
+ * Returns a campaign's performance summary and daily timeline, with optional breakdowns by age, gender and other audience dimensions.
10836
+ *
10707
10837
  * Returns performance analytics for a whole campaign in one call: summary metrics, a daily
10708
10838
  * timeline over the requested date range (summed across the campaign's ads), and optional
10709
10839
  * demographic breakdowns. Breakdowns are fetched live from Meta at the campaign level (one call
@@ -10727,6 +10857,8 @@ export const getCampaignAnalytics = <ThrowOnError extends boolean = false>(optio
10727
10857
 
10728
10858
  /**
10729
10859
  * Render pre-create ad previews
10860
+ * Shows how a Meta creative will look in each placement before you create the ad, as embeddable previews.
10861
+ *
10730
10862
  * Renders how a creative would look per placement BEFORE any ad exists, via Meta's
10731
10863
  * `/generatepreviews`. Provide exactly one creative source: `existingCreativeId` or `creativeSpec`.
10732
10864
  * Each preview is an HTML `<iframe>` snippet embeddable directly. Unknown `formats` values
@@ -10742,6 +10874,8 @@ export const generateAdPreviews = <ThrowOnError extends boolean = false>(options
10742
10874
 
10743
10875
  /**
10744
10876
  * Render previews of an existing ad
10877
+ * Shows how an existing Meta ad looks in each placement, as embeddable previews.
10878
+ *
10745
10879
  * Renders an EXISTING ad per placement via Meta's `/{ad_id}/previews`. Each preview is an HTML
10746
10880
  * `<iframe>` snippet embeddable directly. Unknown `formats` values return Meta's 400 verbatim.
10747
10881
  *
@@ -10755,6 +10889,8 @@ export const getAdPreviews = <ThrowOnError extends boolean = false>(options: Opt
10755
10889
 
10756
10890
  /**
10757
10891
  * Read the platform's review verdict for an ad
10892
+ * Shows whether the platform approved an ad, where it may not deliver, and every rejection reason, without re-enabling a paused ad.
10893
+ *
10758
10894
  * Reads the ad's review verdict from the platform now: whether it was approved, where it may
10759
10895
  * not deliver, and every rejection reason with TikTok's suggestion and the piece of content it
10760
10896
  * refers to. Read-only, so it works on a paused ad without re-enabling it.
@@ -10782,6 +10918,8 @@ export const getAdReview = <ThrowOnError extends boolean = false>(options: Optio
10782
10918
 
10783
10919
  /**
10784
10920
  * Direct video and image URLs for an ad
10921
+ * Returns fresh, short-lived download links for every image and video a Meta ad uses, including the original media of a boosted Instagram post.
10922
+ *
10785
10923
  * Returns the direct signed URLs for every video and image asset used by an ad's live
10786
10924
  * creative, normalised across shapes: single image/video, carousel,
10787
10925
  * Reels/Story (`object_story_spec.video_data`) and dynamic
@@ -10807,6 +10945,8 @@ export const getAdMedia = <ThrowOnError extends boolean = false>(options: Option
10807
10945
 
10808
10946
  /**
10809
10947
  * Generate keyword ideas
10948
+ * Suggests new keywords from seed keywords or a website using Google Keyword Planner, with search volume, competition and bid estimates.
10949
+ *
10810
10950
  * Google Ads only. Runs Keyword Planner's generateKeywordIdeas from seed keywords, a seed URL,
10811
10951
  * or both, returning idea rows verbatim (avgMonthlySearches, competition, competitionIndex,
10812
10952
  * top-of-page bid micros, monthlySearchVolumes). Counters are int64s encoded as strings; bid
@@ -10822,6 +10962,8 @@ export const generateKeywordIdeas = <ThrowOnError extends boolean = false>(optio
10822
10962
 
10823
10963
  /**
10824
10964
  * Get historical keyword metrics
10965
+ * Gets historical search volume, competition and bid ranges for up to 1,000 keywords from Google Keyword Planner.
10966
+ *
10825
10967
  * Google Ads only. Runs Keyword Planner's generateKeywordHistoricalMetrics for up to 1,000
10826
10968
  * exact keywords: historical search volume, competition and top-of-page bid ranges, plus
10827
10969
  * averageCpcMicros when includeAverageCpc is set. Rows come back verbatim; counters are int64s
@@ -10837,7 +10979,9 @@ export const generateKeywordHistoricalMetrics = <ThrowOnError extends boolean =
10837
10979
 
10838
10980
  /**
10839
10981
  * Flexible live insights query
10840
- * Live, flexible insights query. The account's platform picks the contract:
10982
+ * Runs a custom performance query against Meta, Google Ads or TikTok and returns the platform's rows as is, for reports the fixed endpoints don't cover.
10983
+ *
10984
+ * The account's platform picks the contract:
10841
10985
  *
10842
10986
  * **Meta (facebook/instagram)**: forwards caller-chosen `fields`, `breakdowns` and `filtering`
10843
10987
  * to any Meta insights node and returns Meta's rows verbatim. `objectId` (required) selects the
@@ -10888,7 +11032,9 @@ export const queryAdInsights = <ThrowOnError extends boolean = false>(options: O
10888
11032
 
10889
11033
  /**
10890
11034
  * Submit async insights report
10891
- * Submits an asynchronous Meta insights report. Same query surface as GET /v1/ads/insights, but
11035
+ * Starts a background Meta insights report for long date ranges or large accounts where a live query would be too slow.
11036
+ *
11037
+ * Same query surface as GET /v1/ads/insights, but
10892
11038
  * in the JSON body; Meta processes the report server-side, which is the right choice for long
10893
11039
  * ranges or large accounts where the sync query is slow or rate-limited. Returns a `reportRunId`
10894
11040
  * to poll via GET /v1/ads/insights/reports/{reportRunId}.
@@ -10903,6 +11049,8 @@ export const createAdInsightsReport = <ThrowOnError extends boolean = false>(opt
10903
11049
 
10904
11050
  /**
10905
11051
  * Poll an async insights report run
11052
+ * Checks progress of a background Meta insights report and returns its results once it has finished.
11053
+ *
10906
11054
  * Status and results for a report run created via POST /v1/ads/insights/reports. While the job
10907
11055
  * runs, returns `status` and `percentCompletion`. Once `status` is "Job Completed" the response
10908
11056
  * also carries a `data` page, cursor-paginated via `limit` / `after`.
@@ -10917,7 +11065,9 @@ export const getAdInsightsReport = <ThrowOnError extends boolean = false>(option
10917
11065
 
10918
11066
  /**
10919
11067
  * Get ad analytics
10920
- * Returns detailed performance analytics for an ad. Includes summary metrics, a daily timeline
11068
+ * Returns one ad's performance summary and daily timeline, with optional audience breakdowns on Meta and TikTok.
11069
+ *
11070
+ * Includes summary metrics, a daily timeline
10921
11071
  * over the requested date range, and optional demographic breakdowns (Meta and TikTok only).
10922
11072
  * If no date range is provided, defaults to the last 90 days. Date range is capped at 730 days max.
10923
11073
  *
@@ -10931,6 +11081,8 @@ export const getAdAnalytics = <ThrowOnError extends boolean = false>(options: Op
10931
11081
 
10932
11082
  /**
10933
11083
  * Get ad tracking tags
11084
+ * Shows the tracking parameters added to an ad's click URLs, such as UTM tags (not pixels).
11085
+ *
10934
11086
  * Unified read of the platform's native click-URL tracking params.
10935
11087
  * - Meta (facebook/instagram): the creative's `url_tags` (and template_url_spec).
10936
11088
  * - Google (googleads): the campaign's `trackingUrlTemplate` + `finalUrlSuffix`.
@@ -10952,7 +11104,9 @@ export const getAdTrackingTags = <ThrowOnError extends boolean = false>(options:
10952
11104
 
10953
11105
  /**
10954
11106
  * Set ad tracking tags
10955
- * Unified update. Send only the fields for the ad's platform:
11107
+ * Sets the tracking parameters added to an ad's click URLs, such as UTM tags, without rebuilding the rest of the ad.
11108
+ *
11109
+ * Send only the fields for the ad's platform:
10956
11110
  * - Meta: `urlTags` (array of {key,value}). Meta creatives are immutable, so this rebuilds the
10957
11111
  * creative and repoints the ad. By DEFAULT we PRESERVE the existing creative verbatim
10958
11112
  * (re-post its object_story_spec + the new url_tags, reusing the image), so you send `urlTags`
@@ -10975,7 +11129,9 @@ export const updateAdTrackingTags = <ThrowOnError extends boolean = false>(optio
10975
11129
 
10976
11130
  /**
10977
11131
  * List comments on an ad
10978
- * Returns comments on an ad's underlying creative post. Useful for moderating or analyzing
11132
+ * Lists the comments on an ad's post, including dark posts that never ran organically, so you can moderate ad engagement.
11133
+ *
11134
+ * Useful for moderating or analyzing
10979
11135
  * engagement on dark posts (ad creatives that never went live organically), which the
10980
11136
  * regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are
10981
11137
  * not in Zernio's post database.
@@ -11126,6 +11282,8 @@ export const listAdsBusinessCenters = <ThrowOnError extends boolean = false>(opt
11126
11282
 
11127
11283
  /**
11128
11284
  * Ad account change / audit log
11285
+ * Shows who changed what in an ad account and when, as an audit log of edits to campaigns, ad sets and ads.
11286
+ *
11129
11287
  * **Google**: reads the customer's `change_event` history, newest first. Google keeps 30 days
11130
11288
  * of it, so `since` defaults to 29 days ago and an older `since` returns 400; `until`
11131
11289
  * defaults to today. Each change is mapped onto the Meta row shape: `event_type` =
@@ -11154,7 +11312,9 @@ export const getAdsActivityLog = <ThrowOnError extends boolean = false>(options:
11154
11312
 
11155
11313
  /**
11156
11314
  * Create reach-frequency prediction
11157
- * Creates an R&F prediction. This is a QUOTE, nothing is bought and no ad entities are created.
11315
+ * Quotes the reach or budget for a Meta reach and frequency campaign over a date range, without buying anything.
11316
+ *
11317
+ * This is a QUOTE, nothing is bought and no ad entities are created.
11158
11318
  * Provide a date range plus exactly one of `budgetAmount` (Meta predicts reach) or `reach`
11159
11319
  * (Meta predicts the budget). The response carries the estimate and its allowed bounds
11160
11320
  * (min/max budget and reach). Predictions expire on their own; to buy, reserve one via
@@ -11165,6 +11325,7 @@ export const getAdsActivityLog = <ThrowOnError extends boolean = false>(options:
11165
11325
  * omitted, `targeting.placements` is used; when neither is set, placements default to
11166
11326
  * Facebook feed (+ Instagram stream when a linked IG professional account resolves).
11167
11327
  * Instagram placements require that IG account.
11328
+ *
11168
11329
  */
11169
11330
  export const createRfPrediction = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateRfPredictionData, ThrowOnError>) => {
11170
11331
  return (options?.client ?? client).post<CreateRfPredictionResponse, CreateRfPredictionError, ThrowOnError>({
@@ -11175,6 +11336,8 @@ export const createRfPrediction = <ThrowOnError extends boolean = false>(options
11175
11336
 
11176
11337
  /**
11177
11338
  * Get reach-frequency prediction
11339
+ * Shows a Meta reach and frequency prediction, with its estimate and status.
11340
+ *
11178
11341
  */
11179
11342
  export const getRfPrediction = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetRfPredictionData, ThrowOnError>) => {
11180
11343
  return (options?.client ?? client).get<GetRfPredictionResponse, GetRfPredictionError, ThrowOnError>({
@@ -11185,7 +11348,10 @@ export const getRfPrediction = <ThrowOnError extends boolean = false>(options: O
11185
11348
 
11186
11349
  /**
11187
11350
  * Cancel reach-frequency booking
11188
- * Releases a RESERVATION's locked price and inventory. Unreserved predictions expire on their own.
11351
+ * Cancels a Meta reach and frequency reservation, releasing its locked price and inventory.
11352
+ *
11353
+ * Unreserved predictions expire on their own.
11354
+ *
11189
11355
  */
11190
11356
  export const cancelRfReservation = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CancelRfReservationData, ThrowOnError>) => {
11191
11357
  return (options?.client ?? client).delete<CancelRfReservationResponse, CancelRfReservationError, ThrowOnError>({
@@ -11196,6 +11362,8 @@ export const cancelRfReservation = <ThrowOnError extends boolean = false>(option
11196
11362
 
11197
11363
  /**
11198
11364
  * Reserve reach-frequency inventory
11365
+ * Locks the quoted price and inventory of a Meta reach and frequency prediction so you can launch a campaign on it.
11366
+ *
11199
11367
  * Locks the quoted price + inventory until the returned `expiresAt` and mints a NEW
11200
11368
  * prediction id. Pass that RESERVED id (not the original) as `rfPredictionId` on
11201
11369
  * POST /v1/ads/create. Release an unused reservation via DELETE.
@@ -11209,6 +11377,8 @@ export const reserveRfPrediction = <ThrowOnError extends boolean = false>(option
11209
11377
 
11210
11378
  /**
11211
11379
  * A/B tests and lift studies
11380
+ * Lists the A/B tests and lift studies on a Meta ad account, with their timing and test groups.
11381
+ *
11212
11382
  * Lists the ad account's A/B tests and lift studies (Meta's `/act_X/ad_studies`), rows
11213
11383
  * returned verbatim. The default projection covers id, name, type, timing and cells with
11214
11384
  * split percentages; `fields` is a raw-passthrough override.
@@ -11244,7 +11414,10 @@ export const getTikTokSmartPlusMaterialReport = <ThrowOnError extends boolean =
11244
11414
 
11245
11415
  /**
11246
11416
  * List Instagram ad identities
11417
+ * Lists the Instagram accounts a Meta ad connection can run ads as, so you can pick the identity for a new ad.
11418
+ *
11247
11419
  * Discovers identities through connected_instagram_accounts, Page linkage and Page-backed identities, with a best-effort business fallback. Business permission errors do not fail discovery. The resolved object uses the same profile-scoped resolver as ad creation; null means no identity was resolved. Format-specific observed-actor fallbacks at creative creation are not predicted.
11420
+ *
11248
11421
  */
11249
11422
  export const listAdsInstagramAccounts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdsInstagramAccountsData, ThrowOnError>) => {
11250
11423
  return (options?.client ?? client).get<ListAdsInstagramAccountsResponse, ListAdsInstagramAccountsError, ThrowOnError>({
@@ -11255,7 +11428,10 @@ export const listAdsInstagramAccounts = <ThrowOnError extends boolean = false>(o
11255
11428
 
11256
11429
  /**
11257
11430
  * List Instagram posts to boost
11431
+ * Lists posts from the Instagram account a Meta ad connection can reach, so you can boost one as an ad.
11432
+ *
11258
11433
  * Lists the media of the Instagram account this Meta connection can reach, so an existing Instagram post can be boosted without connecting the Instagram account separately. Each `posts[].id` is the existing-post id to send as `platformPostId` when creating the ad; Meta turns it into `source_instagram_media_id` on the creative. Identity resolution reuses the same resolver as `/v1/ads/instagram-accounts`. `igUserId` is always checked against the identities the connection can reach and is never trusted as sent. When no identity is reachable the endpoint fails instead of returning an empty list, and the two causes stay apart: `403 reconnect_required` means the connection predates Instagram access (Meta then omits `instagram_business_account` from the Page read rather than erroring, so it looks identical to having no data) and the account must be reconnected granting Instagram access, while `422 instagram_business_account_unresolved` means the Page genuinely has no Instagram professional account linked.
11434
+ *
11259
11435
  */
11260
11436
  export const listAdsInstagramPosts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdsInstagramPostsData, ThrowOnError>) => {
11261
11437
  return (options?.client ?? client).get<ListAdsInstagramPostsResponse, ListAdsInstagramPostsError, ThrowOnError>({
@@ -11266,7 +11442,10 @@ export const listAdsInstagramPosts = <ThrowOnError extends boolean = false>(opti
11266
11442
 
11267
11443
  /**
11268
11444
  * List advertisable apps
11445
+ * Lists the mobile apps a Meta ad account can promote, with their platforms and store links, for app install campaigns.
11446
+ *
11269
11447
  * Lists applications available to a Meta ad account, their supported platforms and unmodified object store URLs. A listed app still needs a configured mobile platform and store URL to run install promotion.
11448
+ *
11270
11449
  */
11271
11450
  export const listAdvertisableApplications = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdvertisableApplicationsData, ThrowOnError>) => {
11272
11451
  return (options?.client ?? client).get<ListAdvertisableApplicationsResponse, ListAdvertisableApplicationsError, ThrowOnError>({
@@ -11277,7 +11456,10 @@ export const listAdvertisableApplications = <ThrowOnError extends boolean = fals
11277
11456
 
11278
11457
  /**
11279
11458
  * Get iOS 14 campaign limits
11280
- * Reads Meta iOS 14 campaign limits for an application on an ad account. applicationId is sent as Meta app_id. This read does not establish that the application is configured for iOS promotion.
11459
+ * Shows Meta's iOS 14 campaign limits for an app on an ad account (it does not confirm the app is set up for iOS promotion).
11460
+ *
11461
+ * applicationId is sent as Meta app_id. This read does not establish that the application is configured for iOS promotion.
11462
+ *
11281
11463
  */
11282
11464
  export const getIosFourteenCampaignLimits = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetIosFourteenCampaignLimitsData, ThrowOnError>) => {
11283
11465
  return (options?.client ?? client).get<GetIosFourteenCampaignLimitsResponse, GetIosFourteenCampaignLimitsError, ThrowOnError>({
@@ -11288,6 +11470,8 @@ export const getIosFourteenCampaignLimits = <ThrowOnError extends boolean = fals
11288
11470
 
11289
11471
  /**
11290
11472
  * Businesses list
11473
+ * Lists the Meta business portfolios the connected user belongs to, with their verification status.
11474
+ *
11291
11475
  * Business Manager portfolios the connected Meta user belongs to (Meta's `/me/businesses`),
11292
11476
  * rows returned verbatim (id, name, verification_status, created_time). Token-scoped, so no
11293
11477
  * `adAccountId` is needed. For TikTok Business Centers use
@@ -11302,6 +11486,8 @@ export const listMetaBusinesses = <ThrowOnError extends boolean = false>(options
11302
11486
 
11303
11487
  /**
11304
11488
  * Business users
11489
+ * Lists the people and system users of a Meta business portfolio, with the ids you need to assign them to Pages or ad accounts.
11490
+ *
11305
11491
  * People and system users of a Meta business portfolio, with the business-scoped ids that
11306
11492
  * `POST /v1/ads/accounts/users` and `POST /v1/ads/page-users` take. The connected Meta
11307
11493
  * user must be an admin of the portfolio.
@@ -11315,6 +11501,8 @@ export const listMetaBusinessUsers = <ThrowOnError extends boolean = false>(opti
11315
11501
 
11316
11502
  /**
11317
11503
  * Page users of a business
11504
+ * Lists the people in a business portfolio who are assigned to a Facebook Page it owns or was shared as a partner.
11505
+ *
11318
11506
  * People of a business portfolio assigned to a Facebook Page the portfolio owns or was
11319
11507
  * granted as a partner (`POST /v1/accounts/{accountId}/business-partners` on the owner side).
11320
11508
  */
@@ -11327,6 +11515,8 @@ export const listPageUsers = <ThrowOnError extends boolean = false>(options: Opt
11327
11515
 
11328
11516
  /**
11329
11517
  * Assign a user to a Page
11518
+ * Gives a person in your business portfolio tasks on a Facebook Page, such as advertising, so they can run ads for it.
11519
+ *
11330
11520
  * Gives a person of the portfolio tasks on a Page the portfolio owns or was granted as a
11331
11521
  * partner. Meta does not assign partner admins automatically, so after an owner shares a
11332
11522
  * Page the partner calls this for the people whose tokens will advertise for it.
@@ -11342,6 +11532,8 @@ export const assignPageUser = <ThrowOnError extends boolean = false>(options: Op
11342
11532
 
11343
11533
  /**
11344
11534
  * Remove a user from a Page
11535
+ * Removes a person's access to a Facebook Page assigned through your business portfolio.
11536
+ *
11345
11537
  */
11346
11538
  export const removePageUser = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemovePageUserData, ThrowOnError>) => {
11347
11539
  return (options?.client ?? client).delete<RemovePageUserResponse, RemovePageUserError, ThrowOnError>({
@@ -11352,7 +11544,7 @@ export const removePageUser = <ThrowOnError extends boolean = false>(options: Op
11352
11544
 
11353
11545
  /**
11354
11546
  * List ad labels
11355
- * Lists the organizational labels on an ad account.
11547
+ * Lists the labels used to organise campaigns and ads in an ad account.
11356
11548
  *
11357
11549
  * - **Meta**: pass `adAccountId=act_<n>`. Rows are Meta's `/act_X/adlabels` returned verbatim
11358
11550
  * (id, name, created/updated time), paginated with `limit` / `after`.
@@ -11360,6 +11552,7 @@ export const removePageUser = <ThrowOnError extends boolean = false>(options: Op
11360
11552
  * connection has a single customer). Returns every non-removed label as a `GoogleAdLabel`
11361
11553
  * in one page (`paging.after` is always null). Reads are cached for 10 minutes; when the
11362
11554
  * shared Google quota is exhausted the last successful result is served with `stale: true`.
11555
+ *
11363
11556
  */
11364
11557
  export const listAdLabels = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdLabelsData, ThrowOnError>) => {
11365
11558
  return (options?.client ?? client).get<ListAdLabelsResponse, ListAdLabelsError, ThrowOnError>({
@@ -11370,9 +11563,12 @@ export const listAdLabels = <ThrowOnError extends boolean = false>(options: Opti
11370
11563
 
11371
11564
  /**
11372
11565
  * Create a Google Ads label
11373
- * Creates a label on a Google Ads customer. Attach it to campaigns, ad groups, ads and
11566
+ * Creates a Google Ads label you can then attach to campaigns, ad groups, ads and keywords to organize and filter them.
11567
+ *
11568
+ * Attach it to campaigns, ad groups, ads and
11374
11569
  * keywords with `POST /v1/ads/labels/{labelId}/assignments`. Label names are unique per
11375
11570
  * customer; a duplicate is a 400.
11571
+ *
11376
11572
  */
11377
11573
  export const createAdLabel = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdLabelData, ThrowOnError>) => {
11378
11574
  return (options?.client ?? client).post<CreateAdLabelResponse, CreateAdLabelError, ThrowOnError>({
@@ -11383,7 +11579,10 @@ export const createAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11383
11579
 
11384
11580
  /**
11385
11581
  * Update a Google Ads label
11386
- * Changes the name, color or description of a label. Only the fields sent are written.
11582
+ * Changes a Google Ads label's name, color or description.
11583
+ *
11584
+ * Only the fields sent are written.
11585
+ *
11387
11586
  */
11388
11587
  export const updateAdLabel = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdLabelData, ThrowOnError>) => {
11389
11588
  return (options?.client ?? client).patch<UpdateAdLabelResponse, UpdateAdLabelError, ThrowOnError>({
@@ -11394,7 +11593,10 @@ export const updateAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11394
11593
 
11395
11594
  /**
11396
11595
  * Remove a Google Ads label
11397
- * Removes the label. Google drops it from every campaign, ad group, ad and keyword it was attached to.
11596
+ * Deletes a Google Ads label and removes it from everything it was attached to.
11597
+ *
11598
+ * Google drops it from every campaign, ad group, ad and keyword it was attached to.
11599
+ *
11398
11600
  */
11399
11601
  export const removeAdLabel = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAdLabelData, ThrowOnError>) => {
11400
11602
  return (options?.client ?? client).delete<RemoveAdLabelResponse, RemoveAdLabelError, ThrowOnError>({
@@ -11405,6 +11607,8 @@ export const removeAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11405
11607
 
11406
11608
  /**
11407
11609
  * Attach a Google Ads label
11610
+ * Attaches a Google Ads label to campaigns, ad groups, ads and keywords in one call, skipping any that already have it.
11611
+ *
11408
11612
  * Attaches the label to campaigns, ad groups, ads and keywords (Google CampaignLabel,
11409
11613
  * AdGroupLabel, AdGroupAdLabel and AdGroupCriterionLabel) in one mutate. Idempotent: a
11410
11614
  * target that already carries the label is counted in `unchanged` instead of failing the
@@ -11421,7 +11625,10 @@ export const attachAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11421
11625
 
11422
11626
  /**
11423
11627
  * Detach a Google Ads label
11424
- * Removes the label from the given targets. Idempotent; a target without the label is counted in `unchanged`. Fields go in the query string. A JSON body with the same fields is also accepted and, when sent, the query string is ignored.
11628
+ * Removes a Google Ads label from the campaigns, ad groups, ads or keywords you name, skipping any that do not have it.
11629
+ *
11630
+ * Idempotent; a target without the label is counted in `unchanged`. Fields go in the query string. A JSON body with the same fields is also accepted and, when sent, the query string is ignored.
11631
+ *
11425
11632
  */
11426
11633
  export const detachAdLabel = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DetachAdLabelData, ThrowOnError>) => {
11427
11634
  return (options?.client ?? client).delete<DetachAdLabelResponse, DetachAdLabelError, ThrowOnError>({
@@ -11432,6 +11639,8 @@ export const detachAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11432
11639
 
11433
11640
  /**
11434
11641
  * List high-demand periods
11642
+ * Lists the scheduled budget increases set on a Meta campaign or ad set.
11643
+ *
11435
11644
  * Scheduled budget increases (Meta's budget-scheduling API). The Graph edge lives on the
11436
11645
  * campaign and ad-set nodes only, so exactly one of `campaignId` / `adSetId` (platform
11437
11646
  * ids) is required. Rows returned verbatim (budget_value, budget_value_type, time window,
@@ -11446,8 +11655,9 @@ export const listHighDemandPeriods = <ThrowOnError extends boolean = false>(opti
11446
11655
 
11447
11656
  /**
11448
11657
  * Schedule a budget increase
11449
- * Pre-schedule a temporary budget increase (Black Friday, a launch, a sale) instead of
11450
- * editing the budget by hand on the day. Same target rule as the GET: exactly one of
11658
+ * Schedules a temporary budget increase on a Meta campaign or ad set for a busy period, like Black Friday or a launch.
11659
+ *
11660
+ * Same target rule as the GET: exactly one of
11451
11661
  * `campaignId` / `adSetId`.
11452
11662
  *
11453
11663
  * Two Meta constraints worth knowing before you call it. `timeStart` / `timeEnd` must
@@ -11455,6 +11665,7 @@ export const listHighDemandPeriods = <ThrowOnError extends boolean = false>(opti
11455
11665
  * across its schedules; the second type is rejected with "Can't mix your budget scaling
11456
11666
  * selection". Window rules (must sit inside the campaign's run dates, minimum lead time,
11457
11667
  * no overlap) are Meta's and its message is forwarded verbatim.
11668
+ *
11458
11669
  */
11459
11670
  export const createHighDemandPeriod = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateHighDemandPeriodData, ThrowOnError>) => {
11460
11671
  return (options?.client ?? client).post<CreateHighDemandPeriodResponse, CreateHighDemandPeriodError, ThrowOnError>({
@@ -11465,6 +11676,8 @@ export const createHighDemandPeriod = <ThrowOnError extends boolean = false>(opt
11465
11676
 
11466
11677
  /**
11467
11678
  * Creative library
11679
+ * Lists the creatives saved in a Meta ad account so you can reuse one in a new ad.
11680
+ *
11468
11681
  * Lists the ad account's creative library (Meta's `/act_X/adcreatives`), rows returned
11469
11682
  * verbatim. The default projection covers id, name, status, object type, thumbnail,
11470
11683
  * object_story_spec / asset_feed_spec and url_tags; `fields` is a raw-passthrough
@@ -11480,6 +11693,8 @@ export const listAdCreatives = <ThrowOnError extends boolean = false>(options: O
11480
11693
 
11481
11694
  /**
11482
11695
  * Create a standalone creative
11696
+ * Creates a reusable Meta creative from an image or carousel without creating an ad, ready to attach to ads later.
11697
+ *
11483
11698
  * Creates a creative in the library WITHOUT an ad, reusable on the create endpoints via
11484
11699
  * `existingCreativeId`. Provide exactly one of `imageUrl` (uploaded server-side),
11485
11700
  * `imageHash` (from POST /v1/ads/images or the library list), or `carouselCards` (2-10
@@ -11496,6 +11711,8 @@ export const createAdCreative = <ThrowOnError extends boolean = false>(options:
11496
11711
 
11497
11712
  /**
11498
11713
  * Creative details
11714
+ * Shows the details of one Meta creative, such as its content, status and thumbnail.
11715
+ *
11499
11716
  * One creative's details, verbatim from Meta. `fields` is a raw-passthrough override of
11500
11717
  * the default projection.
11501
11718
  */
@@ -11508,9 +11725,12 @@ export const getAdCreative = <ThrowOnError extends boolean = false>(options: Opt
11508
11725
 
11509
11726
  /**
11510
11727
  * Rename a creative
11511
- * Renames a creative. Creatives are immutable on Meta beyond `name`. For content changes
11728
+ * Renames a Meta creative (Meta does not allow other changes, so make a new creative to change its content).
11729
+ *
11730
+ * Creatives are immutable on Meta beyond `name`. For content changes
11512
11731
  * create a new creative (POST /v1/ads/creatives) and swap it onto the ad
11513
11732
  * (PUT /v1/ads/{adId} with `creative`).
11733
+ *
11514
11734
  */
11515
11735
  export const updateAdCreative = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdCreativeData, ThrowOnError>) => {
11516
11736
  return (options?.client ?? client).put<UpdateAdCreativeResponse, UpdateAdCreativeError, ThrowOnError>({
@@ -11521,8 +11741,11 @@ export const updateAdCreative = <ThrowOnError extends boolean = false>(options:
11521
11741
 
11522
11742
  /**
11523
11743
  * Delete a creative
11524
- * Deletes a creative from the library. Meta only allows deleting creatives not referenced
11744
+ * Deletes a Meta creative from the library, which Meta only allows when no ad uses it.
11745
+ *
11746
+ * Meta only allows deleting creatives not referenced
11525
11747
  * by any ad; otherwise its 400 surfaces verbatim.
11748
+ *
11526
11749
  */
11527
11750
  export const deleteAdCreative = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdCreativeData, ThrowOnError>) => {
11528
11751
  return (options?.client ?? client).delete<DeleteAdCreativeResponse, DeleteAdCreativeError, ThrowOnError>({
@@ -11533,6 +11756,8 @@ export const deleteAdCreative = <ThrowOnError extends boolean = false>(options:
11533
11756
 
11534
11757
  /**
11535
11758
  * List value rule sets
11759
+ * Lists a Meta ad account's value rule sets, which raise or lower bids for audience segments you value differently.
11760
+ *
11536
11761
  * Lists the ad account's value rule sets (Meta's `/act_X/value_rule_set`). A value rule
11537
11762
  * set adjusts the auction bid up or down for audience segments you value differently;
11538
11763
  * attach one to an ad set with `valueRuleSetId` on `POST /v1/ads/create` or
@@ -11560,6 +11785,8 @@ export const listValueRuleSets = <ThrowOnError extends boolean = false>(options:
11560
11785
 
11561
11786
  /**
11562
11787
  * Create a value rule set
11788
+ * Creates a Meta value rule set that raises or lowers bids for chosen audience segments, ready to attach to ad sets.
11789
+ *
11563
11790
  * Creates a value rule set on the ad account (Meta's `POST /act_X/value_rule_set`).
11564
11791
  * Attach the returned id to an ad set with `valueRuleSetId` on `POST /v1/ads/create` or
11565
11792
  * `PUT /v1/ads/ad-sets/{adSetId}`.
@@ -11600,6 +11827,8 @@ export const createValueRuleSet = <ThrowOnError extends boolean = false>(options
11600
11827
 
11601
11828
  /**
11602
11829
  * Read a value rule set
11830
+ * Shows one Meta value rule set with all its rules and criteria, the first step before editing it.
11831
+ *
11603
11832
  * Reads one value rule set including every nested rule id and criterion id. This is step
11604
11833
  * one of any edit: `PUT` is a full replace, so you need the ids before you can keep the
11605
11834
  * objects you are not changing.
@@ -11617,6 +11846,8 @@ export const getValueRuleSet = <ThrowOnError extends boolean = false>(options: O
11617
11846
 
11618
11847
  /**
11619
11848
  * Replace a value rule set
11849
+ * Replaces a Meta value rule set with the rules you send, so any rule left out is deleted.
11850
+ *
11620
11851
  * **THIS IS A FULL REPLACE, NOT A PATCH.** Meta's update is declarative: the body you
11621
11852
  * send becomes the rule set.
11622
11853
  *
@@ -11643,6 +11874,8 @@ export const updateValueRuleSet = <ThrowOnError extends boolean = false>(options
11643
11874
 
11644
11875
  /**
11645
11876
  * Delete a value rule set
11877
+ * Deletes a Meta value rule set (detach it from ad sets first, since they are not changed here).
11878
+ *
11646
11879
  * Deletes the rule set (Meta's `POST /{value-rule-set-id}/delete_rule_set`, a custom
11647
11880
  * action edge rather than an HTTP DELETE on its side). Ad sets pointing at it are not
11648
11881
  * modified here; detach them first with `valueRulesApplied: false` on
@@ -11657,7 +11890,10 @@ export const deleteValueRuleSet = <ThrowOnError extends boolean = false>(options
11657
11890
 
11658
11891
  /**
11659
11892
  * List negative keyword lists
11893
+ * Lists the shared negative keyword lists in a Google Ads account, which you can apply to many campaigns at once.
11894
+ *
11660
11895
  * Google Ads shared negative keyword lists (shared_set type NEGATIVE_KEYWORDS). Reads are cached for 10 minutes; quota exhaustion may return the last successful result for up to 7 days with stale=true. Customer selection is limited to this connection and its account scope.
11896
+ *
11661
11897
  */
11662
11898
  export const listAdNegativeKeywordLists = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdNegativeKeywordListsData, ThrowOnError>) => {
11663
11899
  return (options?.client ?? client).get<ListAdNegativeKeywordListsResponse, ListAdNegativeKeywordListsError, ThrowOnError>({
@@ -11668,7 +11904,10 @@ export const listAdNegativeKeywordLists = <ThrowOnError extends boolean = false>
11668
11904
 
11669
11905
  /**
11670
11906
  * Create a negative keyword list
11907
+ * Creates a shared Google Ads negative keyword list, optionally with starting keywords; it is not attached to any campaign yet.
11908
+ *
11671
11909
  * Creates one Google Ads shared negative keyword list with optional initial keywords in a single atomic mutation. Daily quota is reserved for every mutate item, so large batches may return 429 before any change. This operation is not idempotent. The list is not attached to any campaign.
11910
+ *
11672
11911
  */
11673
11912
  export const createAdNegativeKeywordList = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdNegativeKeywordListData, ThrowOnError>) => {
11674
11913
  return (options?.client ?? client).post<CreateAdNegativeKeywordListResponse, CreateAdNegativeKeywordListError, ThrowOnError>({
@@ -11679,7 +11918,10 @@ export const createAdNegativeKeywordList = <ThrowOnError extends boolean = false
11679
11918
 
11680
11919
  /**
11681
11920
  * Get a negative keyword list
11921
+ * Shows one shared Google Ads negative keyword list with all of its keywords.
11922
+ *
11682
11923
  * Google Ads shared negative keyword lists (shared_set type NEGATIVE_KEYWORDS). Reads are cached for 10 minutes; quota exhaustion may return the last successful result for up to 7 days with stale=true. Customer selection is limited to this connection and its account scope. Includes the keywords and their criterion ids.
11924
+ *
11683
11925
  */
11684
11926
  export const getAdNegativeKeywordList = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdNegativeKeywordListData, ThrowOnError>) => {
11685
11927
  return (options?.client ?? client).get<GetAdNegativeKeywordListResponse, GetAdNegativeKeywordListError, ThrowOnError>({
@@ -11690,7 +11932,10 @@ export const getAdNegativeKeywordList = <ThrowOnError extends boolean = false>(o
11690
11932
 
11691
11933
  /**
11692
11934
  * Rename a negative keyword list
11693
- * Renames a shared negative keyword list. Keywords and campaign associations are unchanged. Use the keywords endpoint to edit the desired keyword set.
11935
+ * Renames a shared Google Ads negative keyword list without changing its keywords or the campaigns using it.
11936
+ *
11937
+ * Keywords and campaign associations are unchanged. Use the keywords endpoint to edit the desired keyword set.
11938
+ *
11694
11939
  */
11695
11940
  export const updateAdNegativeKeywordList = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdNegativeKeywordListData, ThrowOnError>) => {
11696
11941
  return (options?.client ?? client).put<UpdateAdNegativeKeywordListResponse, UpdateAdNegativeKeywordListError, ThrowOnError>({
@@ -11701,7 +11946,10 @@ export const updateAdNegativeKeywordList = <ThrowOnError extends boolean = false
11701
11946
 
11702
11947
  /**
11703
11948
  * Delete a negative keyword list
11704
- * Removes the Google shared negative keyword list. Detach it from all campaigns first; an in-use list is rejected. Only NEGATIVE_KEYWORDS shared sets are supported.
11949
+ * Deletes a shared Google Ads negative keyword list; detach it from every campaign first.
11950
+ *
11951
+ * Detach it from all campaigns first; an in-use list is rejected. Only NEGATIVE_KEYWORDS shared sets are supported.
11952
+ *
11705
11953
  */
11706
11954
  export const deleteAdNegativeKeywordList = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdNegativeKeywordListData, ThrowOnError>) => {
11707
11955
  return (options?.client ?? client).delete<DeleteAdNegativeKeywordListResponse, DeleteAdNegativeKeywordListError, ThrowOnError>({
@@ -11712,7 +11960,10 @@ export const deleteAdNegativeKeywordList = <ThrowOnError extends boolean = false
11712
11960
 
11713
11961
  /**
11714
11962
  * Replace negative list keywords
11715
- * Replaces the full desired keyword set. Existing keywords are diffed by normalized text and match type; creates and removals are applied atomically in one mutation. Unchanged criteria retain their ids. Send an empty keywords array to clear the list. Changes affect every campaign using this list. Each create or removal consumes one daily operation; the entire batch must fit the remaining quota.
11963
+ * Replaces all keywords in a shared Google Ads negative keyword list (or clears it), affecting every campaign that uses the list.
11964
+ *
11965
+ * Existing keywords are diffed by normalized text and match type; creates and removals are applied atomically in one mutation. Unchanged criteria retain their ids. Send an empty keywords array to clear the list. Changes affect every campaign using this list. Each create or removal consumes one daily operation; the entire batch must fit the remaining quota.
11966
+ *
11716
11967
  */
11717
11968
  export const replaceAdNegativeKeywordListKeywords = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ReplaceAdNegativeKeywordListKeywordsData, ThrowOnError>) => {
11718
11969
  return (options?.client ?? client).put<ReplaceAdNegativeKeywordListKeywordsResponse, ReplaceAdNegativeKeywordListKeywordsError, ThrowOnError>({
@@ -11723,7 +11974,10 @@ export const replaceAdNegativeKeywordListKeywords = <ThrowOnError extends boolea
11723
11974
 
11724
11975
  /**
11725
11976
  * List campaign negative lists
11726
- * Returns shared negative keyword lists attached to the campaign, separate from campaign-level negative keywords. Google Ads shared negative keyword lists (shared_set type NEGATIVE_KEYWORDS). Reads are cached for 10 minutes; quota exhaustion may return the last successful result for up to 7 days with stale=true. Customer selection is limited to this connection and its account scope.
11977
+ * Lists the shared negative keyword lists attached to a Google campaign, separate from its own campaign-level negatives.
11978
+ *
11979
+ * Google Ads shared negative keyword lists (shared_set type NEGATIVE_KEYWORDS). Reads are cached for 10 minutes; quota exhaustion may return the last successful result for up to 7 days with stale=true. Customer selection is limited to this connection and its account scope.
11980
+ *
11727
11981
  */
11728
11982
  export const listCampaignNegativeKeywordLists = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListCampaignNegativeKeywordListsData, ThrowOnError>) => {
11729
11983
  return (options?.client ?? client).get<ListCampaignNegativeKeywordListsResponse, ListCampaignNegativeKeywordListsError, ThrowOnError>({
@@ -11734,7 +11988,10 @@ export const listCampaignNegativeKeywordLists = <ThrowOnError extends boolean =
11734
11988
 
11735
11989
  /**
11736
11990
  * Replace campaign negative lists
11737
- * Sets the full desired set of shared negative keyword list associations on this campaign. Send listIds=[] to detach all negative keyword lists. Only campaign_shared_set links are changed; the lists and their keywords are preserved. Every list must belong to the campaign customer and have type NEGATIVE_KEYWORDS.
11991
+ * Sets exactly which shared negative keyword lists apply to a Google campaign, or detaches them all, without changing the lists themselves.
11992
+ *
11993
+ * Send listIds=[] to detach all negative keyword lists. Only campaign_shared_set links are changed; the lists and their keywords are preserved. Every list must belong to the campaign customer and have type NEGATIVE_KEYWORDS.
11994
+ *
11738
11995
  */
11739
11996
  export const replaceCampaignNegativeKeywordLists = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ReplaceCampaignNegativeKeywordListsData, ThrowOnError>) => {
11740
11997
  return (options?.client ?? client).put<ReplaceCampaignNegativeKeywordListsResponse, ReplaceCampaignNegativeKeywordListsError, ThrowOnError>({
@@ -11745,7 +12002,10 @@ export const replaceCampaignNegativeKeywordLists = <ThrowOnError extends boolean
11745
12002
 
11746
12003
  /**
11747
12004
  * List account callouts
11748
- * Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included. Preserves Google RMF C.75 account-level callouts.
12005
+ * Lists the callouts attached at account level in Google Ads, which can show on ads across all campaigns.
12006
+ *
12007
+ * Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included. Preserves Google RMF C.75 account-level callouts.
12008
+ *
11749
12009
  */
11750
12010
  export const listAccountCallouts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAccountCalloutsData, ThrowOnError>) => {
11751
12011
  return (options?.client ?? client).get<ListAccountCalloutsResponse, ListAccountCalloutsError, ThrowOnError>({
@@ -11756,7 +12016,10 @@ export const listAccountCallouts = <ThrowOnError extends boolean = false>(option
11756
12016
 
11757
12017
  /**
11758
12018
  * Add account callouts
12019
+ * Creates callouts and attaches them at account level in Google Ads so they can show on ads across all campaigns.
12020
+ *
11759
12021
  * Creates assets and customer_asset links for this Google customer. Links apply at account level.
12022
+ *
11760
12023
  */
11761
12024
  export const addAccountCallouts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AddAccountCalloutsData, ThrowOnError>) => {
11762
12025
  return (options?.client ?? client).post<AddAccountCalloutsResponse, AddAccountCalloutsError, ThrowOnError>({
@@ -11767,7 +12030,10 @@ export const addAccountCallouts = <ThrowOnError extends boolean = false>(options
11767
12030
 
11768
12031
  /**
11769
12032
  * Update account callouts
11770
- * Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
12033
+ * Edits existing Google Ads callouts in place; the change applies everywhere that callout is used.
12034
+ *
12035
+ * Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
12036
+ *
11771
12037
  */
11772
12038
  export const updateAccountCallouts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAccountCalloutsData, ThrowOnError>) => {
11773
12039
  return (options?.client ?? client).put<UpdateAccountCalloutsResponse, UpdateAccountCalloutsError, ThrowOnError>({
@@ -11778,7 +12044,10 @@ export const updateAccountCallouts = <ThrowOnError extends boolean = false>(opti
11778
12044
 
11779
12045
  /**
11780
12046
  * Remove account callout
12047
+ * Detaches a callout from the Google Ads account level, leaving it on any campaigns or ad groups that still use it.
12048
+ *
11781
12049
  * Removes the customer_asset attachment only. The underlying shared asset and its campaign or ad-group attachments remain. Fields go in the query string. A JSON body with the same fields is also accepted and, when sent, the query string is ignored.
12050
+ *
11782
12051
  */
11783
12052
  export const removeAccountCallout = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAccountCalloutData, ThrowOnError>) => {
11784
12053
  return (options?.client ?? client).delete<RemoveAccountCalloutResponse, RemoveAccountCalloutError, ThrowOnError>({
@@ -11789,7 +12058,10 @@ export const removeAccountCallout = <ThrowOnError extends boolean = false>(optio
11789
12058
 
11790
12059
  /**
11791
12060
  * List account sitelinks
11792
- * Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
12061
+ * Lists the sitelinks attached at account level in Google Ads, which can show on ads across all campaigns.
12062
+ *
12063
+ * Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
12064
+ *
11793
12065
  */
11794
12066
  export const listAccountSitelinks = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAccountSitelinksData, ThrowOnError>) => {
11795
12067
  return (options?.client ?? client).get<ListAccountSitelinksResponse, ListAccountSitelinksError, ThrowOnError>({
@@ -11800,7 +12072,10 @@ export const listAccountSitelinks = <ThrowOnError extends boolean = false>(optio
11800
12072
 
11801
12073
  /**
11802
12074
  * Add account sitelinks
12075
+ * Creates sitelinks and attaches them at account level in Google Ads so they can show on ads across all campaigns.
12076
+ *
11803
12077
  * Creates assets and customer_asset links for this Google customer. Links apply at account level.
12078
+ *
11804
12079
  */
11805
12080
  export const addAccountSitelinks = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AddAccountSitelinksData, ThrowOnError>) => {
11806
12081
  return (options?.client ?? client).post<AddAccountSitelinksResponse, AddAccountSitelinksError, ThrowOnError>({
@@ -11811,7 +12086,10 @@ export const addAccountSitelinks = <ThrowOnError extends boolean = false>(option
11811
12086
 
11812
12087
  /**
11813
12088
  * Update account sitelinks
11814
- * Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
12089
+ * Edits existing Google Ads sitelinks in place; the change applies everywhere that sitelink is used.
12090
+ *
12091
+ * Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
12092
+ *
11815
12093
  */
11816
12094
  export const updateAccountSitelinks = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAccountSitelinksData, ThrowOnError>) => {
11817
12095
  return (options?.client ?? client).put<UpdateAccountSitelinksResponse, UpdateAccountSitelinksError, ThrowOnError>({
@@ -11822,7 +12100,10 @@ export const updateAccountSitelinks = <ThrowOnError extends boolean = false>(opt
11822
12100
 
11823
12101
  /**
11824
12102
  * Remove account sitelink
12103
+ * Detaches a sitelink from the Google Ads account level, leaving it on any campaigns or ad groups that still use it.
12104
+ *
11825
12105
  * Removes the customer_asset attachment only. The underlying shared asset and its campaign or ad-group attachments remain. Fields go in the query string. A JSON body with the same fields is also accepted and, when sent, the query string is ignored.
12106
+ *
11826
12107
  */
11827
12108
  export const removeAccountSitelink = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAccountSitelinkData, ThrowOnError>) => {
11828
12109
  return (options?.client ?? client).delete<RemoveAccountSitelinkResponse, RemoveAccountSitelinkError, ThrowOnError>({
@@ -11833,7 +12114,10 @@ export const removeAccountSitelink = <ThrowOnError extends boolean = false>(opti
11833
12114
 
11834
12115
  /**
11835
12116
  * List account snippets
11836
- * Lists directly attached Google assets. Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
12117
+ * Lists the structured snippets attached at account level in Google Ads, which can show on ads across all campaigns.
12118
+ *
12119
+ * Fresh reads are cached for 10 minutes; exhausted quota may return the last successful read with stale=true. Inherited assets are not included.
12120
+ *
11837
12121
  */
11838
12122
  export const listAccountStructuredSnippets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAccountStructuredSnippetsData, ThrowOnError>) => {
11839
12123
  return (options?.client ?? client).get<ListAccountStructuredSnippetsResponse, ListAccountStructuredSnippetsError, ThrowOnError>({
@@ -11844,7 +12128,10 @@ export const listAccountStructuredSnippets = <ThrowOnError extends boolean = fal
11844
12128
 
11845
12129
  /**
11846
12130
  * Add account snippets
12131
+ * Creates structured snippets and attaches them at account level in Google Ads so they can show on ads across all campaigns.
12132
+ *
11847
12133
  * Creates assets and customer_asset links for this Google customer. Links apply at account level.
12134
+ *
11848
12135
  */
11849
12136
  export const addAccountStructuredSnippets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AddAccountStructuredSnippetsData, ThrowOnError>) => {
11850
12137
  return (options?.client ?? client).post<AddAccountStructuredSnippetsResponse, AddAccountStructuredSnippetsError, ThrowOnError>({
@@ -11855,7 +12142,10 @@ export const addAccountStructuredSnippets = <ThrowOnError extends boolean = fals
11855
12142
 
11856
12143
  /**
11857
12144
  * Update account snippets
11858
- * Edits existing Google assets in place. Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
12145
+ * Edits existing Google Ads structured snippets in place; the change applies everywhere that snippet is used.
12146
+ *
12147
+ * Send updates with assetResourceName and the fields to change. An asset is shared: changes affect every attachment using it. Omitted fields stay unchanged. The operation consumes the Google operations budget and invalidates affected cached lists.
12148
+ *
11859
12149
  */
11860
12150
  export const updateAccountStructuredSnippets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAccountStructuredSnippetsData, ThrowOnError>) => {
11861
12151
  return (options?.client ?? client).put<UpdateAccountStructuredSnippetsResponse, UpdateAccountStructuredSnippetsError, ThrowOnError>({
@@ -11866,7 +12156,10 @@ export const updateAccountStructuredSnippets = <ThrowOnError extends boolean = f
11866
12156
 
11867
12157
  /**
11868
12158
  * Remove account snippet
12159
+ * Detaches a structured snippet from the Google Ads account level, leaving it on any campaigns or ad groups that still use it.
12160
+ *
11869
12161
  * Removes the customer_asset attachment only. The underlying shared asset and its campaign or ad-group attachments remain. Fields go in the query string. A JSON body with the same fields is also accepted and, when sent, the query string is ignored.
12162
+ *
11870
12163
  */
11871
12164
  export const removeAccountStructuredSnippet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAccountStructuredSnippetData, ThrowOnError>) => {
11872
12165
  return (options?.client ?? client).delete<RemoveAccountStructuredSnippetResponse, RemoveAccountStructuredSnippetError, ThrowOnError>({
@@ -11877,6 +12170,8 @@ export const removeAccountStructuredSnippet = <ThrowOnError extends boolean = fa
11877
12170
 
11878
12171
  /**
11879
12172
  * Get manager account hierarchy
12173
+ * Shows the Google Ads manager (MCC) and client account tree for a connection, including pending invitations and link status.
12174
+ *
11880
12175
  * Live manager (MCC) and client tree for a Google Ads connection. Starts from every customer the Google user behind the connection can access directly and walks each tree to any depth with `customer_client`, then reads each manager's own client links so every client carries its direct parent, the `managerLinkId` and the link status. Invitations a manager sent that the client has not accepted yet appear as clients with `linkStatus: PENDING` (Google returns no name or currency for them). Refused, canceled and ended links are history and are omitted. `managerLinks` on a root lists the managers linked to that account, including invitations it can still accept with PATCH /v1/ads/accounts/manager-links. A directly accessible account that is also nested in another tree appears only once, inside that tree. `directCustomers` lists every account the Google user accesses directly (the ones this connection can accept or decline invitations for) with their pending invitations, including accounts that are also nested in a tree. Customers Google refuses to read (for example a cancelled account) are listed in `unavailable` with Google's reason instead of failing the call. Up to 50 roots and 50 managers per root are read; `truncated` is true when more exist. Cached for 10 minutes per connection; the response carries `cachedAt` and `stale`. When the connection is scoped to specific ad accounts, client accounts outside that scope are hidden (managers stay visible).
11881
12176
  */
11882
12177
  export const getAdAccountHierarchy = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdAccountHierarchyData, ThrowOnError>) => {
@@ -11888,6 +12183,8 @@ export const getAdAccountHierarchy = <ThrowOnError extends boolean = false>(opti
11888
12183
 
11889
12184
  /**
11890
12185
  * Invite a client account to a manager
12186
+ * Invites a Google Ads account to be managed by one of your manager accounts; the link stays pending until the client accepts.
12187
+ *
11891
12188
  * Sends a manager-to-client link invitation from `managerCustomerId` to `clientCustomerId` (Google's CustomerClientLinkService). The manager must be one the connection's Google user reaches, directly or under another manager (see GET /v1/ads/accounts/hierarchy); the client can be any Google Ads account. The link stays `PENDING` until someone with access to the client accepts it in Google Ads or through PATCH on this path. Not idempotent: Google refuses a second invitation while one is pending. Send `validateOnly: true` to have Google check the request without sending anything.
11892
12189
  */
11893
12190
  export const inviteAdAccountToManager = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<InviteAdAccountToManagerData, ThrowOnError>) => {
@@ -11899,6 +12196,8 @@ export const inviteAdAccountToManager = <ThrowOnError extends boolean = false>(o
11899
12196
 
11900
12197
  /**
11901
12198
  * Accept, decline, cancel or end a manager link
12199
+ * Accepts, declines or cancels a Google Ads manager invitation, or ends an existing manager-client link.
12200
+ *
11902
12201
  * Changes one manager-client link, identified by `managerCustomerId`, `clientCustomerId` and `managerLinkId` (all from GET /v1/ads/accounts/hierarchy). `accept` and `decline` answer a pending invitation as the client (CustomerManagerLinkService), so the connection's Google user needs direct access to the client account; access through a manager is not enough, because the link does not exist yet. `cancel` withdraws a pending invitation and `unlink` ends an active link, both as the manager (CustomerClientLinkService). Send `validateOnly: true` to have Google check the change without applying it.
11903
12202
  */
11904
12203
  export const updateAdAccountManagerLink = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdAccountManagerLinkData, ThrowOnError>) => {
@@ -11910,8 +12209,10 @@ export const updateAdAccountManagerLink = <ThrowOnError extends boolean = false>
11910
12209
 
11911
12210
  /**
11912
12211
  * Ad account users
11913
- * People of a business portfolio assigned to a Meta ad account, with their tasks.
12212
+ * Lists the people in a business portfolio assigned to a Meta ad account, with what each can do.
12213
+ *
11914
12214
  * Ids are business-scoped user ids (see `GET /v1/ads/businesses/users`).
12215
+ *
11915
12216
  */
11916
12217
  export const listAdAccountUsers = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdAccountUsersData, ThrowOnError>) => {
11917
12218
  return (options?.client ?? client).get<ListAdAccountUsersResponse, ListAdAccountUsersError, ThrowOnError>({
@@ -11922,9 +12223,12 @@ export const listAdAccountUsers = <ThrowOnError extends boolean = false>(options
11922
12223
 
11923
12224
  /**
11924
12225
  * Assign a user to an ad account
11925
- * Gives a person of the portfolio tasks on the ad account. `MANAGE` is admin, `ADVERTISE`
12226
+ * Gives a person in your business portfolio access to a Meta ad account, as admin, advertiser, analyst or draft editor.
12227
+ *
12228
+ * `MANAGE` is admin, `ADVERTISE`
11926
12229
  * creates and edits ads, `ANALYZE` reads reports, `DRAFT` edits drafts only. Assigning an
11927
12230
  * already assigned user replaces their task set.
12231
+ *
11928
12232
  */
11929
12233
  export const assignAdAccountUser = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AssignAdAccountUserData, ThrowOnError>) => {
11930
12234
  return (options?.client ?? client).post<AssignAdAccountUserResponse, AssignAdAccountUserError, ThrowOnError>({
@@ -11935,6 +12239,8 @@ export const assignAdAccountUser = <ThrowOnError extends boolean = false>(option
11935
12239
 
11936
12240
  /**
11937
12241
  * Remove a user from an ad account
12242
+ * Removes a person's access to a Meta ad account assigned through your business portfolio.
12243
+ *
11938
12244
  */
11939
12245
  export const removeAdAccountUser = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAdAccountUserData, ThrowOnError>) => {
11940
12246
  return (options?.client ?? client).delete<RemoveAdAccountUserResponse, RemoveAdAccountUserError, ThrowOnError>({
@@ -11945,6 +12251,8 @@ export const removeAdAccountUser = <ThrowOnError extends boolean = false>(option
11945
12251
 
11946
12252
  /**
11947
12253
  * Ad account finances
12254
+ * Shows a Meta ad account's balance, total spend, spend cap and funding source.
12255
+ *
11948
12256
  * Finances of one Meta ad account: prepaid `balance`, lifetime `amountSpent`, account
11949
12257
  * `spendCap` (null = no cap) and the `fundingSource`. Money values are converted from
11950
12258
  * Meta's minor units to whole units of `currency`.
@@ -11958,6 +12266,8 @@ export const getAdAccountFinance = <ThrowOnError extends boolean = false>(option
11958
12266
 
11959
12267
  /**
11960
12268
  * Read an ad account's campaigns and ad sets live
12269
+ * Reads an ad account's campaigns and ad sets straight from Meta or TikTok, so checks like budget limits see current values.
12270
+ *
11961
12271
  * Reads the campaigns and ad sets of one Meta ad account or TikTok advertiser **live from
11962
12272
  * the platform**, so it is cheap enough to run before every write: for example a
11963
12273
  * per-ad-account spend ceiling that must see the current daily / lifetime budget rather
@@ -12002,6 +12312,8 @@ export const getAdAccountLiveEntities = <ThrowOnError extends boolean = false>(o
12002
12312
 
12003
12313
  /**
12004
12314
  * Create Meta ad account
12315
+ * Creates a new Meta ad account in the user's own business portfolio (a payment method must then be added in Ads Manager).
12316
+ *
12005
12317
  * Creates a durable Meta ad account in the end user's own business portfolio using
12006
12318
  * their connected Meta Ads token. Requires an active metaads accountId, Ads access,
12007
12319
  * business_management permission and business admin access. Discover portfolios with
@@ -12041,6 +12353,8 @@ export const createAdAccount = <ThrowOnError extends boolean = false>(options: O
12041
12353
 
12042
12354
  /**
12043
12355
  * List ad accounts
12356
+ * Lists the ad accounts a connection can manage, such as Meta ad accounts, TikTok advertisers or Google Ads customers.
12357
+ *
12044
12358
  * Returns the platform ad accounts available for the given account (e.g. Meta ad
12045
12359
  * accounts, TikTok advertiser IDs, Google Ads customer IDs).
12046
12360
  * Meta business-login accounts use their own system-user token. Fresh Meta discovery
@@ -12066,8 +12380,9 @@ export const listAdAccounts = <ThrowOnError extends boolean = false>(options: Op
12066
12380
 
12067
12381
  /**
12068
12382
  * Update ad account settings
12069
- * Updates a Meta ad account in place: its name, its account-level spend cap, and its
12070
- * default DSA beneficiary and payor. Pass any combination of fields.
12383
+ * Changes a Meta ad account's name, spend cap or default EU DSA beneficiary and payor.
12384
+ *
12385
+ * Pass any combination of fields.
12071
12386
  *
12072
12387
  * **Spend cap.** `spendCap` is the total the account may spend before Meta pauses every
12073
12388
  * campaign in it, in whole units of the account currency. `spendCap: null` removes the
@@ -12110,6 +12425,8 @@ export const updateAdAccount = <ThrowOnError extends boolean = false>(options: O
12110
12425
 
12111
12426
  /**
12112
12427
  * Get ad account DSA defaults
12428
+ * Shows the default EU DSA beneficiary and payor set on a Meta ad account.
12429
+ *
12113
12430
  * Returns the default DSA beneficiary and payor currently set on a Meta ad account,
12114
12431
  * whether they were set via `PATCH /v1/ads/accounts` or in Meta Ads Manager. Fields
12115
12432
  * are omitted when no default is configured. Meta accounts only.
@@ -12124,6 +12441,8 @@ export const getDsaDefaults = <ThrowOnError extends boolean = false>(options: Op
12124
12441
 
12125
12442
  /**
12126
12443
  * Get DSA recommendations
12444
+ * Suggests beneficiary and payor names for a Meta ad account's EU DSA disclosures, for your user to pick from.
12445
+ *
12127
12446
  * Returns Meta's suggested beneficiary/payor names for an ad account, derived by Meta
12128
12447
  * from the account's recent activity. Useful for prefilling `dsaBeneficiary`/`dsaPayor`
12129
12448
  * inputs, or the defaults sent to `PATCH /v1/ads/accounts`, in your own UI.
@@ -12143,8 +12462,9 @@ export const getDsaRecommendations = <ThrowOnError extends boolean = false>(opti
12143
12462
 
12144
12463
  /**
12145
12464
  * Boost post as ad
12146
- * Creates a paid ad from an existing published post, keeping the post's
12147
- * engagement. By default it provisions the whole hierarchy (campaign, ad
12465
+ * Turns an already published post into a paid ad that keeps the post's likes and comments, creating the campaign around it.
12466
+ *
12467
+ * By default it provisions the whole hierarchy (campaign, ad
12148
12468
  * set, ad).
12149
12469
  *
12150
12470
  * **Attach shape (Meta).** Send `adSetId` to put the ad under an EXISTING
@@ -12200,7 +12520,10 @@ export const boostPost = <ThrowOnError extends boolean = false>(options: Options
12200
12520
 
12201
12521
  /**
12202
12522
  * List Performance Max asset groups
12203
- * Read Performance Max asset groups and their linked text, image and YouTube assets. campaignId is the platform campaign id returned by creation or the campaign list. The campaign must be visible to the caller. Uses a 10-minute cache, with the last successful response served as stale when Google quota is exhausted. Removed groups and asset links are excluded. Campaign-level brand assets on campaigns with brand guidelines enabled are not included.
12523
+ * Lists a Performance Max campaign's asset groups with their linked text, image and YouTube assets.
12524
+ *
12525
+ * campaignId is the platform campaign id returned by creation or the campaign list. The campaign must be visible to the caller. Uses a 10-minute cache, with the last successful response served as stale when Google quota is exhausted. Removed groups and asset links are excluded. Campaign-level brand assets on campaigns with brand guidelines enabled are not included.
12526
+ *
12204
12527
  */
12205
12528
  export const listGoogleAssetGroups = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListGoogleAssetGroupsData, ThrowOnError>) => {
12206
12529
  return (options?.client ?? client).get<ListGoogleAssetGroupsResponse, ListGoogleAssetGroupsError, ThrowOnError>({
@@ -12211,7 +12534,10 @@ export const listGoogleAssetGroups = <ThrowOnError extends boolean = false>(opti
12211
12534
 
12212
12535
  /**
12213
12536
  * Create a Performance Max asset group
12214
- * Add an asset group to an existing Performance Max campaign. The group, any new assets, their links and an optional listing-group tree are created in one atomic request, so Google checks the asset minimums (for non-retail campaigns) against the whole set. Created PAUSED unless status is ENABLED. validateOnly: true runs Google's validation without creating anything.
12537
+ * Adds an asset group with its assets and optional product targeting to a Performance Max campaign, or just validates it without creating anything.
12538
+ *
12539
+ * The group, any new assets, their links and an optional listing-group tree are created in one atomic request, so Google checks the asset minimums (for non-retail campaigns) against the whole set. Created PAUSED unless status is ENABLED. validateOnly: true runs Google's validation without creating anything.
12540
+ *
12215
12541
  */
12216
12542
  export const createGoogleAssetGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateGoogleAssetGroupData, ThrowOnError>) => {
12217
12543
  return (options?.client ?? client).post<CreateGoogleAssetGroupResponse, CreateGoogleAssetGroupError, ThrowOnError>({
@@ -12222,7 +12548,10 @@ export const createGoogleAssetGroup = <ThrowOnError extends boolean = false>(opt
12222
12548
 
12223
12549
  /**
12224
12550
  * Get a Performance Max asset group
12551
+ * Shows one Performance Max asset group with its linked assets, ad strength, status and product targeting tree.
12552
+ *
12225
12553
  * One asset group with its linked assets, ad strength, primary status and listing-group tree. Uses a 10-minute cache, served stale when Google quota is exhausted; any write below clears it.
12554
+ *
12226
12555
  */
12227
12556
  export const getGoogleAssetGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGoogleAssetGroupData, ThrowOnError>) => {
12228
12557
  return (options?.client ?? client).get<GetGoogleAssetGroupResponse, GetGoogleAssetGroupError, ThrowOnError>({
@@ -12233,7 +12562,10 @@ export const getGoogleAssetGroup = <ThrowOnError extends boolean = false>(option
12233
12562
 
12234
12563
  /**
12235
12564
  * Update a Performance Max asset group
12565
+ * Changes a Performance Max asset group's name, status, final URLs or display paths.
12566
+ *
12236
12567
  * Change the name, status (ENABLED or PAUSED), final URLs or display paths. Only the fields sent are written; null on path1 or path2 clears it. Change assets with the /assets endpoint and product targeting with /listing-group-filters. validateOnly: true validates without writing.
12568
+ *
12237
12569
  */
12238
12570
  export const updateGoogleAssetGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateGoogleAssetGroupData, ThrowOnError>) => {
12239
12571
  return (options?.client ?? client).patch<UpdateGoogleAssetGroupResponse, UpdateGoogleAssetGroupError, ThrowOnError>({
@@ -12244,7 +12576,10 @@ export const updateGoogleAssetGroup = <ThrowOnError extends boolean = false>(opt
12244
12576
 
12245
12577
  /**
12246
12578
  * Remove a Performance Max asset group
12579
+ * Permanently removes an asset group from a Performance Max campaign (this cannot be undone).
12580
+ *
12247
12581
  * Removes the asset group on Google (status REMOVED, not reversible). Pass validateOnly=true to validate without removing.
12582
+ *
12248
12583
  */
12249
12584
  export const removeGoogleAssetGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveGoogleAssetGroupData, ThrowOnError>) => {
12250
12585
  return (options?.client ?? client).delete<RemoveGoogleAssetGroupResponse, RemoveGoogleAssetGroupError, ThrowOnError>({
@@ -12255,7 +12590,10 @@ export const removeGoogleAssetGroup = <ThrowOnError extends boolean = false>(opt
12255
12590
 
12256
12591
  /**
12257
12592
  * Link or unlink asset group assets
12593
+ * Links new or existing assets to a Performance Max asset group and unlinks others in one change, keeping unlinked assets in the account library.
12594
+ *
12258
12595
  * Link existing assets or new content to the asset group, and unlink assets, in one atomic request. Links are applied before unlinks, so swapping the last asset of a role does not trip Google's per-role minimum. Unlinking removes the link only; the asset stays in the account library. validateOnly: true validates without writing.
12596
+ *
12259
12597
  */
12260
12598
  export const editGoogleAssetGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<EditGoogleAssetGroupAssetsData, ThrowOnError>) => {
12261
12599
  return (options?.client ?? client).post<EditGoogleAssetGroupAssetsResponse, EditGoogleAssetGroupAssetsError, ThrowOnError>({
@@ -12266,7 +12604,10 @@ export const editGoogleAssetGroupAssets = <ThrowOnError extends boolean = false>
12266
12604
 
12267
12605
  /**
12268
12606
  * Replace an asset group's listing-group tree
12607
+ * Replaces the product targeting tree of a Performance Max retail asset group; only works on campaigns linked to Merchant Center.
12608
+ *
12269
12609
  * Replace the product (listing-group) tree of a Performance Max retail asset group. The current tree is removed and the new one created in one atomic request. Read the current tree with GET on the asset group. Requires a campaign linked to Merchant Center; other campaigns return 400 LISTING_SOURCE_NOT_ALLOWED from Google. validateOnly: true validates without writing.
12610
+ *
12270
12611
  */
12271
12612
  export const replaceGoogleListingGroupFilters = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ReplaceGoogleListingGroupFiltersData, ThrowOnError>) => {
12272
12613
  return (options?.client ?? client).put<ReplaceGoogleListingGroupFiltersResponse, ReplaceGoogleListingGroupFiltersError, ThrowOnError>({
@@ -12277,6 +12618,8 @@ export const replaceGoogleListingGroupFilters = <ThrowOnError extends boolean =
12277
12618
 
12278
12619
  /**
12279
12620
  * Create standalone ad
12621
+ * Creates a paid ad with your own creative, building the campaign and ad set it needs or adding it to existing ones.
12622
+ *
12280
12623
  * Create a paid ad with custom creative across Meta, Google Ads, Pinterest, TikTok, X, LinkedIn, and OpenAI Ads (ChatGPT Ads).
12281
12624
  *
12282
12625
  * Google Performance Max: set `campaignType: "pmax"` and supply `assetGroup` with
@@ -12342,6 +12685,8 @@ export const createStandaloneAd = <ThrowOnError extends boolean = false>(options
12342
12685
 
12343
12686
  /**
12344
12687
  * List submitted leads
12688
+ * Lists the leads submitted through your Meta or LinkedIn lead forms, newest first.
12689
+ *
12345
12690
  * Returns submitted Lead Gen leads for your team, newest-first, with keyset pagination on `cursor`. For Meta (default) leads are served from the persisted cache, ingested in real time from the `leadgen` webhook. When `accountId` is a LinkedIn ads account, leads are fetched live from LinkedIn's `leadFormResponses` (LinkedIn has no webhook and enforces 90-day retention, so nothing is persisted) and `adAccountId` is required. Reading LinkedIn responses needs the `r_marketing_leadgen_automation` permission; accounts connected before it was added must reconnect. Requires the Ads add-on.
12346
12691
  *
12347
12692
  */
@@ -12354,7 +12699,9 @@ export const listLeads = <ThrowOnError extends boolean = false>(options?: Option
12354
12699
 
12355
12700
  /**
12356
12701
  * List lead forms
12357
- * Lists the Lead Gen forms owned by the account. Meta: forms on the connected Facebook Page. Pass either the `metaads` ads connection (the Page is taken from the Facebook account linked to it) or the Facebook account itself. LinkedIn: forms owned by the ad account's Company Page. Pass `adAccountId` (LinkedIn forms are org-owned). Requires the Ads add-on.
12702
+ * Lists the lead forms on a Facebook Page or LinkedIn Company Page.
12703
+ *
12704
+ * Meta: forms on the connected Facebook Page. Pass either the `metaads` ads connection (the Page is taken from the Facebook account linked to it) or the Facebook account itself. LinkedIn: forms owned by the ad account's Company Page. Pass `adAccountId` (LinkedIn forms are org-owned). Requires the Ads add-on.
12358
12705
  *
12359
12706
  */
12360
12707
  export const listLeadForms = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListLeadFormsData, ThrowOnError>) => {
@@ -12366,7 +12713,9 @@ export const listLeadForms = <ThrowOnError extends boolean = false>(options: Opt
12366
12713
 
12367
12714
  /**
12368
12715
  * Create a lead form
12369
- * Creates a Lead Gen form. The form content goes inside `platformSpecificData` for both platforms (the shape is selected by the accountId's platform). Meta: created on the connected Facebook Page (POST /{page-id}/leadgen_forms), where `accountId` may be the `metaads` ads connection (its Page comes from the Facebook account linked to the same profile) or the Facebook account itself; the old top-level Meta fields (questions, thankYou*, contextCard, …) are DEPRECATED but still accepted while platformSpecificData is absent; mixing both shapes is a 400. LinkedIn: created on the ad account's Company Page. NOT idempotent: a retry creates a second form. Meta prefilled question types (EMAIL, PHONE, FULL_NAME, …) must omit label/key; CUSTOM questions require both. LinkedIn exposes only free-text and multiple-choice questions via API (prefilled-from-profile fields are Campaign Manager UI-only). Requires the Ads add-on.
12716
+ * Creates a lead form on a Facebook Page or LinkedIn Company Page to collect contact details from ads.
12717
+ *
12718
+ * The form content goes inside `platformSpecificData` for both platforms (the shape is selected by the accountId's platform). Meta: created on the connected Facebook Page (POST /{page-id}/leadgen_forms), where `accountId` may be the `metaads` ads connection (its Page comes from the Facebook account linked to the same profile) or the Facebook account itself; the old top-level Meta fields (questions, thankYou*, contextCard, …) are DEPRECATED but still accepted while platformSpecificData is absent; mixing both shapes is a 400. LinkedIn: created on the ad account's Company Page. NOT idempotent: a retry creates a second form. Meta prefilled question types (EMAIL, PHONE, FULL_NAME, …) must omit label/key; CUSTOM questions require both. LinkedIn exposes only free-text and multiple-choice questions via API (prefilled-from-profile fields are Campaign Manager UI-only). Requires the Ads add-on.
12370
12719
  *
12371
12720
  */
12372
12721
  export const createLeadForm = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateLeadFormData, ThrowOnError>) => {
@@ -12378,6 +12727,8 @@ export const createLeadForm = <ThrowOnError extends boolean = false>(options: Op
12378
12727
 
12379
12728
  /**
12380
12729
  * Get a lead form
12730
+ * Shows a lead form in full, including its questions and thank-you page.
12731
+ *
12381
12732
  * Returns the full form, including the thank-you page, so a form can be diffed against what was created. Meta forms are scoped to the Page the accountId manages: a form on any other Page is a 404, never a read.
12382
12733
  *
12383
12734
  */
@@ -12390,7 +12741,10 @@ export const getLeadForm = <ThrowOnError extends boolean = false>(options: Optio
12390
12741
 
12391
12742
  /**
12392
12743
  * Archive a lead form
12744
+ * Archives a lead form so it can no longer be used (neither Meta nor LinkedIn allows deleting one).
12745
+ *
12393
12746
  * Neither platform hard-deletes a form; this archives it (Meta status=ARCHIVED; LinkedIn state=ARCHIVED via PARTIAL_UPDATE). Meta forms must belong to the Page the accountId manages.
12747
+ *
12394
12748
  */
12395
12749
  export const archiveLeadForm = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ArchiveLeadFormData, ThrowOnError>) => {
12396
12750
  return (options?.client ?? client).delete<ArchiveLeadFormResponse, ArchiveLeadFormError, ThrowOnError>({
@@ -12401,7 +12755,9 @@ export const archiveLeadForm = <ThrowOnError extends boolean = false>(options: O
12401
12755
 
12402
12756
  /**
12403
12757
  * List leads for a single form
12404
- * Returns leads for one form. Serves persisted leads (ingested via the leadgen webhook) when available, falling back to a live Graph read. Accepts a Facebook account or a metaads business-login account with leads_retrieval access to the form; the latter uses its system-user token without a posting parent.
12758
+ * Lists the leads submitted through one Meta lead form.
12759
+ *
12760
+ * Serves persisted leads (ingested via the leadgen webhook) when available, falling back to a live Graph read. Accepts a Facebook account or a metaads business-login account with leads_retrieval access to the form; the latter uses its system-user token without a posting parent.
12405
12761
  *
12406
12762
  */
12407
12763
  export const listFormLeads = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListFormLeadsData, ThrowOnError>) => {
@@ -12413,6 +12769,8 @@ export const listFormLeads = <ThrowOnError extends boolean = false>(options: Opt
12413
12769
 
12414
12770
  /**
12415
12771
  * Create a test lead
12772
+ * Submits a test lead to a Meta lead form so you can check your lead retrieval without running ads.
12773
+ *
12416
12774
  * Submits a test lead against the form (POST /{form-id}/test_leads) to exercise retrieval without waiting for real ad impressions. Meta allows one test lead per form at a time.
12417
12775
  *
12418
12776
  */
@@ -12425,6 +12783,8 @@ export const createTestLead = <ThrowOnError extends boolean = false>(options: Op
12425
12783
 
12426
12784
  /**
12427
12785
  * Delete a test lead
12786
+ * Deletes the test lead on a Meta lead form so you can submit a new one (Meta allows only one at a time).
12787
+ *
12428
12788
  * Removes a test lead created for the form (DELETE /{leadgen_id}), so a new one can be submitted: Meta keeps one test lead per form and refuses a second until the first is gone. The same test lead appears in Meta's Lead Ads Testing Tool. Meta only deletes test leads; a real lead is refused.
12429
12789
  *
12430
12790
  */
@@ -12437,10 +12797,12 @@ export const deleteTestLead = <ThrowOnError extends boolean = false>(options: Op
12437
12797
 
12438
12798
  /**
12439
12799
  * Upload an ad image from base64
12440
- * Uploads raw image bytes to the Meta ad account's image library, for callers whose
12441
- * creatives aren't hosted at a public URL. Returns the image `hash` (Meta's identifier for
12800
+ * Uploads an image file to a Meta ad account's library, for creatives that are not hosted at a public URL.
12801
+ *
12802
+ * Returns the image `hash` (Meta's identifier for
12442
12803
  * the asset) and the Meta-hosted `url`, which can be used directly as `imageUrl` on the
12443
12804
  * create endpoints. Max 30 MB decoded.
12805
+ *
12444
12806
  */
12445
12807
  export const uploadAdImage = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UploadAdImageData, ThrowOnError>) => {
12446
12808
  return (options?.client ?? client).post<UploadAdImageResponse, UploadAdImageError, ThrowOnError>({
@@ -12451,6 +12813,8 @@ export const uploadAdImage = <ThrowOnError extends boolean = false>(options: Opt
12451
12813
 
12452
12814
  /**
12453
12815
  * Ad image library
12816
+ * Lists the images in a Meta ad account's library so you can reuse one in a creative.
12817
+ *
12454
12818
  * Lists the ad account's image library (Meta's `/act_X/adimages`), rows returned verbatim.
12455
12819
  * The default projection covers hash, url, name, dimensions and status; `fields` is a
12456
12820
  * raw-passthrough override. Any `hash` here is reusable wherever Meta accepts
@@ -12465,6 +12829,8 @@ export const listAdImages = <ThrowOnError extends boolean = false>(options: Opti
12465
12829
 
12466
12830
  /**
12467
12831
  * Upload an ad video
12832
+ * Uploads a video to a Meta ad account from a URL or file, so you can preview it or use it in ads before any ad exists.
12833
+ *
12468
12834
  * Standalone ad-video upload (parallel to POST /v1/ads/images), so a video creative can
12469
12835
  * be rendered via POST /v1/ads/preview or attached via `video.id` on POST /v1/ads/create
12470
12836
  * before an ad exists.
@@ -12494,6 +12860,8 @@ export const uploadAdVideo = <ThrowOnError extends boolean = false>(options: Opt
12494
12860
 
12495
12861
  /**
12496
12862
  * Ad video library
12863
+ * Lists the videos in a Meta ad account's library, including ones uploaded elsewhere, so you can reuse one across ads.
12864
+ *
12497
12865
  * Lists the ad account's video library (Meta's `/act_X/advideos`), rows returned verbatim.
12498
12866
  * The default projection covers id, title, status, poster frames, length and `source` (the
12499
12867
  * playable MP4); `fields` is a raw-passthrough override. Any `id` here is reusable as
@@ -12519,6 +12887,8 @@ export const listAdVideos = <ThrowOnError extends boolean = false>(options: Opti
12519
12887
 
12520
12888
  /**
12521
12889
  * Get ad video processing status
12890
+ * Checks whether an uploaded Meta ad video has finished processing and is ready to use in an ad.
12891
+ *
12522
12892
  * Reads a video's processing state live from Meta (`GET /{video-id}?fields=status`).
12523
12893
  * Poll this after `POST /v1/ads/videos` with `async: true` until `status` is `ready`;
12524
12894
  * the video is only usable as `video.id` on the create endpoints from then on.
@@ -12537,12 +12907,15 @@ export const getAdVideoStatus = <ThrowOnError extends boolean = false>(options:
12537
12907
 
12538
12908
  /**
12539
12909
  * Delete an ad video
12540
- * Removes a video from the ad account's video library. Meta's canonical
12910
+ * Removes a video from a Meta ad account's video library.
12911
+ *
12912
+ * Meta's canonical
12541
12913
  * `DELETE /{video_id}` fails with code 10 / subcode 1363055 for videos uploaded via
12542
12914
  * `/act_X/advideos` even with `ads_management`; this endpoint uses the working
12543
12915
  * account-scoped shape `DELETE /act_X/advideos?video_id=<id>` and returns Meta's
12544
12916
  * `{success: true}` verbatim. Deleting a video that lives in a different ad account,
12545
12917
  * or that Meta has already removed, returns Meta's error verbatim as a 4xx.
12918
+ *
12546
12919
  */
12547
12920
  export const deleteAdVideo = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdVideoData, ThrowOnError>) => {
12548
12921
  return (options?.client ?? client).delete<DeleteAdVideoResponse, DeleteAdVideoError, ThrowOnError>({
@@ -12569,6 +12942,8 @@ export const searchAdInterests = <ThrowOnError extends boolean = false>(options:
12569
12942
 
12570
12943
  /**
12571
12944
  * Search targeting options
12945
+ * Finds targeting options by name, such as locations, interests or behaviors, and returns the ids to use in ad targeting.
12946
+ *
12572
12947
  * Resolve a human-readable query into the platform's opaque targeting ids used in
12573
12948
  * the `TargetingSpec` (`countries`/`regions`/`cities`/`zips`/`metros` geo keys, and
12574
12949
  * `interests`/`behaviors` entity ids) on `POST /v1/ads/create`,
@@ -12698,6 +13073,8 @@ export const searchAdTargeting = <ThrowOnError extends boolean = false>(options:
12698
13073
 
12699
13074
  /**
12700
13075
  * Browse targeting categories
13076
+ * Shows Meta's full tree of detailed targeting categories for an ad account, so you can browse options without a keyword.
13077
+ *
12701
13078
  * The whole Meta detailed-targeting category tree of one ad account (Meta's
12702
13079
  * `GET /act_{ad_account_id}/targetingbrowse`), as one flat list you can render as a
12703
13080
  * tree. Use it to show what can be targeted without a keyword; use
@@ -12746,7 +13123,9 @@ export const browseAdTargeting = <ThrowOnError extends boolean = false>(options:
12746
13123
 
12747
13124
  /**
12748
13125
  * Search the public Ad Library
12749
- * Competitor and market research over the public ad archives. Meta's Ad Library
13126
+ * Searches Meta's or LinkedIn's public Ad Library to see what ads other advertisers run, for competitor and market research.
13127
+ *
13128
+ * Meta's Ad Library
12750
13129
  * (`GET /ads_archive`) is searched with Zernio's own developer access, so `platform=meta` needs
12751
13130
  * no connected account at all. LinkedIn's Ad Library (`GET /rest/adLibrary`) runs on a connected
12752
13131
  * `linkedin` / `linkedinads` account, passed as `accountId`. Passing a Meta account as `accountId`
@@ -12767,6 +13146,7 @@ export const browseAdTargeting = <ThrowOnError extends boolean = false>(options:
12767
13146
  * `platforms`, `mediaType`, `languages`, `searchType`, `fields`, `since`, `until` are Meta-only;
12768
13147
  * `advertiser` is LinkedIn-only. Passing a param the account's platform does not support is a 400
12769
13148
  * naming the param.
13149
+ *
12770
13150
  */
12771
13151
  export const searchAdLibrary = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<SearchAdLibraryData, ThrowOnError>) => {
12772
13152
  return (options?.client ?? client).get<SearchAdLibraryResponse, SearchAdLibraryError, ThrowOnError>({
@@ -12777,6 +13157,8 @@ export const searchAdLibrary = <ThrowOnError extends boolean = false>(options?:
12777
13157
 
12778
13158
  /**
12779
13159
  * Estimate audience reach
13160
+ * Estimates how many people a targeting setup would reach before you create a campaign.
13161
+ *
12780
13162
  * Returns a normalized pre-flight audience-size estimate for a targeting spec,
12781
13163
  * before any campaign is created. Backed by each platform's native reach API
12782
13164
  * (Meta `delivery_estimate`, LinkedIn `audienceCounts`, X `audience_summary`,
@@ -12837,7 +13219,10 @@ export const getLinkedInSupplyForecast = <ThrowOnError extends boolean = false>(
12837
13219
 
12838
13220
  /**
12839
13221
  * List Meta product catalogs
12840
- * Lists the Meta Commerce catalogs of a business portfolio (owned + agency-shared). The business comes from `businessId`, else the ad account's owner (`adAccountId`), else the WhatsApp Business Account's owner when `accountId` is a WhatsApp connection, else the only business the Meta login can see. Reads work with scopes customers already granted.
13222
+ * Lists the Meta product catalogs a business portfolio owns or has been shared, for catalog and shopping ads.
13223
+ *
13224
+ * The business comes from `businessId`, else the ad account's owner (`adAccountId`), else the WhatsApp Business Account's owner when `accountId` is a WhatsApp connection, else the only business the Meta login can see. Reads work with scopes customers already granted.
13225
+ *
12841
13226
  */
12842
13227
  export const listAdCatalogs = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogsData, ThrowOnError>) => {
12843
13228
  return (options?.client ?? client).get<ListAdCatalogsResponse, ListAdCatalogsError, ThrowOnError>({
@@ -12848,7 +13233,10 @@ export const listAdCatalogs = <ThrowOnError extends boolean = false>(options: Op
12848
13233
 
12849
13234
  /**
12850
13235
  * Create a Meta product catalog
13236
+ * Creates a Meta product catalog that can power catalog ads, Instagram and Facebook Shops, and a WhatsApp Business catalog.
13237
+ *
12851
13238
  * Creates a Meta Commerce catalog in the business portfolio (resolved like GET). The same catalog serves Advantage+ catalog ads, Instagram/Facebook Shops and the WhatsApp Business catalog: link it to a WhatsApp number with POST /v1/whatsapp/catalogs. Needs catalog_management on the Meta login.
13239
+ *
12852
13240
  */
12853
13241
  export const createAdCatalog = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogData, ThrowOnError>) => {
12854
13242
  return (options?.client ?? client).post<CreateAdCatalogResponse, CreateAdCatalogError, ThrowOnError>({
@@ -12859,6 +13247,8 @@ export const createAdCatalog = <ThrowOnError extends boolean = false>(options: O
12859
13247
 
12860
13248
  /**
12861
13249
  * Get a product catalog
13250
+ * Shows one Meta product catalog and its details.
13251
+ *
12862
13252
  */
12863
13253
  export const getAdCatalog = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdCatalogData, ThrowOnError>) => {
12864
13254
  return (options?.client ?? client).get<GetAdCatalogResponse, GetAdCatalogError, ThrowOnError>({
@@ -12869,7 +13259,10 @@ export const getAdCatalog = <ThrowOnError extends boolean = false>(options: Opti
12869
13259
 
12870
13260
  /**
12871
13261
  * Delete a product catalog
12872
- * Deletes the catalog and every product in it on Meta. Ads and WhatsApp numbers that use it lose their catalog.
13262
+ * Deletes a Meta product catalog and all its products, removing it from any ads or WhatsApp numbers that use it.
13263
+ *
13264
+ * Ads and WhatsApp numbers that use it lose their catalog.
13265
+ *
12873
13266
  */
12874
13267
  export const deleteAdCatalog = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdCatalogData, ThrowOnError>) => {
12875
13268
  return (options?.client ?? client).delete<DeleteAdCatalogResponse, DeleteAdCatalogError, ThrowOnError>({
@@ -12880,7 +13273,10 @@ export const deleteAdCatalog = <ThrowOnError extends boolean = false>(options: O
12880
13273
 
12881
13274
  /**
12882
13275
  * List a catalog's products
12883
- * Pages through the catalog's products. Filter by your own `retailerId` to look one up. `price` and `salePrice` come back formatted by Meta (for example "€49.90").
13276
+ * Lists the products in a Meta catalog, or looks one up by your own SKU.
13277
+ *
13278
+ * Filter by your own `retailerId` to look one up. `price` and `salePrice` come back formatted by Meta (for example "€49.90").
13279
+ *
12884
13280
  */
12885
13281
  export const listAdCatalogProducts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogProductsData, ThrowOnError>) => {
12886
13282
  return (options?.client ?? client).get<ListAdCatalogProductsResponse, ListAdCatalogProductsError, ThrowOnError>({
@@ -12891,7 +13287,10 @@ export const listAdCatalogProducts = <ThrowOnError extends boolean = false>(opti
12891
13287
 
12892
13288
  /**
12893
13289
  * Add a product to a catalog
12894
- * Adds one product. `retailerId` is your SKU and stays the handle for later lookups and batch updates. For many products at once use POST /v1/ads/catalogs/{catalogId}/products/batch. Needs catalog_management on the Meta login.
13290
+ * Adds a single product to a Meta catalog, keyed by your own SKU for later lookups and updates.
13291
+ *
13292
+ * `retailerId` is your SKU and stays the handle for later lookups and batch updates. For many products at once use POST /v1/ads/catalogs/{catalogId}/products/batch. Needs catalog_management on the Meta login.
13293
+ *
12895
13294
  */
12896
13295
  export const createAdCatalogProduct = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogProductData, ThrowOnError>) => {
12897
13296
  return (options?.client ?? client).post<CreateAdCatalogProductResponse, CreateAdCatalogProductError, ThrowOnError>({
@@ -12902,7 +13301,10 @@ export const createAdCatalogProduct = <ThrowOnError extends boolean = false>(opt
12902
13301
 
12903
13302
  /**
12904
13303
  * Create, update or delete products in bulk
13304
+ * Creates, updates or deletes up to 5,000 catalog products in one request, processed in the background by Meta.
13305
+ *
12905
13306
  * Up to 5000 CREATE / UPDATE / DELETE requests keyed by `retailerId`, processed asynchronously by Meta. Returns handles; poll GET /v1/ads/catalogs/{catalogId}/batches/{handle} for the outcome and per-item errors. CREATE requests need name, url, imageUrl, price and currency.
13307
+ *
12906
13308
  */
12907
13309
  export const batchAdCatalogProducts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<BatchAdCatalogProductsData, ThrowOnError>) => {
12908
13310
  return (options?.client ?? client).post<BatchAdCatalogProductsResponse, BatchAdCatalogProductsError, ThrowOnError>({
@@ -12913,6 +13315,8 @@ export const batchAdCatalogProducts = <ThrowOnError extends boolean = false>(opt
12913
13315
 
12914
13316
  /**
12915
13317
  * Get a bulk request's status
13318
+ * Shows whether a bulk catalog product request has finished, with any per-product errors.
13319
+ *
12916
13320
  */
12917
13321
  export const getAdCatalogBatch = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdCatalogBatchData, ThrowOnError>) => {
12918
13322
  return (options?.client ?? client).get<GetAdCatalogBatchResponse, GetAdCatalogBatchError, ThrowOnError>({
@@ -12923,6 +13327,8 @@ export const getAdCatalogBatch = <ThrowOnError extends boolean = false>(options:
12923
13327
 
12924
13328
  /**
12925
13329
  * Get a product
13330
+ * Shows one product from a Meta catalog.
13331
+ *
12926
13332
  */
12927
13333
  export const getAdCatalogProduct = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdCatalogProductData, ThrowOnError>) => {
12928
13334
  return (options?.client ?? client).get<GetAdCatalogProductResponse, GetAdCatalogProductError, ThrowOnError>({
@@ -12933,7 +13339,10 @@ export const getAdCatalogProduct = <ThrowOnError extends boolean = false>(option
12933
13339
 
12934
13340
  /**
12935
13341
  * Update a product
12936
- * Partial update: only the fields sent change. `retailerId` cannot change.
13342
+ * Changes some fields of a catalog product, such as its price or image, leaving the rest as they are.
13343
+ *
13344
+ * `retailerId` cannot change.
13345
+ *
12937
13346
  */
12938
13347
  export const updateAdCatalogProduct = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdCatalogProductData, ThrowOnError>) => {
12939
13348
  return (options?.client ?? client).put<UpdateAdCatalogProductResponse, UpdateAdCatalogProductError, ThrowOnError>({
@@ -12944,6 +13353,8 @@ export const updateAdCatalogProduct = <ThrowOnError extends boolean = false>(opt
12944
13353
 
12945
13354
  /**
12946
13355
  * Delete a product
13356
+ * Removes one product from a Meta catalog.
13357
+ *
12947
13358
  */
12948
13359
  export const deleteAdCatalogProduct = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdCatalogProductData, ThrowOnError>) => {
12949
13360
  return (options?.client ?? client).delete<DeleteAdCatalogProductResponse, DeleteAdCatalogProductError, ThrowOnError>({
@@ -12954,6 +13365,8 @@ export const deleteAdCatalogProduct = <ThrowOnError extends boolean = false>(opt
12954
13365
 
12955
13366
  /**
12956
13367
  * List a catalog's product feeds
13368
+ * Lists the product feeds that keep a Meta catalog filled from your product files.
13369
+ *
12957
13370
  */
12958
13371
  export const listAdCatalogFeeds = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogFeedsData, ThrowOnError>) => {
12959
13372
  return (options?.client ?? client).get<ListAdCatalogFeedsResponse, ListAdCatalogFeedsError, ThrowOnError>({
@@ -12964,7 +13377,10 @@ export const listAdCatalogFeeds = <ThrowOnError extends boolean = false>(options
12964
13377
 
12965
13378
  /**
12966
13379
  * Create a product feed
13380
+ * Creates a product feed that imports a CSV, TSV or XML product file into a Meta catalog, on a schedule or on demand.
13381
+ *
12967
13382
  * A feed pulls a CSV/TSV/XML product file from a URL. With `schedule` Meta fetches it on a cadence; without it, trigger fetches with POST /v1/ads/catalogs/{catalogId}/feeds/{feedId}/uploads.
13383
+ *
12968
13384
  */
12969
13385
  export const createAdCatalogFeed = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogFeedData, ThrowOnError>) => {
12970
13386
  return (options?.client ?? client).post<CreateAdCatalogFeedResponse, CreateAdCatalogFeedError, ThrowOnError>({
@@ -12975,6 +13391,8 @@ export const createAdCatalogFeed = <ThrowOnError extends boolean = false>(option
12975
13391
 
12976
13392
  /**
12977
13393
  * List a feed's uploads
13394
+ * Lists a product feed's past file imports so you can check how each one went.
13395
+ *
12978
13396
  */
12979
13397
  export const listAdCatalogFeedUploads = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogFeedUploadsData, ThrowOnError>) => {
12980
13398
  return (options?.client ?? client).get<ListAdCatalogFeedUploadsResponse, ListAdCatalogFeedUploadsError, ThrowOnError>({
@@ -12985,7 +13403,10 @@ export const listAdCatalogFeedUploads = <ThrowOnError extends boolean = false>(o
12985
13403
 
12986
13404
  /**
12987
13405
  * Fetch a feed file now
13406
+ * Asks Meta to import a product file into a feed right away instead of waiting for its schedule.
13407
+ *
12988
13408
  * Asks Meta to fetch the product file at `url` into the feed. Processing is asynchronous: read the outcome with GET uploads.
13409
+ *
12989
13410
  */
12990
13411
  export const createAdCatalogFeedUpload = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogFeedUploadData, ThrowOnError>) => {
12991
13412
  return (options?.client ?? client).post<CreateAdCatalogFeedUploadResponse, CreateAdCatalogFeedUploadError, ThrowOnError>({
@@ -12996,7 +13417,10 @@ export const createAdCatalogFeedUpload = <ThrowOnError extends boolean = false>(
12996
13417
 
12997
13418
  /**
12998
13419
  * List a catalog's product sets
12999
- * Lists a Meta product catalog's product sets, the unit a catalog ad promotes. Pass the chosen set id, not the parent catalog id, as `promotedObject.productSetId` on POST /v1/ads/create with `goal: catalog_sales`.
13420
+ * Lists a Meta catalog's product sets, the groups of products a catalog ad promotes.
13421
+ *
13422
+ * Pass the chosen set id, not the parent catalog id, as `promotedObject.productSetId` on POST /v1/ads/create with `goal: catalog_sales`.
13423
+ *
13000
13424
  */
13001
13425
  export const listAdCatalogProductSets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogProductSetsData, ThrowOnError>) => {
13002
13426
  return (options?.client ?? client).get<ListAdCatalogProductSetsResponse, ListAdCatalogProductSetsError, ThrowOnError>({
@@ -13007,7 +13431,10 @@ export const listAdCatalogProductSets = <ThrowOnError extends boolean = false>(o
13007
13431
 
13008
13432
  /**
13009
13433
  * Create a product set
13434
+ * Creates a product set, a filtered group of catalog products (by SKU, brand and so on) to promote in catalog ads.
13435
+ *
13010
13436
  * A product set is a filter over the catalog, e.g. `{"retailer_id": {"is_any": ["sku-1", "sku-2"]}}` or `{"brand": {"i_contains": "acme"}}` (Meta's product set filter syntax).
13437
+ *
13011
13438
  */
13012
13439
  export const createAdCatalogProductSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogProductSetData, ThrowOnError>) => {
13013
13440
  return (options?.client ?? client).post<CreateAdCatalogProductSetResponse, CreateAdCatalogProductSetError, ThrowOnError>({
@@ -13018,6 +13445,8 @@ export const createAdCatalogProductSet = <ThrowOnError extends boolean = false>(
13018
13445
 
13019
13446
  /**
13020
13447
  * Update a product set
13448
+ * Changes a product set's name or the filter that decides which products it includes.
13449
+ *
13021
13450
  */
13022
13451
  export const updateAdCatalogProductSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdCatalogProductSetData, ThrowOnError>) => {
13023
13452
  return (options?.client ?? client).put<UpdateAdCatalogProductSetResponse, UpdateAdCatalogProductSetError, ThrowOnError>({
@@ -13028,6 +13457,8 @@ export const updateAdCatalogProductSet = <ThrowOnError extends boolean = false>(
13028
13457
 
13029
13458
  /**
13030
13459
  * Delete a product set
13460
+ * Deletes a product set from a Meta catalog.
13461
+ *
13031
13462
  */
13032
13463
  export const deleteAdCatalogProductSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdCatalogProductSetData, ThrowOnError>) => {
13033
13464
  return (options?.client ?? client).delete<DeleteAdCatalogProductSetResponse, DeleteAdCatalogProductSetError, ThrowOnError>({
@@ -13038,7 +13469,10 @@ export const deleteAdCatalogProductSet = <ThrowOnError extends boolean = false>(
13038
13469
 
13039
13470
  /**
13040
13471
  * List custom audiences
13041
- * Returns custom audiences for the given ad account. Supports Meta, Google, TikTok, Pinterest, LinkedIn, and X.
13472
+ * Lists the custom audiences in an ad account so you can reuse them for targeting.
13473
+ *
13474
+ * Supports Meta, Google, TikTok, Pinterest, LinkedIn, and X.
13475
+ *
13042
13476
  */
13043
13477
  export const listAdAudiences = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdAudiencesData, ThrowOnError>) => {
13044
13478
  return (options?.client ?? client).get<ListAdAudiencesResponse, ListAdAudiencesError, ThrowOnError>({
@@ -13049,7 +13483,9 @@ export const listAdAudiences = <ThrowOnError extends boolean = false>(options: O
13049
13483
 
13050
13484
  /**
13051
13485
  * Create custom audience
13052
- * Create a custom audience. `customer_list` is supported on Meta, Google, X, LinkedIn, TikTok, and Pinterest.
13486
+ * Creates a custom audience from a customer list, website visitors, a lookalike, or people who engaged with your content.
13487
+ *
13488
+ * `customer_list` is supported on Meta, Google, X, LinkedIn, TikTok, and Pinterest.
13053
13489
  * `website` (pixel/tag visitors) and `lookalike` are supported on Meta, TikTok, Pinterest and Google.
13054
13490
  * `meta_engagement` is Meta-only, `tiktok_engagement` TikTok-only, `pinterest_engagement` Pinterest-only;
13055
13491
  * `company_list`, `engagement` and `website_retargeting` are LinkedIn-only. A type sent to a platform
@@ -13097,7 +13533,10 @@ export const createAdAudience = <ThrowOnError extends boolean = false>(options:
13097
13533
 
13098
13534
  /**
13099
13535
  * Get audience details
13536
+ * Shows a custom audience's details, including its latest data from the ad platform when available.
13537
+ *
13100
13538
  * Returns the local audience record and fresh data from Meta (if available).
13539
+ *
13101
13540
  */
13102
13541
  export const getAdAudience = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdAudienceData, ThrowOnError>) => {
13103
13542
  return (options?.client ?? client).get<GetAdAudienceResponse, GetAdAudienceError, ThrowOnError>({
@@ -13108,7 +13547,9 @@ export const getAdAudience = <ThrowOnError extends boolean = false>(options: Opt
13108
13547
 
13109
13548
  /**
13110
13549
  * Update an audience
13111
- * Update an audience. `saved_targeting` audiences accept `name`, `description`, and `spec`
13550
+ * Renames or redescribes an audience, or replaces a saved targeting audience's rules; platform audience rules cannot change.
13551
+ *
13552
+ * `saved_targeting` audiences accept `name`, `description`, and `spec`
13112
13553
  * (full replacement, no merge, Zernio-only, no platform call). Platform audiences
13113
13554
  * (uploaded/website/lookalike) accept `name` and `description` only, updated on the
13114
13555
  * platform first and then mirrored locally; their rules are immutable, so `spec` returns
@@ -13126,6 +13567,8 @@ export const updateAdAudience = <ThrowOnError extends boolean = false>(options:
13126
13567
 
13127
13568
  /**
13128
13569
  * Delete custom audience
13570
+ * Removes a custom audience from its ad platform (archiving it where the platform does not delete).
13571
+ *
13129
13572
  * Removes the audience on its ad platform, then deletes the Zernio record. Meta, Google, TikTok,
13130
13573
  * LinkedIn list and engagement segments, and X are deleted; Pinterest audiences and LinkedIn
13131
13574
  * `website_retargeting` segments are archived, which is how those platforms remove them.
@@ -13145,7 +13588,9 @@ export const deleteAdAudience = <ThrowOnError extends boolean = false>(options:
13145
13588
 
13146
13589
  /**
13147
13590
  * Add users to audience
13148
- * Upload user data to a customer_list audience. Data is SHA256-hashed server-side before sending to the platform.
13591
+ * Uploads customer emails (and phone numbers on Meta) to a customer list audience, hashed before they are sent.
13592
+ *
13593
+ * Data is SHA256-hashed server-side before sending to the platform.
13149
13594
  * Email is used on every platform; phone is used on Meta only (other platforms ignore it). On TikTok and Pinterest,
13150
13595
  * the first upload also provisions the audience (deferred create). LinkedIn uploads are full-replace. Max 10,000 users per request.
13151
13596
  *
@@ -13193,6 +13638,8 @@ export const replaceAdAudienceCompanies = <ThrowOnError extends boolean = false>
13193
13638
 
13194
13639
  /**
13195
13640
  * Get Event Match Quality
13641
+ * Shows how well your server-side conversion events match users, with event match quality and coverage for Meta or Pinterest.
13642
+ *
13196
13643
  * Reads Meta Event Match Quality (EMQ) and pixel↔CAPI event coverage for a
13197
13644
  * pixel/dataset, live from Meta's Dataset Quality API. Web events only (a
13198
13645
  * Meta limitation). Other platforms return 405, except Pinterest. Requires the Ads add-on.
@@ -13212,6 +13659,8 @@ export const getConversionsQuality = <ThrowOnError extends boolean = false>(opti
13212
13659
 
13213
13660
  /**
13214
13661
  * Send conversion events
13662
+ * Sends conversion events, such as purchases or leads, from your server to an ad platform so it can attribute and optimize ads.
13663
+ *
13215
13664
  * Relay one or more conversion events to the target ad platform's native Conversions API.
13216
13665
  * Platform is inferred from the provided `accountId`. Requires the Ads add-on.
13217
13666
  *
@@ -13286,6 +13735,8 @@ export const sendConversions = <ThrowOnError extends boolean = false>(options: O
13286
13735
 
13287
13736
  /**
13288
13737
  * Adjust uploaded conversions
13738
+ * Retracts, restates the value of, or enhances conversions you already sent to Google Ads, for refunds or late customer data.
13739
+ *
13289
13740
  * Adjust conversions that were previously uploaded via `POST /v1/ads/conversions`:
13290
13741
  * retract them, restate their value, or enhance them with first-party data. Requires
13291
13742
  * the Ads add-on.
@@ -13325,6 +13776,8 @@ export const adjustConversions = <ThrowOnError extends boolean = false>(options:
13325
13776
 
13326
13777
  /**
13327
13778
  * List conversion actions
13779
+ * Lists the conversion actions in a Google Ads account, with the website tag snippets to install where available.
13780
+ *
13328
13781
  * Lists Google Ads conversion actions on the resolved customer, all types by
13329
13782
  * default. Each action's `tagSnippets` (global site tag + event snippet) is
13330
13783
  * included when Google has them for that action's type, e.g. `WEBPAGE`.
@@ -13349,6 +13802,8 @@ export const listConversionActions = <ThrowOnError extends boolean = false>(opti
13349
13802
 
13350
13803
  /**
13351
13804
  * Create website conversion action
13805
+ * Creates a Google Ads website conversion action and returns the tag snippets to install on your site.
13806
+ *
13352
13807
  * Creates a `WEBPAGE` conversion action (category `DEFAULT`) and returns it with
13353
13808
  * its tag snippets, read back after creation since Google never returns them on
13354
13809
  * the create response itself. Invalidates the cached list `GET` on this resource
@@ -13365,6 +13820,8 @@ export const createConversionAction = <ThrowOnError extends boolean = false>(opt
13365
13820
 
13366
13821
  /**
13367
13822
  * List account conversion goals
13823
+ * Lists a Google Ads account's default conversion goals, which ones are used for bidding, and the conversion actions in each.
13824
+ *
13368
13825
  * Google Ads account-default conversion goals (CustomerConversionGoal), one per
13369
13826
  * category and origin, with `biddable` (whether the goal is used for bidding and
13370
13827
  * reported in the Conversions column) and the conversion actions that belong to it,
@@ -13381,6 +13838,8 @@ export const listAdConversionGoals = <ThrowOnError extends boolean = false>(opti
13381
13838
 
13382
13839
  /**
13383
13840
  * Update account conversion goals
13841
+ * Turns bidding on or off for a Google Ads account's default conversion goals, which campaigns using account goals follow.
13842
+ *
13384
13843
  * Sets `biddable` on one or more account-default goals, addressed by category and
13385
13844
  * origin, in one mutate. Campaigns that use account-level goals
13386
13845
  * (`goalConfigLevel: CUSTOMER`) follow the change. Returns the re-read goal list.
@@ -13394,6 +13853,8 @@ export const updateAdConversionGoals = <ThrowOnError extends boolean = false>(op
13394
13853
 
13395
13854
  /**
13396
13855
  * Update a conversion action's settings
13856
+ * Changes a Google Ads conversion action's settings, such as primary or secondary, counting, value and lookback windows, or removes or restores it.
13857
+ *
13397
13858
  * Updates a Google Ads conversion action in one mutate, each field sent written on its own
13398
13859
  * update mask leaf so omitted fields keep their value. Send at least one field.
13399
13860
  *
@@ -13416,7 +13877,10 @@ export const updateConversionAction = <ThrowOnError extends boolean = false>(opt
13416
13877
 
13417
13878
  /**
13418
13879
  * List custom conversion goals
13880
+ * Lists the custom conversion goals in a Google Ads account, each a named set of conversion actions a campaign can bid on.
13881
+ *
13419
13882
  * Google Ads custom conversion goals (a named set of conversion actions a campaign can bid on). Removed goals are excluded. Cached like the other Google reads.
13883
+ *
13420
13884
  */
13421
13885
  export const listCustomConversionGoals = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListCustomConversionGoalsData, ThrowOnError>) => {
13422
13886
  return (options?.client ?? client).get<ListCustomConversionGoalsResponse, ListCustomConversionGoalsError, ThrowOnError>({
@@ -13427,7 +13891,10 @@ export const listCustomConversionGoals = <ThrowOnError extends boolean = false>(
13427
13891
 
13428
13892
  /**
13429
13893
  * Create a custom conversion goal
13894
+ * Creates a Google Ads custom conversion goal from a set of conversion actions, so a campaign can bid on just those.
13895
+ *
13430
13896
  * Creates a custom conversion goal from conversion action ids. Point a campaign at it with `PATCH /v1/ads/campaigns/{campaignId}/conversion-goals`.
13897
+ *
13431
13898
  */
13432
13899
  export const createCustomConversionGoal = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateCustomConversionGoalData, ThrowOnError>) => {
13433
13900
  return (options?.client ?? client).post<CreateCustomConversionGoalResponse, CreateCustomConversionGoalError, ThrowOnError>({
@@ -13438,7 +13905,10 @@ export const createCustomConversionGoal = <ThrowOnError extends boolean = false>
13438
13905
 
13439
13906
  /**
13440
13907
  * Update a custom conversion goal
13441
- * Renames the goal and/or replaces its conversion actions. Returns the re-read goal.
13908
+ * Renames a Google Ads custom conversion goal or replaces the conversion actions in it.
13909
+ *
13910
+ * Returns the re-read goal.
13911
+ *
13442
13912
  */
13443
13913
  export const updateCustomConversionGoal = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateCustomConversionGoalData, ThrowOnError>) => {
13444
13914
  return (options?.client ?? client).patch<UpdateCustomConversionGoalResponse, UpdateCustomConversionGoalError, ThrowOnError>({
@@ -13449,7 +13919,10 @@ export const updateCustomConversionGoal = <ThrowOnError extends boolean = false>
13449
13919
 
13450
13920
  /**
13451
13921
  * Remove a custom conversion goal
13452
- * Removes the goal. Google refuses (400) while any campaign still uses it: switch those campaigns to another goal first.
13922
+ * Deletes a Google Ads custom conversion goal; switch any campaigns using it to another goal first.
13923
+ *
13924
+ * Google refuses (400) while any campaign still uses it: switch those campaigns to another goal first.
13925
+ *
13453
13926
  */
13454
13927
  export const removeCustomConversionGoal = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveCustomConversionGoalData, ThrowOnError>) => {
13455
13928
  return (options?.client ?? client).delete<RemoveCustomConversionGoalResponse, RemoveCustomConversionGoalError, ThrowOnError>({
@@ -13460,6 +13933,8 @@ export const removeCustomConversionGoal = <ThrowOnError extends boolean = false>
13460
13933
 
13461
13934
  /**
13462
13935
  * Get campaign conversion goals
13936
+ * Shows which conversion goals a Google campaign bids on, and whether it follows the account defaults or uses its own or a custom goal.
13937
+ *
13463
13938
  * A Google campaign's conversion goals (CampaignConversionGoal, `biddable` per category
13464
13939
  * and origin) and its goal config (ConversionGoalCampaignConfig): `goalConfigLevel`
13465
13940
  * CUSTOMER means the campaign follows the account-default goals, CAMPAIGN means it uses
@@ -13474,6 +13949,8 @@ export const getCampaignConversionGoals = <ThrowOnError extends boolean = false>
13474
13949
 
13475
13950
  /**
13476
13951
  * Update campaign conversion goals
13952
+ * Changes which conversions a Google campaign bids on, switching between account-default goals, its own goals or a custom goal.
13953
+ *
13477
13954
  * Sets `biddable` on campaign goals, switches `goalConfigLevel`, and/or points the
13478
13955
  * campaign at a custom conversion goal, in one mutate. `customConversionGoalId: null`
13479
13956
  * clears it; Google refuses that (400) while the campaign stays at CAMPAIGN level with
@@ -13489,6 +13966,8 @@ export const updateCampaignConversionGoals = <ThrowOnError extends boolean = fal
13489
13966
 
13490
13967
  /**
13491
13968
  * List conversion destinations
13969
+ * Lists where an ad account can receive conversion events (pixels, conversion actions or rules), so you know where to send them.
13970
+ *
13492
13971
  * Returns the list of pixels (Meta), conversion actions (Google),
13493
13972
  * conversion rules (LinkedIn), pixels (OpenAI Ads) or ad accounts
13494
13973
  * (Pinterest) accessible to the connected ads account. Use the returned `id` as `destinationId` when
@@ -13514,7 +13993,9 @@ export const listConversionDestinations = <ThrowOnError extends boolean = false>
13514
13993
 
13515
13994
  /**
13516
13995
  * Create a conversion destination
13517
- * Create a new conversion destination on the platform. Supported for
13996
+ * Creates a new place to send conversion events: a Google Ads conversion action or a LinkedIn conversion rule.
13997
+ *
13998
+ * Supported for
13518
13999
  * LinkedIn (conversion rule) and Google Ads (conversion action). Meta
13519
14000
  * and OpenAI Ads pixels are created via their own tracking-tags flow
13520
14001
  * instead (`POST /v1/accounts/{accountId}/tracking-tags`); this endpoint
@@ -13560,6 +14041,8 @@ export const createConversionDestination = <ThrowOnError extends boolean = false
13560
14041
 
13561
14042
  /**
13562
14043
  * Get a conversion destination
14044
+ * Shows one LinkedIn conversion rule with its full settings.
14045
+ *
13563
14046
  * LinkedIn-only today. Returns the full destination record for one
13564
14047
  * conversion rule. The `adAccountId` query parameter is required because
13565
14048
  * LinkedIn rules are scoped to a sponsored ad account.
@@ -13574,6 +14057,8 @@ export const getConversionDestination = <ThrowOnError extends boolean = false>(o
13574
14057
 
13575
14058
  /**
13576
14059
  * Update a conversion destination
14060
+ * Changes a LinkedIn conversion rule's name, value, attribution windows, or turns it on or off.
14061
+ *
13577
14062
  * Partial-update a conversion rule. LinkedIn-only today. Whitelisted
13578
14063
  * fields: `name`, `enabled`, attribution windows, `valueType`, `value`,
13579
14064
  * `attributionType`. The rule's `type` and parent ad account are
@@ -13590,6 +14075,8 @@ export const updateConversionDestination = <ThrowOnError extends boolean = false
13590
14075
 
13591
14076
  /**
13592
14077
  * Delete a conversion destination
14078
+ * Disables a LinkedIn conversion rule, which is how LinkedIn deletes it; the rule can still be read afterwards.
14079
+ *
13593
14080
  * LinkedIn-only today. LinkedIn does not expose hard-delete on conversion
13594
14081
  * rules; what their UI calls "delete" is the same `enabled: false` flip
13595
14082
  * we apply here. The rule remains fetchable via GET with
@@ -13609,6 +14096,8 @@ export const deleteConversionDestination = <ThrowOnError extends boolean = false
13609
14096
 
13610
14097
  /**
13611
14098
  * List associated campaigns
14099
+ * Lists the LinkedIn campaigns that track a conversion rule, so you can spot newer campaigns that still need linking.
14100
+ *
13612
14101
  * LinkedIn-only today. Returns the campaigns currently associated with
13613
14102
  * this conversion rule. Auto-association on rule creation
13614
14103
  * runs once at create time; campaigns created after the rule still need
@@ -13624,7 +14113,9 @@ export const listConversionAssociations = <ThrowOnError extends boolean = false>
13624
14113
 
13625
14114
  /**
13626
14115
  * Associate campaigns
13627
- * Associate one or more campaigns with this conversion rule. Returns a
14116
+ * Links campaigns to a LinkedIn conversion rule so they track it, reporting which links succeeded or failed.
14117
+ *
14118
+ * Returns a
13628
14119
  * per-campaign success/failure result so callers can retry only the
13629
14120
  * rows that failed (e.g. wrong campaign type for the rule's objective).
13630
14121
  *
@@ -13638,7 +14129,8 @@ export const addConversionAssociations = <ThrowOnError extends boolean = false>(
13638
14129
 
13639
14130
  /**
13640
14131
  * Remove associated campaigns
13641
- * Remove one or more campaign associations from this conversion rule.
14132
+ * Unlinks campaigns from a LinkedIn conversion rule so they stop tracking it.
14133
+ *
13642
14134
  * Pass `adAccountId` and `campaignIds` as query parameters
13643
14135
  * (`campaignIds` is comma-separated). The route also accepts a JSON
13644
14136
  * body with the same fields for clients that prefer DELETE-with-body,
@@ -13656,6 +14148,8 @@ export const removeConversionAssociations = <ThrowOnError extends boolean = fals
13656
14148
 
13657
14149
  /**
13658
14150
  * Get attribution metrics
14151
+ * Shows a LinkedIn conversion rule's attributed conversions, value, leads and cost over time.
14152
+ *
13659
14153
  * LinkedIn-only today. Returns conversion-attribution metrics
13660
14154
  * (`externalWebsiteConversions`, `externalWebsitePostClickConversions`,
13661
14155
  * `externalWebsitePostViewConversions`, `conversionValueInLocalCurrency`,
@@ -13742,6 +14236,8 @@ export const sendWhatsAppConversion = <ThrowOnError extends boolean = false>(opt
13742
14236
 
13743
14237
  /**
13744
14238
  * Create messaging ad
14239
+ * Creates a Meta ad that opens a chat with you on WhatsApp, Messenger or Instagram Direct when someone taps it.
14240
+ *
13745
14241
  * Creates a click-to-message ad; `destination` selects where the tapped ad opens a
13746
14242
  * conversation: WhatsApp, the Page's Messenger inbox or the linked Instagram account's Direct inbox.
13747
14243
  * `destinations` puts two or three of them on one ad set and lets Meta pick the app per viewer.
@@ -13769,6 +14265,8 @@ export const createMessagingAd = <ThrowOnError extends boolean = false>(options:
13769
14265
 
13770
14266
  /**
13771
14267
  * Create Click-to-Call ad
14268
+ * Creates a Meta ad with a Call Now button that dials your phone number, optimized for quality calls.
14269
+ *
13772
14270
  * Same shape and flow as POST /v1/ads/ctwa, but the CTA is CALL_NOW dialing `phoneNumber`
13773
14271
  * via a tel: link. The ad set is destination_type PHONE_CALL optimizing QUALITY_CALL
13774
14272
  * and the campaign objective defaults to OUTCOME_LEADS.
@@ -13817,7 +14315,10 @@ export const createCtwaAd = <ThrowOnError extends boolean = false>(options: Opti
13817
14315
 
13818
14316
  /**
13819
14317
  * List custom conversions
14318
+ * Lists a Meta ad account's custom conversions, including archived ones.
14319
+ *
13820
14320
  * The ad account's Meta custom conversions, including archived ones (`isArchived`).
14321
+ *
13821
14322
  */
13822
14323
  export const listCustomConversions = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListCustomConversionsData, ThrowOnError>) => {
13823
14324
  return (options?.client ?? client).get<ListCustomConversionsResponse, ListCustomConversionsError, ThrowOnError>({
@@ -13828,6 +14329,8 @@ export const listCustomConversions = <ThrowOnError extends boolean = false>(opti
13828
14329
 
13829
14330
  /**
13830
14331
  * Create custom conversion
14332
+ * Creates a Meta custom conversion for ads to optimise toward, reusing an existing one with the same name and pixel.
14333
+ *
13831
14334
  * Provision the Meta custom conversion an ads flow optimises toward, and hand back the
13832
14335
  * `customConversionId` for `promotedObject.customConversionId` on POST /v1/ads/create.
13833
14336
  * Removes the manual "create it in Ads Manager first" step.
@@ -14456,6 +14959,8 @@ export const startBusinessAgentEvalRun = <ThrowOnError extends boolean = false>(
14456
14959
 
14457
14960
  /**
14458
14961
  * List tracking tags
14962
+ * Lists the pixels and other measurement tags an ads account can see, so you can inspect or install them.
14963
+ *
14459
14964
  * Returns the tracking tags (Meta Pixels, or OpenAI Ads pixels) the
14460
14965
  * connected ads account can see. Pass `?adAccountId=act_...` (Meta only)
14461
14966
  * to scope the list to a single ad account; omit it to list every pixel
@@ -14500,6 +15005,8 @@ export const listTrackingTags = <ThrowOnError extends boolean = false>(options:
14500
15005
 
14501
15006
  /**
14502
15007
  * Create a tracking tag
15008
+ * Creates a measurement pixel on an ad account and returns the snippet to install on your site.
15009
+ *
14503
15010
  * Meta: creates a Meta Pixel on the given ad account (`POST /act_{id}/adspixels`,
14504
15011
  * where `name` is the only input). Returns the created tag including its
14505
15012
  * install `code`. The pixel is owned by the Business Manager that owns the
@@ -14570,6 +15077,8 @@ export const createTrackingTag = <ThrowOnError extends boolean = false>(options:
14570
15077
 
14571
15078
  /**
14572
15079
  * Get a tracking tag
15080
+ * Shows one pixel or measurement tag in full, including its install snippet, when it last fired and its conversion events.
15081
+ *
14573
15082
  * Returns the full tag record including the base-code `code` snippet,
14574
15083
  * `lastFiredTime`, `ownerBusinessId`, `isUnavailable`, etc. Meta only
14575
15084
  * (platform `metaads`); other platforms return 501.
@@ -14612,6 +15121,8 @@ export const getTrackingTag = <ThrowOnError extends boolean = false>(options: Op
14612
15121
 
14613
15122
  /**
14614
15123
  * Update a tracking tag
15124
+ * Changes a pixel's settings, such as its name or automatic matching, on platforms that allow edits.
15125
+ *
14615
15126
  * Partial-update a pixel. Whitelisted fields: `name` (rename),
14616
15127
  * `enableAutomaticMatching`, `automaticMatchingFields`,
14617
15128
  * `firstPartyCookieStatus`, `dataUseSetting`. At least one is required.
@@ -14667,6 +15178,8 @@ export const updateTrackingTag = <ThrowOnError extends boolean = false>(options:
14667
15178
 
14668
15179
  /**
14669
15180
  * List accounts it is shared with
15181
+ * Lists the other ad accounts a pixel is shared with.
15182
+ *
14670
15183
  * Meta (`metaads`) and LinkedIn (`linkedinads`); other platforms return 501.
14671
15184
  *
14672
15185
  * LinkedIn (`linkedinads`): the ad accounts this connection can see that hold access to the
@@ -14686,8 +15199,9 @@ export const listTrackingTagSharedAccounts = <ThrowOnError extends boolean = fal
14686
15199
 
14687
15200
  /**
14688
15201
  * Share with an ad account
14689
- * Shares the pixel with another ad account so campaigns/audiences in that
14690
- * account can use it. Requires that you administer both the pixel's owning
15202
+ * Shares a pixel with another ad account so its campaigns and audiences can use it.
15203
+ *
15204
+ * Requires that you administer both the pixel's owning
14691
15205
  * Business Manager and the target ad account; a pixel on a personal
14692
15206
  * (non-BM) ad account can't be shared (Meta will reject the call). Meta
14693
15207
  * and LinkedIn; other platforms return 501.
@@ -14712,6 +15226,8 @@ export const addTrackingTagSharedAccount = <ThrowOnError extends boolean = false
14712
15226
 
14713
15227
  /**
14714
15228
  * Stop sharing with an account
15229
+ * Stops sharing a pixel with an ad account.
15230
+ *
14715
15231
  * `adAccountId` may be passed as a query parameter (recommended) or as a
14716
15232
  * JSON body field for clients that can send DELETE bodies. Meta and
14717
15233
  * LinkedIn; other platforms return 501.
@@ -14732,6 +15248,8 @@ export const removeTrackingTagSharedAccount = <ThrowOnError extends boolean = fa
14732
15248
 
14733
15249
  /**
14734
15250
  * Install on a Shopify store or WordPress site
15251
+ * Installs a pixel on a connected Shopify store or WordPress site, so store visits and purchases are reported without editing the theme.
15252
+ *
14735
15253
  * Puts the Meta pixel on a connected Shopify store's storefront and checkout through
14736
15254
  * Zernio's Shopify web pixel (a Shopify app pixel, no theme edits). The store then sends
14737
15255
  * PageView, ViewContent, AddToCart, Search, InitiateCheckout, AddPaymentInfo and Purchase
@@ -14820,6 +15338,8 @@ export const installTrackingTagOnStore = <ThrowOnError extends boolean = false>(
14820
15338
 
14821
15339
  /**
14822
15340
  * Get store install status
15341
+ * Shows whether a tracking tag is live on your Shopify store or WordPress site, and whether a WordPress install would be blocked.
15342
+ *
14823
15343
  * Whether this tag is the one the Shopify store fires for its platform. `installedTagId`
14824
15344
  * names the tag of that platform the store currently fires, which can be a different tag,
14825
15345
  * and `tags` lists every Zernio tag on the store (all platforms).
@@ -14841,7 +15361,9 @@ export const getTrackingTagStoreInstall = <ThrowOnError extends boolean = false>
14841
15361
 
14842
15362
  /**
14843
15363
  * Remove from a Shopify store or WordPress site
14844
- * Removes the tag from the store. Idempotent: nothing installed returns 200 with
15364
+ * Removes a tracking tag from your Shopify store or WordPress site, leaving other platforms' tags and hand-added pixel code in place.
15365
+ *
15366
+ * Idempotent: nothing installed returns 200 with
14845
15367
  * `installed: false`. If the store fires a different tag of the same platform, nothing is
14846
15368
  * removed and the call answers 409 `invalid_resource_state`. Shopify: other platforms'
14847
15369
  * tags stay; the web pixel itself is deleted once no tag remains.
@@ -14859,6 +15381,8 @@ export const removeTrackingTagFromStore = <ThrowOnError extends boolean = false>
14859
15381
 
14860
15382
  /**
14861
15383
  * List conversion events
15384
+ * Lists the conversion events tied to a tracking tag, such as Google conversion actions or Meta custom conversions.
15385
+ *
14862
15386
  * The tag's conversion events, on platforms where each conversion is its own object:
14863
15387
  * Google conversion actions, LinkedIn conversion rules, X web event tags, OpenAI event
14864
15388
  * settings, TikTok pixel events, Meta custom conversions, Pinterest advertiser defined
@@ -14911,7 +15435,9 @@ export const listTrackingTagEvents = <ThrowOnError extends boolean = false>(opti
14911
15435
 
14912
15436
  /**
14913
15437
  * Create a conversion event
14914
- * Creates a conversion event tied to the tag. Pass the platform's own event type in `type`
15438
+ * Creates a conversion event on a tracking tag, such as a purchase or lead, so ads can measure and optimise toward it.
15439
+ *
15440
+ * Pass the platform's own event type in `type`
14915
15441
  * (e.g. Google `PURCHASE`, LinkedIn `ADD_TO_CART`, X `CHECKOUT_INITIATED`) or a neutral
14916
15442
  * `siteEvent` the platform maps to its closest type. Each platform stores a subset of the
14917
15443
  * optional fields; sending one it does not store answers 400 naming the supported fields.
@@ -14991,6 +15517,8 @@ export const createTrackingTagEvent = <ThrowOnError extends boolean = false>(opt
14991
15517
 
14992
15518
  /**
14993
15519
  * Update a conversion event
15520
+ * Changes a conversion event's settings, such as its name or default value, where the platform allows edits.
15521
+ *
14994
15522
  * Partial update; at least one field. A field the platform does not store answers 400.
14995
15523
  *
14996
15524
  * OpenAI Ads answers 501: OpenAI documents only list and create for event settings, and
@@ -15028,7 +15556,9 @@ export const updateTrackingTagEvent = <ThrowOnError extends boolean = false>(opt
15028
15556
 
15029
15557
  /**
15030
15558
  * Delete a conversion event
15031
- * Removes the conversion event. Platforms without a hard delete archive or disable it
15559
+ * Removes a conversion event from a tracking tag, or archives or disables it on platforms that have no hard delete.
15560
+ *
15561
+ * Platforms without a hard delete archive or disable it
15032
15562
  * instead; `state` in the response says which (`deleted`, `archived`, `disabled`).
15033
15563
  *
15034
15564
  * OpenAI Ads answers 501: there is no delete or archive route for event settings
@@ -15066,7 +15596,9 @@ export const deleteTrackingTagEvent = <ThrowOnError extends boolean = false>(opt
15066
15596
 
15067
15597
  /**
15068
15598
  * List tag users
15069
- * People and system users of the owning business with access to the tag. Platforms without
15599
+ * Lists the people and system users in the owning Meta business who have access to a pixel.
15600
+ *
15601
+ * Platforms without
15070
15602
  * tag user assignment answer 501.
15071
15603
  *
15072
15604
  * Meta: the pixel's assigned users in its owning Business Manager. A pixel on a personal ad
@@ -15084,7 +15616,9 @@ export const listTrackingTagUsers = <ThrowOnError extends boolean = false>(optio
15084
15616
 
15085
15617
  /**
15086
15618
  * Assign a user to a tag
15087
- * Gives a user of the owning business access to the tag. Assigning an already assigned user
15619
+ * Gives a person in the owning Meta business access to a pixel, or replaces the tasks they already have on it.
15620
+ *
15621
+ * Assigning an already assigned user
15088
15622
  * replaces their task set.
15089
15623
  *
15090
15624
  * Meta: `tasks` are `AA_ANALYZE`, `ADVERTISE`, `ANALYZE`, `EDIT`, `UPLOAD`; `userId` is the
@@ -15117,7 +15651,9 @@ export const removeTrackingTagUser = <ThrowOnError extends boolean = false>(opti
15117
15651
 
15118
15652
  /**
15119
15653
  * List partner businesses of a tag
15120
- * Other businesses the tag is shared with. Read-only. Platforms without partner sharing
15654
+ * Lists the partner businesses a Meta pixel is shared with (read-only, sharing with new partners is not supported).
15655
+ *
15656
+ * Read-only. Platforms without partner sharing
15121
15657
  * answer 501.
15122
15658
  *
15123
15659
  * Meta: the pixel's shared agencies. Sharing a pixel with a new partner is not available:
@@ -15134,7 +15670,9 @@ export const listTrackingTagPartners = <ThrowOnError extends boolean = false>(op
15134
15670
 
15135
15671
  /**
15136
15672
  * Get tag diagnostics
15137
- * The platform's health checks for the tag. Platforms without tag diagnostics answer 501.
15673
+ * Shows Meta's health checks for a pixel, such as events missing parameters or product ids that do not match your catalogs.
15674
+ *
15675
+ * Platforms without tag diagnostics answer 501.
15138
15676
  *
15139
15677
  * Meta: the pixel's checks from Events Manager (`da_checks`), e.g. whether events miss
15140
15678
  * parameters or their content ids do not match the pixel's catalogs.
@@ -15149,8 +15687,9 @@ export const getTrackingTagDiagnostics = <ThrowOnError extends boolean = false>(
15149
15687
 
15150
15688
  /**
15151
15689
  * Get aggregated event stats
15152
- * Returns event counts / health for the tag, where the platform exposes
15153
- * them. Meta: aggregated counts (`GET /{pixel_id}/stats`), rows passed
15690
+ * Shows event counts or health for a tracking tag so you can confirm it is firing, where the platform reports them.
15691
+ *
15692
+ * Meta: aggregated counts (`GET /{pixel_id}/stats`), rows passed
15154
15693
  * through as-is; their shape depends on the `aggregation` requested.
15155
15694
  * Platforms without a stats API answer 501.
15156
15695
  *
@@ -16422,7 +16961,10 @@ export const listTikTokAdPixels = <ThrowOnError extends boolean = false>(options
16422
16961
 
16423
16962
  /**
16424
16963
  * List partnership ad content
16425
- * Private beta. Lists creator Instagram posts available to the advertiser for Partnership Ads. Supply creatorUsername or postUrl. Requires instagram_branded_content_ads_brand permission and an advertiser Instagram Business Account.
16964
+ * Lists a creator's Instagram posts you can run as Partnership Ads, looked up by creator or post link (private beta).
16965
+ *
16966
+ * Lists creator Instagram posts available to the advertiser for Partnership Ads. Supply creatorUsername or postUrl. Requires instagram_branded_content_ads_brand permission and an advertiser Instagram Business Account.
16967
+ *
16426
16968
  */
16427
16969
  export const listPartnershipAdContent = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListPartnershipAdContentData, ThrowOnError>) => {
16428
16970
  return (options?.client ?? client).get<ListPartnershipAdContentResponse, ListPartnershipAdContentError, ThrowOnError>({
@@ -16433,7 +16975,10 @@ export const listPartnershipAdContent = <ThrowOnError extends boolean = false>(o
16433
16975
 
16434
16976
  /**
16435
16977
  * List partnership permissions
16436
- * Private beta. Lists granted or pending creator permissions for the advertiser Instagram Business Account. Requires instagram_branded_content_ads_brand permission.
16978
+ * Lists the creators who have granted, or have pending, permission for your Instagram account to run Partnership Ads with them (private beta).
16979
+ *
16980
+ * Lists granted or pending creator permissions for the advertiser Instagram Business Account. Requires instagram_branded_content_ads_brand permission.
16981
+ *
16437
16982
  */
16438
16983
  export const listPartnershipAdPermissions = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListPartnershipAdPermissionsData, ThrowOnError>) => {
16439
16984
  return (options?.client ?? client).get<ListPartnershipAdPermissionsResponse, ListPartnershipAdPermissionsError, ThrowOnError>({
@@ -16444,7 +16989,10 @@ export const listPartnershipAdPermissions = <ThrowOnError extends boolean = fals
16444
16989
 
16445
16990
  /**
16446
16991
  * Set partnership permission
16447
- * Private beta. Requests permission from a creator or revokes it when revoke is true. Requests require the creator to approve in Instagram. Requires instagram_branded_content_ads_brand permission.
16992
+ * Asks a creator for permission to run Partnership Ads with their content, or revokes it (private beta).
16993
+ *
16994
+ * Requests permission from a creator or revokes it when revoke is true. Requests require the creator to approve in Instagram. Requires instagram_branded_content_ads_brand permission.
16995
+ *
16448
16996
  */
16449
16997
  export const setPartnershipAdPermission = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SetPartnershipAdPermissionData, ThrowOnError>) => {
16450
16998
  return (options?.client ?? client).post<SetPartnershipAdPermissionResponse, SetPartnershipAdPermissionError, ThrowOnError>({