@getlatedev/node 0.2.1157 → 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>({
@@ -4936,6 +4947,9 @@ export const unlikePost = <ThrowOnError extends boolean = false>(options: Option
4936
4947
  * non-followers and add buttons once they reply. `quickReplies` and `buttons` are mutually
4937
4948
  * exclusive. When the comment's single private reply is spent (by this call or an earlier
4938
4949
  * one) the 400 carries `details.privateReplyConsumed: true`; never retry it.
4950
+ * A 502 means Meta answered a server error after receiving the reply; it carries
4951
+ * `details.privateReplyOutcome: "unknown"`, the reply is usually delivered and the comment's
4952
+ * private reply spent, so check the conversation before retrying.
4939
4953
  *
4940
4954
  */
4941
4955
  export const sendPrivateReplyToComment = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SendPrivateReplyToCommentData, ThrowOnError>) => {
@@ -9465,6 +9479,8 @@ export const listCommentAutomationLogs = <ThrowOnError extends boolean = false>(
9465
9479
 
9466
9480
  /**
9467
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
+ *
9468
9484
  * Returns a paginated list of ads with metrics computed over an optional date range.
9469
9485
  * Use source=all to include externally-synced ads from platform ad managers.
9470
9486
  * If no date range is provided, defaults to the last 90 days. Date range is capped at 730 days max.
@@ -9485,6 +9501,8 @@ export const listAds = <ThrowOnError extends boolean = false>(options?: OptionsL
9485
9501
 
9486
9502
  /**
9487
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
+ *
9488
9506
  * The actual search queries that triggered your ads, with matched-keyword
9489
9507
  * status and spend metrics, the raw material for wasted-spend analysis and
9490
9508
  * negative-keyword lists. Reads Google's `search_term_view`, cached for
@@ -9502,7 +9520,10 @@ export const getAdsSearchTerms = <ThrowOnError extends boolean = false>(options:
9502
9520
 
9503
9521
  /**
9504
9522
  * List Google Ads recommendations
9523
+ * Lists Google's optimization suggestions for an ad account, with the estimated impact of each.
9524
+ *
9505
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
+ *
9506
9527
  */
9507
9528
  export const listGoogleRecommendations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListGoogleRecommendationsData, ThrowOnError>) => {
9508
9529
  return (options?.client ?? client).get<ListGoogleRecommendationsResponse, ListGoogleRecommendationsError, ThrowOnError>({
@@ -9513,7 +9534,10 @@ export const listGoogleRecommendations = <ThrowOnError extends boolean = false>(
9513
9534
 
9514
9535
  /**
9515
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
+ *
9516
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
+ *
9517
9541
  */
9518
9542
  export const applyGoogleRecommendations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ApplyGoogleRecommendationsData, ThrowOnError>) => {
9519
9543
  return (options?.client ?? client).post<ApplyGoogleRecommendationsResponse, ApplyGoogleRecommendationsError, ThrowOnError>({
@@ -9524,7 +9548,10 @@ export const applyGoogleRecommendations = <ThrowOnError extends boolean = false>
9524
9548
 
9525
9549
  /**
9526
9550
  * Dismiss Google Ads recommendations
9551
+ * Dismisses Google optimization suggestions so Google stops showing them.
9552
+ *
9527
9553
  * Dismiss up to 100 recommendations so Google stops suggesting them. Items run in partial-failure mode.
9554
+ *
9528
9555
  */
9529
9556
  export const dismissGoogleRecommendations = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DismissGoogleRecommendationsData, ThrowOnError>) => {
9530
9557
  return (options?.client ?? client).post<DismissGoogleRecommendationsResponse, DismissGoogleRecommendationsError, ThrowOnError>({
@@ -9535,6 +9562,8 @@ export const dismissGoogleRecommendations = <ThrowOnError extends boolean = fals
9535
9562
 
9536
9563
  /**
9537
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
+ *
9538
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.
9539
9568
  */
9540
9569
  export const listBidStrategies = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListBidStrategiesData, ThrowOnError>) => {
@@ -9546,7 +9575,10 @@ export const listBidStrategies = <ThrowOnError extends boolean = false>(options:
9546
9575
 
9547
9576
  /**
9548
9577
  * Create portfolio bid strategy
9549
- * 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
+ *
9550
9582
  */
9551
9583
  export const createBidStrategy = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateBidStrategyData, ThrowOnError>) => {
9552
9584
  return (options?.client ?? client).post<CreateBidStrategyResponse, CreateBidStrategyError, ThrowOnError>({
@@ -9557,7 +9589,10 @@ export const createBidStrategy = <ThrowOnError extends boolean = false>(options:
9557
9589
 
9558
9590
  /**
9559
9591
  * Update portfolio bid strategy
9560
- * 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
+ *
9561
9596
  */
9562
9597
  export const updateBidStrategy = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateBidStrategyData, ThrowOnError>) => {
9563
9598
  return (options?.client ?? client).patch<UpdateBidStrategyResponse, UpdateBidStrategyError, ThrowOnError>({
@@ -9568,6 +9603,8 @@ export const updateBidStrategy = <ThrowOnError extends boolean = false>(options:
9568
9603
 
9569
9604
  /**
9570
9605
  * List shared budgets
9606
+ * Lists a Google Ads account's shared budgets and how many campaigns draw from each.
9607
+ *
9571
9608
  * Lists the Google Ads customer's shared campaign budgets (`campaign_budget.explicitly_shared`
9572
9609
  * = true, not removed), with how many campaigns use each. Move a campaign onto one with
9573
9610
  * `sharedBudgetId` on PUT /v1/ads/campaigns/{campaignId}. Google only; other platforms return 501.
@@ -9582,6 +9619,8 @@ export const listSharedBudgets = <ThrowOnError extends boolean = false>(options:
9582
9619
 
9583
9620
  /**
9584
9621
  * Create a shared budget
9622
+ * Creates a daily Google Ads budget that several campaigns can share.
9623
+ *
9585
9624
  * Creates a daily shared campaign budget (`explicitly_shared: true`, standard delivery) that
9586
9625
  * several campaigns can draw from. A lifetime budget returns 422, like every Google budget.
9587
9626
  * Google refuses some bidding strategies on a shared budget; that error surfaces when a
@@ -9597,6 +9636,8 @@ export const createSharedBudget = <ThrowOnError extends boolean = false>(options
9597
9636
 
9598
9637
  /**
9599
9638
  * Google Local Services Ads leads
9639
+ * Lists the calls, messages and bookings your Google Local Services Ads generated, newest first.
9640
+ *
9600
9641
  * Leads generated by Local Services Ads (phone calls, messages, bookings),
9601
9642
  * read live from Google's `local_services_lead` resource, newest first.
9602
9643
  * No persistence: Google is the source of truth and lead/credit statuses
@@ -9613,6 +9654,8 @@ export const listLocalServicesLeads = <ThrowOnError extends boolean = false>(opt
9613
9654
 
9614
9655
  /**
9615
9656
  * List lead conversations
9657
+ * Shows the calls (with recordings) and messages exchanged with one Google Local Services lead, oldest first.
9658
+ *
9616
9659
  * Conversation entries of one Local Services lead: phone calls (duration,
9617
9660
  * recording URL) and messages (text, attachment URLs), oldest first. Read
9618
9661
  * live from `local_services_lead_conversation`, always scoped to a single
@@ -9628,6 +9671,8 @@ export const listLocalServicesLeadConversations = <ThrowOnError extends boolean
9628
9671
 
9629
9672
  /**
9630
9673
  * List Search keywords
9674
+ * Lists the keywords and negative keywords in your Google Search ad groups.
9675
+ *
9631
9676
  * Returns the Google Search keyword criteria (positive and negative) synced from
9632
9677
  * connected Google Ads accounts, one row per ad-group keyword. Refreshed about
9633
9678
  * once a day per Google Ads customer (the keyword sweep rides the ads discovery
@@ -9648,6 +9693,8 @@ export const listAdKeywords = <ThrowOnError extends boolean = false>(options?: O
9648
9693
 
9649
9694
  /**
9650
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
+ *
9651
9698
  * Adds one or more keyword criteria to an existing Google Search ad group,
9652
9699
  * without touching the keywords already there (unlike the whole-set diff on
9653
9700
  * `PUT /v1/ads/{adId}`, `keywords`/`negativeKeywords` in `platformSpecificData`,
@@ -9664,6 +9711,8 @@ export const addAdKeywords = <ThrowOnError extends boolean = false>(options: Opt
9664
9711
 
9665
9712
  /**
9666
9713
  * Pause or enable a Search keyword
9714
+ * Pauses or re-enables a single Google Search keyword.
9715
+ *
9667
9716
  * Changes `ad_group_criterion.status` for one keyword criterion (M.140).
9668
9717
  * Negative keywords have no status on Google and cannot be paused or enabled.
9669
9718
  *
@@ -9677,7 +9726,10 @@ export const updateAdKeyword = <ThrowOnError extends boolean = false>(options: O
9677
9726
 
9678
9727
  /**
9679
9728
  * Remove a Search keyword
9729
+ * Removes a single keyword or negative keyword from a Google Search ad group.
9730
+ *
9680
9731
  * Removes one keyword criterion (positive or negative) from its ad group (M.140).
9732
+ *
9681
9733
  */
9682
9734
  export const removeAdKeyword = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAdKeywordData, ThrowOnError>) => {
9683
9735
  return (options?.client ?? client).delete<RemoveAdKeywordResponse, RemoveAdKeywordError, ThrowOnError>({
@@ -9688,6 +9740,8 @@ export const removeAdKeyword = <ThrowOnError extends boolean = false>(options: O
9688
9740
 
9689
9741
  /**
9690
9742
  * List campaigns
9743
+ * Lists your campaigns with spend, impressions and clicks summed across their ads, plus each campaign's status and budget.
9744
+ *
9691
9745
  * Returns campaigns as virtual aggregations over ad documents grouped by platform campaign ID.
9692
9746
  * Metrics (spend, impressions, clicks, etc.) are summed across all ads in each campaign.
9693
9747
  * Campaign status is derived from child ad statuses (active > pending_review > paused > error > completed > cancelled > rejected).
@@ -9720,6 +9774,8 @@ export const listAdCampaigns = <ThrowOnError extends boolean = false>(options?:
9720
9774
 
9721
9775
  /**
9722
9776
  * Create a standalone campaign
9777
+ * Creates an empty campaign, paused, so you can add ad sets and ads to it afterwards.
9778
+ *
9723
9779
  * Creates a campaign WITHOUT its first ad set / ad, on the platform of the given
9724
9780
  * `accountId`. Ad sets join it later via `existingCampaignId` on the create endpoints.
9725
9781
  * Platform notes: on Meta a budget here is campaign-level (CBO) by definition; omit it
@@ -9744,6 +9800,8 @@ export const createAdCampaign = <ThrowOnError extends boolean = false>(options:
9744
9800
 
9745
9801
  /**
9746
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
+ *
9747
9805
  * Writes the campaign's own on/off switch and nothing else, on every platform (Meta, TikTok,
9748
9806
  * Google, LinkedIn campaign group, Pinterest, X, ChatGPT (OpenAI)). Its ad sets and ads keep
9749
9807
  * their own switches: pausing stops their delivery through the campaign, and resuming lets
@@ -9770,6 +9828,8 @@ export const updateAdCampaignStatus = <ThrowOnError extends boolean = false>(opt
9770
9828
 
9771
9829
  /**
9772
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
+ *
9773
9833
  * The windows a Google campaign serves in, with the bid modifier on each, plus the
9774
9834
  * criterion ids Google minted for them.
9775
9835
  *
@@ -9794,7 +9854,9 @@ export const getCampaignAdSchedule = <ThrowOnError extends boolean = false>(opti
9794
9854
 
9795
9855
  /**
9796
9856
  * Replace a campaign's ad schedule (dayparting)
9797
- * 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
9798
9860
  * REPLACE, not a merge: windows you leave out stop serving.
9799
9861
  *
9800
9862
  * Send `schedule: []` to clear dayparting, which returns the campaign to serving around
@@ -9823,6 +9885,8 @@ export const updateCampaignAdSchedule = <ThrowOnError extends boolean = false>(o
9823
9885
 
9824
9886
  /**
9825
9887
  * Read a campaign's current bidding
9888
+ * Shows a Google campaign's current bidding strategy and targets, ready to prefill an edit.
9889
+ *
9826
9890
  * Read of the campaign's bidding strategy on Google, cached for the quota window, for
9827
9891
  * pre-filling the bid strategy block before a PUT to /v1/ads/campaigns/{campaignId}.
9828
9892
  * Google Ads only; `platform` is required and rejected when it is anything else, since
@@ -9847,6 +9911,8 @@ export const getCampaignBidding = <ThrowOnError extends boolean = false>(options
9847
9911
 
9848
9912
  /**
9849
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
+ *
9850
9916
  * Reads one campaign live from Meta, returned verbatim, so a caller that knows a
9851
9917
  * campaign id no longer has to page `GET /v1/ads/campaigns` to find it. The default
9852
9918
  * projection covers name, status, objective, buying type, bid strategy, budgets,
@@ -9863,7 +9929,9 @@ export const getAdCampaignDetails = <ThrowOnError extends boolean = false>(optio
9863
9929
 
9864
9930
  /**
9865
9931
  * Update a campaign
9866
- * 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`,
9867
9935
  * `portfolioBidStrategyId`, `targetImpressionShare`, `manualCpc`, `networkSettings`,
9868
9936
  * `trackingUrlTemplate`, `finalUrlSuffix`, `sharedBudgetId`, `name` or `platformSpecificData`. An unsupported
9869
9937
  * field is always an error, never a silent drop.
@@ -9933,8 +10001,9 @@ export const updateAdCampaign = <ThrowOnError extends boolean = false>(options:
9933
10001
 
9934
10002
  /**
9935
10003
  * Delete a campaign
9936
- * Deletes the whole campaign on the platform, cascading to its ad sets
9937
- * 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
9938
10007
  * `status: cancelled`.
9939
10008
  *
9940
10009
  * **Empty campaigns.** A campaign with zero ads has no local Ad documents
@@ -9955,6 +10024,8 @@ export const deleteAdCampaign = <ThrowOnError extends boolean = false>(options:
9955
10024
 
9956
10025
  /**
9957
10026
  * List campaign-level negative keywords
10027
+ * Lists the negative keywords set on a whole Google campaign, separate from ad group negatives.
10028
+ *
9958
10029
  * Returns the campaign-level negative keywords (`campaign_criterion.negative`),
9959
10030
  * distinct from the ad-group-level negatives under `GET /v1/ads/keywords`. Cached
9960
10031
  * for the quota window (not synced to Postgres), and gated by the shared Google
@@ -9975,6 +10046,8 @@ export const listCampaignNegativeKeywords = <ThrowOnError extends boolean = fals
9975
10046
 
9976
10047
  /**
9977
10048
  * Replace campaign-level negative keywords
10049
+ * Replaces a Google campaign's full list of campaign-level negative keywords, or clears it.
10050
+ *
9978
10051
  * Replaces the FULL set of campaign-level negative keywords (C.270): the desired
9979
10052
  * list is diffed against what Google already has, and the difference is applied
9980
10053
  * as one `create`/`remove` mutate. Send an empty array to clear every campaign
@@ -9993,7 +10066,9 @@ export const replaceCampaignNegativeKeywords = <ThrowOnError extends boolean = f
9993
10066
 
9994
10067
  /**
9995
10068
  * Pause or resume many campaigns
9996
- * 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
9997
10072
  * concurrently and the response contains a per-campaign result so a
9998
10073
  * single bad row does not fail the whole batch. Each campaign is read,
9999
10074
  * written and re-read exactly as PUT /v1/ads/campaigns/{campaignId}/status
@@ -10010,6 +10085,8 @@ export const bulkUpdateAdCampaignStatus = <ThrowOnError extends boolean = false>
10010
10085
 
10011
10086
  /**
10012
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
+ *
10013
10090
  * Duplicates a campaign, including its ad sets, ads, creatives, and
10014
10091
  * targeting by default (`deepCopy: true`). The copy is created paused
10015
10092
  * so callers can review before launching.
@@ -10050,6 +10127,8 @@ export const duplicateAdCampaign = <ThrowOnError extends boolean = false>(option
10050
10127
 
10051
10128
  /**
10052
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
+ *
10053
10132
  * Google Ads compliance requires geo, language, budget, and bidding targeting
10054
10133
  * set at creation to stay editable afterwards; this reads the campaign state
10055
10134
  * so an integrator can build an editor around it. Cached for the quota window
@@ -10077,6 +10156,8 @@ export const getCampaignTargeting = <ThrowOnError extends boolean = false>(optio
10077
10156
 
10078
10157
  /**
10079
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
+ *
10080
10161
  * Google Ads compliance row M.10: geo and language targeting set at
10081
10162
  * creation must stay editable afterwards. Send at least one of `devices`,
10082
10163
  * `locations`, `excludedLocations`, `languages`, `locationTargetingType`; each provided field REPLACES that field's
@@ -10138,6 +10219,8 @@ export const updateCampaignTargeting = <ThrowOnError extends boolean = false>(op
10138
10219
 
10139
10220
  /**
10140
10221
  * List ad sets
10222
+ * Lists ad sets (ad groups on Google) with their targeting, bidding and optimization settings, optionally for one campaign.
10223
+ *
10141
10224
  * Ad sets (Google ad groups) synced for the connection, optionally
10142
10225
  * filtered by platform and campaignId. Reads the `ad_sets` table
10143
10226
  * directly, independent of the `ads` rollup GET /v1/ads/tree uses, so a
@@ -10185,6 +10268,8 @@ export const listAdSets = <ThrowOnError extends boolean = false>(options?: Optio
10185
10268
 
10186
10269
  /**
10187
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
+ *
10188
10273
  * Google Ads compliance row C.190: creates an ad group WITHOUT an ad,
10189
10274
  * under an existing campaign. Ads join it later via `adSetId`
10190
10275
  * on POST /v1/ads/create. Google only; every other platform returns 501.
@@ -10205,7 +10290,9 @@ export const createAdSet = <ThrowOnError extends boolean = false>(options: Optio
10205
10290
 
10206
10291
  /**
10207
10292
  * Duplicate an ad set
10208
- * 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.
10209
10296
  * `campaignId` retargets the copy into another campaign; omitted = the source's own campaign.
10210
10297
  *
10211
10298
  * Meta: ads and creatives are included by default (`deepCopy: true`) via Meta's native
@@ -10216,6 +10303,7 @@ export const createAdSet = <ThrowOnError extends boolean = false>(options: Optio
10216
10303
  * budget and schedule (start reset to now); `deepCopy: true` recreates its ads too (default
10217
10304
  * false). `startTime`, `endTime` and `renameStrategy` are ignored and `statusOption` must be
10218
10305
  * PAUSED or absent. The copy appears on the next discovery sync.
10306
+ *
10219
10307
  */
10220
10308
  export const duplicateAdSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DuplicateAdSetData, ThrowOnError>) => {
10221
10309
  return (options?.client ?? client).post<DuplicateAdSetResponse, DuplicateAdSetError, ThrowOnError>({
@@ -10226,6 +10314,8 @@ export const duplicateAdSet = <ThrowOnError extends boolean = false>(options: Op
10226
10314
 
10227
10315
  /**
10228
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
+ *
10229
10319
  * Duplicates a single ad via Meta's native `POST /{ad-id}/copies`. The copy is created
10230
10320
  * paused. `adSetId` retargets the copy into another ad set; omitted = the source's own ad
10231
10321
  * set. Accepts the Zernio ad id or the platform ad id. Sync discovery is triggered
@@ -10246,6 +10336,8 @@ export const duplicateAd = <ThrowOnError extends boolean = false>(options: Optio
10246
10336
 
10247
10337
  /**
10248
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
+ *
10249
10341
  * Reads the ad set live from Meta, returned verbatim. The default projection includes
10250
10342
  * `learning_stage_info` (learning-phase status: LEARNING / SUCCESS / FAIL / WAIVING; Meta
10251
10343
  * omits its `status` key on paused ad sets), delivery settings, budgets, schedule and
@@ -10261,7 +10353,9 @@ export const getAdSetDetails = <ThrowOnError extends boolean = false>(options: O
10261
10353
 
10262
10354
  /**
10263
10355
  * Update an ad set
10264
- * 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
10265
10359
  * pause/resume, bid-strategy edits, Meta value-rule-set attach/detach, and
10266
10360
  * Meta-only post-launch delivery settings via `platformSpecificData`. At
10267
10361
  * least one updatable field is required.
@@ -10314,8 +10408,9 @@ export const updateAdSet = <ThrowOnError extends boolean = false>(options: Optio
10314
10408
 
10315
10409
  /**
10316
10410
  * Delete an ad set
10317
- * Deletes the ad set on the platform, cascading to its ads only (never the
10318
- * 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
10319
10414
  * `status: cancelled`.
10320
10415
  *
10321
10416
  * Delete is soft on platforms that have no hard delete: LinkedIn moves the
@@ -10333,7 +10428,9 @@ export const deleteAdSet = <ThrowOnError extends boolean = false>(options: Optio
10333
10428
 
10334
10429
  /**
10335
10430
  * Pause or resume a single ad set
10336
- * 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
10337
10434
  * over PUT /v1/ads/ad-sets/{adSetId} for callers that only want the
10338
10435
  * status toggle and prefer a symmetric URL to
10339
10436
  * /v1/ads/campaigns/{campaignId}/status.
@@ -10368,7 +10465,8 @@ export const updateAdSetStatus = <ThrowOnError extends boolean = false>(options:
10368
10465
 
10369
10466
  /**
10370
10467
  * Get campaign tree
10371
- * 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
+ *
10372
10470
  * Uses a two-stage aggregation: ads are grouped into ad sets, then ad sets into campaigns.
10373
10471
  * Metrics are computed over an optional date range, then rolled up from ad level to ad set
10374
10472
  * and campaign levels. Pagination is at the campaign level. Ads without a campaign or ad set
@@ -10396,6 +10494,8 @@ export const getAdTree = <ThrowOnError extends boolean = false>(options?: Option
10396
10494
 
10397
10495
  /**
10398
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
+ *
10399
10499
  * Returns daily aggregate metrics across all ads in a SocialAccount as a single
10400
10500
  * time series, one row per calendar day in the requested range. Use this for
10401
10501
  * dashboards that draw a daily-spend or daily-conversions chart, instead of
@@ -10422,7 +10522,8 @@ export const getAdsTimeline = <ThrowOnError extends boolean = false>(options: Op
10422
10522
 
10423
10523
  /**
10424
10524
  * Get ad details
10425
- * Returns an ad with its creative, targeting, status, and performance metrics.
10525
+ * Shows one ad with its creative, targeting, status and performance metrics.
10526
+ *
10426
10527
  * Google Search ads include current creative.headlines, creative.descriptions and creative.finalUrls,
10427
10528
  * preserving pinnedField. Top-level cachedAt and stale report cache freshness. Google mutations invalidate this read.
10428
10529
  * RSA enrichment requires a stored advertisingChannelType of SEARCH. Ads with an unknown or other channel
@@ -10461,6 +10562,8 @@ export const getAd = <ThrowOnError extends boolean = false>(options: OptionsLega
10461
10562
 
10462
10563
  /**
10463
10564
  * Update ad
10565
+ * Changes an ad's status, budget, targeting or creative and applies the change on the platform.
10566
+ *
10464
10567
  * Patch one or more fields on an ad. Status, budget, targeting, and creative changes
10465
10568
  * are propagated to the platform.
10466
10569
  *
@@ -10563,6 +10666,8 @@ export const updateAd = <ThrowOnError extends boolean = false>(options: OptionsL
10563
10666
 
10564
10667
  /**
10565
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
+ *
10566
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).
10567
10672
  *
10568
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}`.
@@ -10577,6 +10682,8 @@ export const deleteAd = <ThrowOnError extends boolean = false>(options: OptionsL
10577
10682
 
10578
10683
  /**
10579
10684
  * Pause or resume a single ad
10685
+ * Pauses or resumes a single ad without touching its ad set, campaign or sibling ads.
10686
+ *
10580
10687
  * Ad-scoped pause/resume: flips ONLY this ad's own switch (Meta
10581
10688
  * `configured_status`, TikTok `operation_status`, Google ad group ad
10582
10689
  * status, LinkedIn creative, Pinterest ad), never its parent ad set or
@@ -10613,7 +10720,10 @@ export const updateAdStatus = <ThrowOnError extends boolean = false>(options: Op
10613
10720
 
10614
10721
  /**
10615
10722
  * List campaign assets
10616
- * 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
+ *
10617
10727
  */
10618
10728
  export const listCampaignAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListCampaignAssetsData, ThrowOnError>) => {
10619
10729
  return (options?.client ?? client).get<ListCampaignAssetsResponse, ListCampaignAssetsError, ThrowOnError>({
@@ -10624,7 +10734,10 @@ export const listCampaignAssets = <ThrowOnError extends boolean = false>(options
10624
10734
 
10625
10735
  /**
10626
10736
  * Attach campaign assets
10737
+ * Adds sitelinks, callouts, structured snippets and images to a Google campaign in one step.
10738
+ *
10627
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
+ *
10628
10741
  */
10629
10742
  export const attachCampaignAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AttachCampaignAssetsData, ThrowOnError>) => {
10630
10743
  return (options?.client ?? client).post<AttachCampaignAssetsResponse, AttachCampaignAssetsError, ThrowOnError>({
@@ -10635,7 +10748,10 @@ export const attachCampaignAssets = <ThrowOnError extends boolean = false>(optio
10635
10748
 
10636
10749
  /**
10637
10750
  * Update campaign assets
10638
- * 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
+ *
10639
10755
  */
10640
10756
  export const updateCampaignAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateCampaignAssetsData, ThrowOnError>) => {
10641
10757
  return (options?.client ?? client).put<UpdateCampaignAssetsResponse, UpdateCampaignAssetsError, ThrowOnError>({
@@ -10646,7 +10762,10 @@ export const updateCampaignAssets = <ThrowOnError extends boolean = false>(optio
10646
10762
 
10647
10763
  /**
10648
10764
  * Remove campaign assets
10649
- * 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
+ *
10650
10769
  */
10651
10770
  export const removeCampaignAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveCampaignAssetsData, ThrowOnError>) => {
10652
10771
  return (options?.client ?? client).delete<RemoveCampaignAssetsResponse, RemoveCampaignAssetsError, ThrowOnError>({
@@ -10657,7 +10776,10 @@ export const removeCampaignAssets = <ThrowOnError extends boolean = false>(optio
10657
10776
 
10658
10777
  /**
10659
10778
  * List ad-group assets
10660
- * 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
+ *
10661
10783
  */
10662
10784
  export const listAdGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdGroupAssetsData, ThrowOnError>) => {
10663
10785
  return (options?.client ?? client).get<ListAdGroupAssetsResponse, ListAdGroupAssetsError, ThrowOnError>({
@@ -10668,7 +10790,10 @@ export const listAdGroupAssets = <ThrowOnError extends boolean = false>(options:
10668
10790
 
10669
10791
  /**
10670
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
+ *
10671
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
+ *
10672
10797
  */
10673
10798
  export const attachAdGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AttachAdGroupAssetsData, ThrowOnError>) => {
10674
10799
  return (options?.client ?? client).post<AttachAdGroupAssetsResponse, AttachAdGroupAssetsError, ThrowOnError>({
@@ -10679,7 +10804,10 @@ export const attachAdGroupAssets = <ThrowOnError extends boolean = false>(option
10679
10804
 
10680
10805
  /**
10681
10806
  * Update ad-group assets
10682
- * 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
+ *
10683
10811
  */
10684
10812
  export const updateAdGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdGroupAssetsData, ThrowOnError>) => {
10685
10813
  return (options?.client ?? client).put<UpdateAdGroupAssetsResponse, UpdateAdGroupAssetsError, ThrowOnError>({
@@ -10690,7 +10818,10 @@ export const updateAdGroupAssets = <ThrowOnError extends boolean = false>(option
10690
10818
 
10691
10819
  /**
10692
10820
  * Remove ad-group assets
10693
- * 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
+ *
10694
10825
  */
10695
10826
  export const removeAdGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAdGroupAssetsData, ThrowOnError>) => {
10696
10827
  return (options?.client ?? client).delete<RemoveAdGroupAssetsResponse, RemoveAdGroupAssetsError, ThrowOnError>({
@@ -10701,6 +10832,8 @@ export const removeAdGroupAssets = <ThrowOnError extends boolean = false>(option
10701
10832
 
10702
10833
  /**
10703
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
+ *
10704
10837
  * Returns performance analytics for a whole campaign in one call: summary metrics, a daily
10705
10838
  * timeline over the requested date range (summed across the campaign's ads), and optional
10706
10839
  * demographic breakdowns. Breakdowns are fetched live from Meta at the campaign level (one call
@@ -10724,6 +10857,8 @@ export const getCampaignAnalytics = <ThrowOnError extends boolean = false>(optio
10724
10857
 
10725
10858
  /**
10726
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
+ *
10727
10862
  * Renders how a creative would look per placement BEFORE any ad exists, via Meta's
10728
10863
  * `/generatepreviews`. Provide exactly one creative source: `existingCreativeId` or `creativeSpec`.
10729
10864
  * Each preview is an HTML `<iframe>` snippet embeddable directly. Unknown `formats` values
@@ -10739,6 +10874,8 @@ export const generateAdPreviews = <ThrowOnError extends boolean = false>(options
10739
10874
 
10740
10875
  /**
10741
10876
  * Render previews of an existing ad
10877
+ * Shows how an existing Meta ad looks in each placement, as embeddable previews.
10878
+ *
10742
10879
  * Renders an EXISTING ad per placement via Meta's `/{ad_id}/previews`. Each preview is an HTML
10743
10880
  * `<iframe>` snippet embeddable directly. Unknown `formats` values return Meta's 400 verbatim.
10744
10881
  *
@@ -10752,6 +10889,8 @@ export const getAdPreviews = <ThrowOnError extends boolean = false>(options: Opt
10752
10889
 
10753
10890
  /**
10754
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
+ *
10755
10894
  * Reads the ad's review verdict from the platform now: whether it was approved, where it may
10756
10895
  * not deliver, and every rejection reason with TikTok's suggestion and the piece of content it
10757
10896
  * refers to. Read-only, so it works on a paused ad without re-enabling it.
@@ -10779,6 +10918,8 @@ export const getAdReview = <ThrowOnError extends boolean = false>(options: Optio
10779
10918
 
10780
10919
  /**
10781
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
+ *
10782
10923
  * Returns the direct signed URLs for every video and image asset used by an ad's live
10783
10924
  * creative, normalised across shapes: single image/video, carousel,
10784
10925
  * Reels/Story (`object_story_spec.video_data`) and dynamic
@@ -10804,6 +10945,8 @@ export const getAdMedia = <ThrowOnError extends boolean = false>(options: Option
10804
10945
 
10805
10946
  /**
10806
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
+ *
10807
10950
  * Google Ads only. Runs Keyword Planner's generateKeywordIdeas from seed keywords, a seed URL,
10808
10951
  * or both, returning idea rows verbatim (avgMonthlySearches, competition, competitionIndex,
10809
10952
  * top-of-page bid micros, monthlySearchVolumes). Counters are int64s encoded as strings; bid
@@ -10819,6 +10962,8 @@ export const generateKeywordIdeas = <ThrowOnError extends boolean = false>(optio
10819
10962
 
10820
10963
  /**
10821
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
+ *
10822
10967
  * Google Ads only. Runs Keyword Planner's generateKeywordHistoricalMetrics for up to 1,000
10823
10968
  * exact keywords: historical search volume, competition and top-of-page bid ranges, plus
10824
10969
  * averageCpcMicros when includeAverageCpc is set. Rows come back verbatim; counters are int64s
@@ -10834,7 +10979,9 @@ export const generateKeywordHistoricalMetrics = <ThrowOnError extends boolean =
10834
10979
 
10835
10980
  /**
10836
10981
  * Flexible live insights query
10837
- * 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:
10838
10985
  *
10839
10986
  * **Meta (facebook/instagram)**: forwards caller-chosen `fields`, `breakdowns` and `filtering`
10840
10987
  * to any Meta insights node and returns Meta's rows verbatim. `objectId` (required) selects the
@@ -10885,7 +11032,9 @@ export const queryAdInsights = <ThrowOnError extends boolean = false>(options: O
10885
11032
 
10886
11033
  /**
10887
11034
  * Submit async insights report
10888
- * 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
10889
11038
  * in the JSON body; Meta processes the report server-side, which is the right choice for long
10890
11039
  * ranges or large accounts where the sync query is slow or rate-limited. Returns a `reportRunId`
10891
11040
  * to poll via GET /v1/ads/insights/reports/{reportRunId}.
@@ -10900,6 +11049,8 @@ export const createAdInsightsReport = <ThrowOnError extends boolean = false>(opt
10900
11049
 
10901
11050
  /**
10902
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
+ *
10903
11054
  * Status and results for a report run created via POST /v1/ads/insights/reports. While the job
10904
11055
  * runs, returns `status` and `percentCompletion`. Once `status` is "Job Completed" the response
10905
11056
  * also carries a `data` page, cursor-paginated via `limit` / `after`.
@@ -10914,7 +11065,9 @@ export const getAdInsightsReport = <ThrowOnError extends boolean = false>(option
10914
11065
 
10915
11066
  /**
10916
11067
  * Get ad analytics
10917
- * 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
10918
11071
  * over the requested date range, and optional demographic breakdowns (Meta and TikTok only).
10919
11072
  * If no date range is provided, defaults to the last 90 days. Date range is capped at 730 days max.
10920
11073
  *
@@ -10928,6 +11081,8 @@ export const getAdAnalytics = <ThrowOnError extends boolean = false>(options: Op
10928
11081
 
10929
11082
  /**
10930
11083
  * Get ad tracking tags
11084
+ * Shows the tracking parameters added to an ad's click URLs, such as UTM tags (not pixels).
11085
+ *
10931
11086
  * Unified read of the platform's native click-URL tracking params.
10932
11087
  * - Meta (facebook/instagram): the creative's `url_tags` (and template_url_spec).
10933
11088
  * - Google (googleads): the campaign's `trackingUrlTemplate` + `finalUrlSuffix`.
@@ -10949,7 +11104,9 @@ export const getAdTrackingTags = <ThrowOnError extends boolean = false>(options:
10949
11104
 
10950
11105
  /**
10951
11106
  * Set ad tracking tags
10952
- * 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:
10953
11110
  * - Meta: `urlTags` (array of {key,value}). Meta creatives are immutable, so this rebuilds the
10954
11111
  * creative and repoints the ad. By DEFAULT we PRESERVE the existing creative verbatim
10955
11112
  * (re-post its object_story_spec + the new url_tags, reusing the image), so you send `urlTags`
@@ -10972,7 +11129,9 @@ export const updateAdTrackingTags = <ThrowOnError extends boolean = false>(optio
10972
11129
 
10973
11130
  /**
10974
11131
  * List comments on an ad
10975
- * 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
10976
11135
  * engagement on dark posts (ad creatives that never went live organically), which the
10977
11136
  * regular GET /v1/inbox/comments/{postId} endpoint cannot serve because dark posts are
10978
11137
  * not in Zernio's post database.
@@ -11123,6 +11282,8 @@ export const listAdsBusinessCenters = <ThrowOnError extends boolean = false>(opt
11123
11282
 
11124
11283
  /**
11125
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
+ *
11126
11287
  * **Google**: reads the customer's `change_event` history, newest first. Google keeps 30 days
11127
11288
  * of it, so `since` defaults to 29 days ago and an older `since` returns 400; `until`
11128
11289
  * defaults to today. Each change is mapped onto the Meta row shape: `event_type` =
@@ -11151,7 +11312,9 @@ export const getAdsActivityLog = <ThrowOnError extends boolean = false>(options:
11151
11312
 
11152
11313
  /**
11153
11314
  * Create reach-frequency prediction
11154
- * 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.
11155
11318
  * Provide a date range plus exactly one of `budgetAmount` (Meta predicts reach) or `reach`
11156
11319
  * (Meta predicts the budget). The response carries the estimate and its allowed bounds
11157
11320
  * (min/max budget and reach). Predictions expire on their own; to buy, reserve one via
@@ -11162,6 +11325,7 @@ export const getAdsActivityLog = <ThrowOnError extends boolean = false>(options:
11162
11325
  * omitted, `targeting.placements` is used; when neither is set, placements default to
11163
11326
  * Facebook feed (+ Instagram stream when a linked IG professional account resolves).
11164
11327
  * Instagram placements require that IG account.
11328
+ *
11165
11329
  */
11166
11330
  export const createRfPrediction = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateRfPredictionData, ThrowOnError>) => {
11167
11331
  return (options?.client ?? client).post<CreateRfPredictionResponse, CreateRfPredictionError, ThrowOnError>({
@@ -11172,6 +11336,8 @@ export const createRfPrediction = <ThrowOnError extends boolean = false>(options
11172
11336
 
11173
11337
  /**
11174
11338
  * Get reach-frequency prediction
11339
+ * Shows a Meta reach and frequency prediction, with its estimate and status.
11340
+ *
11175
11341
  */
11176
11342
  export const getRfPrediction = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetRfPredictionData, ThrowOnError>) => {
11177
11343
  return (options?.client ?? client).get<GetRfPredictionResponse, GetRfPredictionError, ThrowOnError>({
@@ -11182,7 +11348,10 @@ export const getRfPrediction = <ThrowOnError extends boolean = false>(options: O
11182
11348
 
11183
11349
  /**
11184
11350
  * Cancel reach-frequency booking
11185
- * 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
+ *
11186
11355
  */
11187
11356
  export const cancelRfReservation = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CancelRfReservationData, ThrowOnError>) => {
11188
11357
  return (options?.client ?? client).delete<CancelRfReservationResponse, CancelRfReservationError, ThrowOnError>({
@@ -11193,6 +11362,8 @@ export const cancelRfReservation = <ThrowOnError extends boolean = false>(option
11193
11362
 
11194
11363
  /**
11195
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
+ *
11196
11367
  * Locks the quoted price + inventory until the returned `expiresAt` and mints a NEW
11197
11368
  * prediction id. Pass that RESERVED id (not the original) as `rfPredictionId` on
11198
11369
  * POST /v1/ads/create. Release an unused reservation via DELETE.
@@ -11206,6 +11377,8 @@ export const reserveRfPrediction = <ThrowOnError extends boolean = false>(option
11206
11377
 
11207
11378
  /**
11208
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
+ *
11209
11382
  * Lists the ad account's A/B tests and lift studies (Meta's `/act_X/ad_studies`), rows
11210
11383
  * returned verbatim. The default projection covers id, name, type, timing and cells with
11211
11384
  * split percentages; `fields` is a raw-passthrough override.
@@ -11241,7 +11414,10 @@ export const getTikTokSmartPlusMaterialReport = <ThrowOnError extends boolean =
11241
11414
 
11242
11415
  /**
11243
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
+ *
11244
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
+ *
11245
11421
  */
11246
11422
  export const listAdsInstagramAccounts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdsInstagramAccountsData, ThrowOnError>) => {
11247
11423
  return (options?.client ?? client).get<ListAdsInstagramAccountsResponse, ListAdsInstagramAccountsError, ThrowOnError>({
@@ -11252,7 +11428,10 @@ export const listAdsInstagramAccounts = <ThrowOnError extends boolean = false>(o
11252
11428
 
11253
11429
  /**
11254
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
+ *
11255
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
+ *
11256
11435
  */
11257
11436
  export const listAdsInstagramPosts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdsInstagramPostsData, ThrowOnError>) => {
11258
11437
  return (options?.client ?? client).get<ListAdsInstagramPostsResponse, ListAdsInstagramPostsError, ThrowOnError>({
@@ -11263,7 +11442,10 @@ export const listAdsInstagramPosts = <ThrowOnError extends boolean = false>(opti
11263
11442
 
11264
11443
  /**
11265
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
+ *
11266
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
+ *
11267
11449
  */
11268
11450
  export const listAdvertisableApplications = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdvertisableApplicationsData, ThrowOnError>) => {
11269
11451
  return (options?.client ?? client).get<ListAdvertisableApplicationsResponse, ListAdvertisableApplicationsError, ThrowOnError>({
@@ -11274,7 +11456,10 @@ export const listAdvertisableApplications = <ThrowOnError extends boolean = fals
11274
11456
 
11275
11457
  /**
11276
11458
  * Get iOS 14 campaign limits
11277
- * 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
+ *
11278
11463
  */
11279
11464
  export const getIosFourteenCampaignLimits = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetIosFourteenCampaignLimitsData, ThrowOnError>) => {
11280
11465
  return (options?.client ?? client).get<GetIosFourteenCampaignLimitsResponse, GetIosFourteenCampaignLimitsError, ThrowOnError>({
@@ -11285,6 +11470,8 @@ export const getIosFourteenCampaignLimits = <ThrowOnError extends boolean = fals
11285
11470
 
11286
11471
  /**
11287
11472
  * Businesses list
11473
+ * Lists the Meta business portfolios the connected user belongs to, with their verification status.
11474
+ *
11288
11475
  * Business Manager portfolios the connected Meta user belongs to (Meta's `/me/businesses`),
11289
11476
  * rows returned verbatim (id, name, verification_status, created_time). Token-scoped, so no
11290
11477
  * `adAccountId` is needed. For TikTok Business Centers use
@@ -11299,6 +11486,8 @@ export const listMetaBusinesses = <ThrowOnError extends boolean = false>(options
11299
11486
 
11300
11487
  /**
11301
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
+ *
11302
11491
  * People and system users of a Meta business portfolio, with the business-scoped ids that
11303
11492
  * `POST /v1/ads/accounts/users` and `POST /v1/ads/page-users` take. The connected Meta
11304
11493
  * user must be an admin of the portfolio.
@@ -11312,6 +11501,8 @@ export const listMetaBusinessUsers = <ThrowOnError extends boolean = false>(opti
11312
11501
 
11313
11502
  /**
11314
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
+ *
11315
11506
  * People of a business portfolio assigned to a Facebook Page the portfolio owns or was
11316
11507
  * granted as a partner (`POST /v1/accounts/{accountId}/business-partners` on the owner side).
11317
11508
  */
@@ -11324,6 +11515,8 @@ export const listPageUsers = <ThrowOnError extends boolean = false>(options: Opt
11324
11515
 
11325
11516
  /**
11326
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
+ *
11327
11520
  * Gives a person of the portfolio tasks on a Page the portfolio owns or was granted as a
11328
11521
  * partner. Meta does not assign partner admins automatically, so after an owner shares a
11329
11522
  * Page the partner calls this for the people whose tokens will advertise for it.
@@ -11339,6 +11532,8 @@ export const assignPageUser = <ThrowOnError extends boolean = false>(options: Op
11339
11532
 
11340
11533
  /**
11341
11534
  * Remove a user from a Page
11535
+ * Removes a person's access to a Facebook Page assigned through your business portfolio.
11536
+ *
11342
11537
  */
11343
11538
  export const removePageUser = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemovePageUserData, ThrowOnError>) => {
11344
11539
  return (options?.client ?? client).delete<RemovePageUserResponse, RemovePageUserError, ThrowOnError>({
@@ -11349,7 +11544,7 @@ export const removePageUser = <ThrowOnError extends boolean = false>(options: Op
11349
11544
 
11350
11545
  /**
11351
11546
  * List ad labels
11352
- * Lists the organizational labels on an ad account.
11547
+ * Lists the labels used to organise campaigns and ads in an ad account.
11353
11548
  *
11354
11549
  * - **Meta**: pass `adAccountId=act_<n>`. Rows are Meta's `/act_X/adlabels` returned verbatim
11355
11550
  * (id, name, created/updated time), paginated with `limit` / `after`.
@@ -11357,6 +11552,7 @@ export const removePageUser = <ThrowOnError extends boolean = false>(options: Op
11357
11552
  * connection has a single customer). Returns every non-removed label as a `GoogleAdLabel`
11358
11553
  * in one page (`paging.after` is always null). Reads are cached for 10 minutes; when the
11359
11554
  * shared Google quota is exhausted the last successful result is served with `stale: true`.
11555
+ *
11360
11556
  */
11361
11557
  export const listAdLabels = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdLabelsData, ThrowOnError>) => {
11362
11558
  return (options?.client ?? client).get<ListAdLabelsResponse, ListAdLabelsError, ThrowOnError>({
@@ -11367,9 +11563,12 @@ export const listAdLabels = <ThrowOnError extends boolean = false>(options: Opti
11367
11563
 
11368
11564
  /**
11369
11565
  * Create a Google Ads label
11370
- * 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
11371
11569
  * keywords with `POST /v1/ads/labels/{labelId}/assignments`. Label names are unique per
11372
11570
  * customer; a duplicate is a 400.
11571
+ *
11373
11572
  */
11374
11573
  export const createAdLabel = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdLabelData, ThrowOnError>) => {
11375
11574
  return (options?.client ?? client).post<CreateAdLabelResponse, CreateAdLabelError, ThrowOnError>({
@@ -11380,7 +11579,10 @@ export const createAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11380
11579
 
11381
11580
  /**
11382
11581
  * Update a Google Ads label
11383
- * 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
+ *
11384
11586
  */
11385
11587
  export const updateAdLabel = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdLabelData, ThrowOnError>) => {
11386
11588
  return (options?.client ?? client).patch<UpdateAdLabelResponse, UpdateAdLabelError, ThrowOnError>({
@@ -11391,7 +11593,10 @@ export const updateAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11391
11593
 
11392
11594
  /**
11393
11595
  * Remove a Google Ads label
11394
- * 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
+ *
11395
11600
  */
11396
11601
  export const removeAdLabel = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAdLabelData, ThrowOnError>) => {
11397
11602
  return (options?.client ?? client).delete<RemoveAdLabelResponse, RemoveAdLabelError, ThrowOnError>({
@@ -11402,6 +11607,8 @@ export const removeAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11402
11607
 
11403
11608
  /**
11404
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
+ *
11405
11612
  * Attaches the label to campaigns, ad groups, ads and keywords (Google CampaignLabel,
11406
11613
  * AdGroupLabel, AdGroupAdLabel and AdGroupCriterionLabel) in one mutate. Idempotent: a
11407
11614
  * target that already carries the label is counted in `unchanged` instead of failing the
@@ -11418,7 +11625,10 @@ export const attachAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11418
11625
 
11419
11626
  /**
11420
11627
  * Detach a Google Ads label
11421
- * 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
+ *
11422
11632
  */
11423
11633
  export const detachAdLabel = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DetachAdLabelData, ThrowOnError>) => {
11424
11634
  return (options?.client ?? client).delete<DetachAdLabelResponse, DetachAdLabelError, ThrowOnError>({
@@ -11429,6 +11639,8 @@ export const detachAdLabel = <ThrowOnError extends boolean = false>(options: Opt
11429
11639
 
11430
11640
  /**
11431
11641
  * List high-demand periods
11642
+ * Lists the scheduled budget increases set on a Meta campaign or ad set.
11643
+ *
11432
11644
  * Scheduled budget increases (Meta's budget-scheduling API). The Graph edge lives on the
11433
11645
  * campaign and ad-set nodes only, so exactly one of `campaignId` / `adSetId` (platform
11434
11646
  * ids) is required. Rows returned verbatim (budget_value, budget_value_type, time window,
@@ -11443,8 +11655,9 @@ export const listHighDemandPeriods = <ThrowOnError extends boolean = false>(opti
11443
11655
 
11444
11656
  /**
11445
11657
  * Schedule a budget increase
11446
- * Pre-schedule a temporary budget increase (Black Friday, a launch, a sale) instead of
11447
- * 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
11448
11661
  * `campaignId` / `adSetId`.
11449
11662
  *
11450
11663
  * Two Meta constraints worth knowing before you call it. `timeStart` / `timeEnd` must
@@ -11452,6 +11665,7 @@ export const listHighDemandPeriods = <ThrowOnError extends boolean = false>(opti
11452
11665
  * across its schedules; the second type is rejected with "Can't mix your budget scaling
11453
11666
  * selection". Window rules (must sit inside the campaign's run dates, minimum lead time,
11454
11667
  * no overlap) are Meta's and its message is forwarded verbatim.
11668
+ *
11455
11669
  */
11456
11670
  export const createHighDemandPeriod = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateHighDemandPeriodData, ThrowOnError>) => {
11457
11671
  return (options?.client ?? client).post<CreateHighDemandPeriodResponse, CreateHighDemandPeriodError, ThrowOnError>({
@@ -11462,6 +11676,8 @@ export const createHighDemandPeriod = <ThrowOnError extends boolean = false>(opt
11462
11676
 
11463
11677
  /**
11464
11678
  * Creative library
11679
+ * Lists the creatives saved in a Meta ad account so you can reuse one in a new ad.
11680
+ *
11465
11681
  * Lists the ad account's creative library (Meta's `/act_X/adcreatives`), rows returned
11466
11682
  * verbatim. The default projection covers id, name, status, object type, thumbnail,
11467
11683
  * object_story_spec / asset_feed_spec and url_tags; `fields` is a raw-passthrough
@@ -11477,6 +11693,8 @@ export const listAdCreatives = <ThrowOnError extends boolean = false>(options: O
11477
11693
 
11478
11694
  /**
11479
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
+ *
11480
11698
  * Creates a creative in the library WITHOUT an ad, reusable on the create endpoints via
11481
11699
  * `existingCreativeId`. Provide exactly one of `imageUrl` (uploaded server-side),
11482
11700
  * `imageHash` (from POST /v1/ads/images or the library list), or `carouselCards` (2-10
@@ -11493,6 +11711,8 @@ export const createAdCreative = <ThrowOnError extends boolean = false>(options:
11493
11711
 
11494
11712
  /**
11495
11713
  * Creative details
11714
+ * Shows the details of one Meta creative, such as its content, status and thumbnail.
11715
+ *
11496
11716
  * One creative's details, verbatim from Meta. `fields` is a raw-passthrough override of
11497
11717
  * the default projection.
11498
11718
  */
@@ -11505,9 +11725,12 @@ export const getAdCreative = <ThrowOnError extends boolean = false>(options: Opt
11505
11725
 
11506
11726
  /**
11507
11727
  * Rename a creative
11508
- * 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
11509
11731
  * create a new creative (POST /v1/ads/creatives) and swap it onto the ad
11510
11732
  * (PUT /v1/ads/{adId} with `creative`).
11733
+ *
11511
11734
  */
11512
11735
  export const updateAdCreative = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdCreativeData, ThrowOnError>) => {
11513
11736
  return (options?.client ?? client).put<UpdateAdCreativeResponse, UpdateAdCreativeError, ThrowOnError>({
@@ -11518,8 +11741,11 @@ export const updateAdCreative = <ThrowOnError extends boolean = false>(options:
11518
11741
 
11519
11742
  /**
11520
11743
  * Delete a creative
11521
- * 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
11522
11747
  * by any ad; otherwise its 400 surfaces verbatim.
11748
+ *
11523
11749
  */
11524
11750
  export const deleteAdCreative = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdCreativeData, ThrowOnError>) => {
11525
11751
  return (options?.client ?? client).delete<DeleteAdCreativeResponse, DeleteAdCreativeError, ThrowOnError>({
@@ -11530,6 +11756,8 @@ export const deleteAdCreative = <ThrowOnError extends boolean = false>(options:
11530
11756
 
11531
11757
  /**
11532
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
+ *
11533
11761
  * Lists the ad account's value rule sets (Meta's `/act_X/value_rule_set`). A value rule
11534
11762
  * set adjusts the auction bid up or down for audience segments you value differently;
11535
11763
  * attach one to an ad set with `valueRuleSetId` on `POST /v1/ads/create` or
@@ -11557,6 +11785,8 @@ export const listValueRuleSets = <ThrowOnError extends boolean = false>(options:
11557
11785
 
11558
11786
  /**
11559
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
+ *
11560
11790
  * Creates a value rule set on the ad account (Meta's `POST /act_X/value_rule_set`).
11561
11791
  * Attach the returned id to an ad set with `valueRuleSetId` on `POST /v1/ads/create` or
11562
11792
  * `PUT /v1/ads/ad-sets/{adSetId}`.
@@ -11597,6 +11827,8 @@ export const createValueRuleSet = <ThrowOnError extends boolean = false>(options
11597
11827
 
11598
11828
  /**
11599
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
+ *
11600
11832
  * Reads one value rule set including every nested rule id and criterion id. This is step
11601
11833
  * one of any edit: `PUT` is a full replace, so you need the ids before you can keep the
11602
11834
  * objects you are not changing.
@@ -11614,6 +11846,8 @@ export const getValueRuleSet = <ThrowOnError extends boolean = false>(options: O
11614
11846
 
11615
11847
  /**
11616
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
+ *
11617
11851
  * **THIS IS A FULL REPLACE, NOT A PATCH.** Meta's update is declarative: the body you
11618
11852
  * send becomes the rule set.
11619
11853
  *
@@ -11640,6 +11874,8 @@ export const updateValueRuleSet = <ThrowOnError extends boolean = false>(options
11640
11874
 
11641
11875
  /**
11642
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
+ *
11643
11879
  * Deletes the rule set (Meta's `POST /{value-rule-set-id}/delete_rule_set`, a custom
11644
11880
  * action edge rather than an HTTP DELETE on its side). Ad sets pointing at it are not
11645
11881
  * modified here; detach them first with `valueRulesApplied: false` on
@@ -11654,7 +11890,10 @@ export const deleteValueRuleSet = <ThrowOnError extends boolean = false>(options
11654
11890
 
11655
11891
  /**
11656
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
+ *
11657
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
+ *
11658
11897
  */
11659
11898
  export const listAdNegativeKeywordLists = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdNegativeKeywordListsData, ThrowOnError>) => {
11660
11899
  return (options?.client ?? client).get<ListAdNegativeKeywordListsResponse, ListAdNegativeKeywordListsError, ThrowOnError>({
@@ -11665,7 +11904,10 @@ export const listAdNegativeKeywordLists = <ThrowOnError extends boolean = false>
11665
11904
 
11666
11905
  /**
11667
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
+ *
11668
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
+ *
11669
11911
  */
11670
11912
  export const createAdNegativeKeywordList = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdNegativeKeywordListData, ThrowOnError>) => {
11671
11913
  return (options?.client ?? client).post<CreateAdNegativeKeywordListResponse, CreateAdNegativeKeywordListError, ThrowOnError>({
@@ -11676,7 +11918,10 @@ export const createAdNegativeKeywordList = <ThrowOnError extends boolean = false
11676
11918
 
11677
11919
  /**
11678
11920
  * Get a negative keyword list
11921
+ * Shows one shared Google Ads negative keyword list with all of its keywords.
11922
+ *
11679
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
+ *
11680
11925
  */
11681
11926
  export const getAdNegativeKeywordList = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdNegativeKeywordListData, ThrowOnError>) => {
11682
11927
  return (options?.client ?? client).get<GetAdNegativeKeywordListResponse, GetAdNegativeKeywordListError, ThrowOnError>({
@@ -11687,7 +11932,10 @@ export const getAdNegativeKeywordList = <ThrowOnError extends boolean = false>(o
11687
11932
 
11688
11933
  /**
11689
11934
  * Rename a negative keyword list
11690
- * 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
+ *
11691
11939
  */
11692
11940
  export const updateAdNegativeKeywordList = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdNegativeKeywordListData, ThrowOnError>) => {
11693
11941
  return (options?.client ?? client).put<UpdateAdNegativeKeywordListResponse, UpdateAdNegativeKeywordListError, ThrowOnError>({
@@ -11698,7 +11946,10 @@ export const updateAdNegativeKeywordList = <ThrowOnError extends boolean = false
11698
11946
 
11699
11947
  /**
11700
11948
  * Delete a negative keyword list
11701
- * 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
+ *
11702
11953
  */
11703
11954
  export const deleteAdNegativeKeywordList = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdNegativeKeywordListData, ThrowOnError>) => {
11704
11955
  return (options?.client ?? client).delete<DeleteAdNegativeKeywordListResponse, DeleteAdNegativeKeywordListError, ThrowOnError>({
@@ -11709,7 +11960,10 @@ export const deleteAdNegativeKeywordList = <ThrowOnError extends boolean = false
11709
11960
 
11710
11961
  /**
11711
11962
  * Replace negative list keywords
11712
- * 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
+ *
11713
11967
  */
11714
11968
  export const replaceAdNegativeKeywordListKeywords = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ReplaceAdNegativeKeywordListKeywordsData, ThrowOnError>) => {
11715
11969
  return (options?.client ?? client).put<ReplaceAdNegativeKeywordListKeywordsResponse, ReplaceAdNegativeKeywordListKeywordsError, ThrowOnError>({
@@ -11720,7 +11974,10 @@ export const replaceAdNegativeKeywordListKeywords = <ThrowOnError extends boolea
11720
11974
 
11721
11975
  /**
11722
11976
  * List campaign negative lists
11723
- * 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
+ *
11724
11981
  */
11725
11982
  export const listCampaignNegativeKeywordLists = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListCampaignNegativeKeywordListsData, ThrowOnError>) => {
11726
11983
  return (options?.client ?? client).get<ListCampaignNegativeKeywordListsResponse, ListCampaignNegativeKeywordListsError, ThrowOnError>({
@@ -11731,7 +11988,10 @@ export const listCampaignNegativeKeywordLists = <ThrowOnError extends boolean =
11731
11988
 
11732
11989
  /**
11733
11990
  * Replace campaign negative lists
11734
- * 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
+ *
11735
11995
  */
11736
11996
  export const replaceCampaignNegativeKeywordLists = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ReplaceCampaignNegativeKeywordListsData, ThrowOnError>) => {
11737
11997
  return (options?.client ?? client).put<ReplaceCampaignNegativeKeywordListsResponse, ReplaceCampaignNegativeKeywordListsError, ThrowOnError>({
@@ -11742,7 +12002,10 @@ export const replaceCampaignNegativeKeywordLists = <ThrowOnError extends boolean
11742
12002
 
11743
12003
  /**
11744
12004
  * List account callouts
11745
- * 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
+ *
11746
12009
  */
11747
12010
  export const listAccountCallouts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAccountCalloutsData, ThrowOnError>) => {
11748
12011
  return (options?.client ?? client).get<ListAccountCalloutsResponse, ListAccountCalloutsError, ThrowOnError>({
@@ -11753,7 +12016,10 @@ export const listAccountCallouts = <ThrowOnError extends boolean = false>(option
11753
12016
 
11754
12017
  /**
11755
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
+ *
11756
12021
  * Creates assets and customer_asset links for this Google customer. Links apply at account level.
12022
+ *
11757
12023
  */
11758
12024
  export const addAccountCallouts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AddAccountCalloutsData, ThrowOnError>) => {
11759
12025
  return (options?.client ?? client).post<AddAccountCalloutsResponse, AddAccountCalloutsError, ThrowOnError>({
@@ -11764,7 +12030,10 @@ export const addAccountCallouts = <ThrowOnError extends boolean = false>(options
11764
12030
 
11765
12031
  /**
11766
12032
  * Update account callouts
11767
- * 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
+ *
11768
12037
  */
11769
12038
  export const updateAccountCallouts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAccountCalloutsData, ThrowOnError>) => {
11770
12039
  return (options?.client ?? client).put<UpdateAccountCalloutsResponse, UpdateAccountCalloutsError, ThrowOnError>({
@@ -11775,7 +12044,10 @@ export const updateAccountCallouts = <ThrowOnError extends boolean = false>(opti
11775
12044
 
11776
12045
  /**
11777
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
+ *
11778
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
+ *
11779
12051
  */
11780
12052
  export const removeAccountCallout = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAccountCalloutData, ThrowOnError>) => {
11781
12053
  return (options?.client ?? client).delete<RemoveAccountCalloutResponse, RemoveAccountCalloutError, ThrowOnError>({
@@ -11786,7 +12058,10 @@ export const removeAccountCallout = <ThrowOnError extends boolean = false>(optio
11786
12058
 
11787
12059
  /**
11788
12060
  * List account sitelinks
11789
- * 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
+ *
11790
12065
  */
11791
12066
  export const listAccountSitelinks = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAccountSitelinksData, ThrowOnError>) => {
11792
12067
  return (options?.client ?? client).get<ListAccountSitelinksResponse, ListAccountSitelinksError, ThrowOnError>({
@@ -11797,7 +12072,10 @@ export const listAccountSitelinks = <ThrowOnError extends boolean = false>(optio
11797
12072
 
11798
12073
  /**
11799
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
+ *
11800
12077
  * Creates assets and customer_asset links for this Google customer. Links apply at account level.
12078
+ *
11801
12079
  */
11802
12080
  export const addAccountSitelinks = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AddAccountSitelinksData, ThrowOnError>) => {
11803
12081
  return (options?.client ?? client).post<AddAccountSitelinksResponse, AddAccountSitelinksError, ThrowOnError>({
@@ -11808,7 +12086,10 @@ export const addAccountSitelinks = <ThrowOnError extends boolean = false>(option
11808
12086
 
11809
12087
  /**
11810
12088
  * Update account sitelinks
11811
- * 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
+ *
11812
12093
  */
11813
12094
  export const updateAccountSitelinks = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAccountSitelinksData, ThrowOnError>) => {
11814
12095
  return (options?.client ?? client).put<UpdateAccountSitelinksResponse, UpdateAccountSitelinksError, ThrowOnError>({
@@ -11819,7 +12100,10 @@ export const updateAccountSitelinks = <ThrowOnError extends boolean = false>(opt
11819
12100
 
11820
12101
  /**
11821
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
+ *
11822
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
+ *
11823
12107
  */
11824
12108
  export const removeAccountSitelink = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAccountSitelinkData, ThrowOnError>) => {
11825
12109
  return (options?.client ?? client).delete<RemoveAccountSitelinkResponse, RemoveAccountSitelinkError, ThrowOnError>({
@@ -11830,7 +12114,10 @@ export const removeAccountSitelink = <ThrowOnError extends boolean = false>(opti
11830
12114
 
11831
12115
  /**
11832
12116
  * List account snippets
11833
- * 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
+ *
11834
12121
  */
11835
12122
  export const listAccountStructuredSnippets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAccountStructuredSnippetsData, ThrowOnError>) => {
11836
12123
  return (options?.client ?? client).get<ListAccountStructuredSnippetsResponse, ListAccountStructuredSnippetsError, ThrowOnError>({
@@ -11841,7 +12128,10 @@ export const listAccountStructuredSnippets = <ThrowOnError extends boolean = fal
11841
12128
 
11842
12129
  /**
11843
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
+ *
11844
12133
  * Creates assets and customer_asset links for this Google customer. Links apply at account level.
12134
+ *
11845
12135
  */
11846
12136
  export const addAccountStructuredSnippets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AddAccountStructuredSnippetsData, ThrowOnError>) => {
11847
12137
  return (options?.client ?? client).post<AddAccountStructuredSnippetsResponse, AddAccountStructuredSnippetsError, ThrowOnError>({
@@ -11852,7 +12142,10 @@ export const addAccountStructuredSnippets = <ThrowOnError extends boolean = fals
11852
12142
 
11853
12143
  /**
11854
12144
  * Update account snippets
11855
- * 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
+ *
11856
12149
  */
11857
12150
  export const updateAccountStructuredSnippets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAccountStructuredSnippetsData, ThrowOnError>) => {
11858
12151
  return (options?.client ?? client).put<UpdateAccountStructuredSnippetsResponse, UpdateAccountStructuredSnippetsError, ThrowOnError>({
@@ -11863,7 +12156,10 @@ export const updateAccountStructuredSnippets = <ThrowOnError extends boolean = f
11863
12156
 
11864
12157
  /**
11865
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
+ *
11866
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
+ *
11867
12163
  */
11868
12164
  export const removeAccountStructuredSnippet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAccountStructuredSnippetData, ThrowOnError>) => {
11869
12165
  return (options?.client ?? client).delete<RemoveAccountStructuredSnippetResponse, RemoveAccountStructuredSnippetError, ThrowOnError>({
@@ -11874,6 +12170,8 @@ export const removeAccountStructuredSnippet = <ThrowOnError extends boolean = fa
11874
12170
 
11875
12171
  /**
11876
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
+ *
11877
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).
11878
12176
  */
11879
12177
  export const getAdAccountHierarchy = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdAccountHierarchyData, ThrowOnError>) => {
@@ -11885,6 +12183,8 @@ export const getAdAccountHierarchy = <ThrowOnError extends boolean = false>(opti
11885
12183
 
11886
12184
  /**
11887
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
+ *
11888
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.
11889
12189
  */
11890
12190
  export const inviteAdAccountToManager = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<InviteAdAccountToManagerData, ThrowOnError>) => {
@@ -11896,6 +12196,8 @@ export const inviteAdAccountToManager = <ThrowOnError extends boolean = false>(o
11896
12196
 
11897
12197
  /**
11898
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
+ *
11899
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.
11900
12202
  */
11901
12203
  export const updateAdAccountManagerLink = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdAccountManagerLinkData, ThrowOnError>) => {
@@ -11907,8 +12209,10 @@ export const updateAdAccountManagerLink = <ThrowOnError extends boolean = false>
11907
12209
 
11908
12210
  /**
11909
12211
  * Ad account users
11910
- * 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
+ *
11911
12214
  * Ids are business-scoped user ids (see `GET /v1/ads/businesses/users`).
12215
+ *
11912
12216
  */
11913
12217
  export const listAdAccountUsers = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdAccountUsersData, ThrowOnError>) => {
11914
12218
  return (options?.client ?? client).get<ListAdAccountUsersResponse, ListAdAccountUsersError, ThrowOnError>({
@@ -11919,9 +12223,12 @@ export const listAdAccountUsers = <ThrowOnError extends boolean = false>(options
11919
12223
 
11920
12224
  /**
11921
12225
  * Assign a user to an ad account
11922
- * 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`
11923
12229
  * creates and edits ads, `ANALYZE` reads reports, `DRAFT` edits drafts only. Assigning an
11924
12230
  * already assigned user replaces their task set.
12231
+ *
11925
12232
  */
11926
12233
  export const assignAdAccountUser = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<AssignAdAccountUserData, ThrowOnError>) => {
11927
12234
  return (options?.client ?? client).post<AssignAdAccountUserResponse, AssignAdAccountUserError, ThrowOnError>({
@@ -11932,6 +12239,8 @@ export const assignAdAccountUser = <ThrowOnError extends boolean = false>(option
11932
12239
 
11933
12240
  /**
11934
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
+ *
11935
12244
  */
11936
12245
  export const removeAdAccountUser = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveAdAccountUserData, ThrowOnError>) => {
11937
12246
  return (options?.client ?? client).delete<RemoveAdAccountUserResponse, RemoveAdAccountUserError, ThrowOnError>({
@@ -11942,6 +12251,8 @@ export const removeAdAccountUser = <ThrowOnError extends boolean = false>(option
11942
12251
 
11943
12252
  /**
11944
12253
  * Ad account finances
12254
+ * Shows a Meta ad account's balance, total spend, spend cap and funding source.
12255
+ *
11945
12256
  * Finances of one Meta ad account: prepaid `balance`, lifetime `amountSpent`, account
11946
12257
  * `spendCap` (null = no cap) and the `fundingSource`. Money values are converted from
11947
12258
  * Meta's minor units to whole units of `currency`.
@@ -11955,6 +12266,8 @@ export const getAdAccountFinance = <ThrowOnError extends boolean = false>(option
11955
12266
 
11956
12267
  /**
11957
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
+ *
11958
12271
  * Reads the campaigns and ad sets of one Meta ad account or TikTok advertiser **live from
11959
12272
  * the platform**, so it is cheap enough to run before every write: for example a
11960
12273
  * per-ad-account spend ceiling that must see the current daily / lifetime budget rather
@@ -11999,6 +12312,8 @@ export const getAdAccountLiveEntities = <ThrowOnError extends boolean = false>(o
11999
12312
 
12000
12313
  /**
12001
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
+ *
12002
12317
  * Creates a durable Meta ad account in the end user's own business portfolio using
12003
12318
  * their connected Meta Ads token. Requires an active metaads accountId, Ads access,
12004
12319
  * business_management permission and business admin access. Discover portfolios with
@@ -12038,6 +12353,8 @@ export const createAdAccount = <ThrowOnError extends boolean = false>(options: O
12038
12353
 
12039
12354
  /**
12040
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
+ *
12041
12358
  * Returns the platform ad accounts available for the given account (e.g. Meta ad
12042
12359
  * accounts, TikTok advertiser IDs, Google Ads customer IDs).
12043
12360
  * Meta business-login accounts use their own system-user token. Fresh Meta discovery
@@ -12063,8 +12380,9 @@ export const listAdAccounts = <ThrowOnError extends boolean = false>(options: Op
12063
12380
 
12064
12381
  /**
12065
12382
  * Update ad account settings
12066
- * Updates a Meta ad account in place: its name, its account-level spend cap, and its
12067
- * 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.
12068
12386
  *
12069
12387
  * **Spend cap.** `spendCap` is the total the account may spend before Meta pauses every
12070
12388
  * campaign in it, in whole units of the account currency. `spendCap: null` removes the
@@ -12107,6 +12425,8 @@ export const updateAdAccount = <ThrowOnError extends boolean = false>(options: O
12107
12425
 
12108
12426
  /**
12109
12427
  * Get ad account DSA defaults
12428
+ * Shows the default EU DSA beneficiary and payor set on a Meta ad account.
12429
+ *
12110
12430
  * Returns the default DSA beneficiary and payor currently set on a Meta ad account,
12111
12431
  * whether they were set via `PATCH /v1/ads/accounts` or in Meta Ads Manager. Fields
12112
12432
  * are omitted when no default is configured. Meta accounts only.
@@ -12121,6 +12441,8 @@ export const getDsaDefaults = <ThrowOnError extends boolean = false>(options: Op
12121
12441
 
12122
12442
  /**
12123
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
+ *
12124
12446
  * Returns Meta's suggested beneficiary/payor names for an ad account, derived by Meta
12125
12447
  * from the account's recent activity. Useful for prefilling `dsaBeneficiary`/`dsaPayor`
12126
12448
  * inputs, or the defaults sent to `PATCH /v1/ads/accounts`, in your own UI.
@@ -12140,8 +12462,9 @@ export const getDsaRecommendations = <ThrowOnError extends boolean = false>(opti
12140
12462
 
12141
12463
  /**
12142
12464
  * Boost post as ad
12143
- * Creates a paid ad from an existing published post, keeping the post's
12144
- * 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
12145
12468
  * set, ad).
12146
12469
  *
12147
12470
  * **Attach shape (Meta).** Send `adSetId` to put the ad under an EXISTING
@@ -12197,7 +12520,10 @@ export const boostPost = <ThrowOnError extends boolean = false>(options: Options
12197
12520
 
12198
12521
  /**
12199
12522
  * List Performance Max asset groups
12200
- * 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
+ *
12201
12527
  */
12202
12528
  export const listGoogleAssetGroups = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListGoogleAssetGroupsData, ThrowOnError>) => {
12203
12529
  return (options?.client ?? client).get<ListGoogleAssetGroupsResponse, ListGoogleAssetGroupsError, ThrowOnError>({
@@ -12208,7 +12534,10 @@ export const listGoogleAssetGroups = <ThrowOnError extends boolean = false>(opti
12208
12534
 
12209
12535
  /**
12210
12536
  * Create a Performance Max asset group
12211
- * 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
+ *
12212
12541
  */
12213
12542
  export const createGoogleAssetGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateGoogleAssetGroupData, ThrowOnError>) => {
12214
12543
  return (options?.client ?? client).post<CreateGoogleAssetGroupResponse, CreateGoogleAssetGroupError, ThrowOnError>({
@@ -12219,7 +12548,10 @@ export const createGoogleAssetGroup = <ThrowOnError extends boolean = false>(opt
12219
12548
 
12220
12549
  /**
12221
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
+ *
12222
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
+ *
12223
12555
  */
12224
12556
  export const getGoogleAssetGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetGoogleAssetGroupData, ThrowOnError>) => {
12225
12557
  return (options?.client ?? client).get<GetGoogleAssetGroupResponse, GetGoogleAssetGroupError, ThrowOnError>({
@@ -12230,7 +12562,10 @@ export const getGoogleAssetGroup = <ThrowOnError extends boolean = false>(option
12230
12562
 
12231
12563
  /**
12232
12564
  * Update a Performance Max asset group
12565
+ * Changes a Performance Max asset group's name, status, final URLs or display paths.
12566
+ *
12233
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
+ *
12234
12569
  */
12235
12570
  export const updateGoogleAssetGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateGoogleAssetGroupData, ThrowOnError>) => {
12236
12571
  return (options?.client ?? client).patch<UpdateGoogleAssetGroupResponse, UpdateGoogleAssetGroupError, ThrowOnError>({
@@ -12241,7 +12576,10 @@ export const updateGoogleAssetGroup = <ThrowOnError extends boolean = false>(opt
12241
12576
 
12242
12577
  /**
12243
12578
  * Remove a Performance Max asset group
12579
+ * Permanently removes an asset group from a Performance Max campaign (this cannot be undone).
12580
+ *
12244
12581
  * Removes the asset group on Google (status REMOVED, not reversible). Pass validateOnly=true to validate without removing.
12582
+ *
12245
12583
  */
12246
12584
  export const removeGoogleAssetGroup = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveGoogleAssetGroupData, ThrowOnError>) => {
12247
12585
  return (options?.client ?? client).delete<RemoveGoogleAssetGroupResponse, RemoveGoogleAssetGroupError, ThrowOnError>({
@@ -12252,7 +12590,10 @@ export const removeGoogleAssetGroup = <ThrowOnError extends boolean = false>(opt
12252
12590
 
12253
12591
  /**
12254
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
+ *
12255
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
+ *
12256
12597
  */
12257
12598
  export const editGoogleAssetGroupAssets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<EditGoogleAssetGroupAssetsData, ThrowOnError>) => {
12258
12599
  return (options?.client ?? client).post<EditGoogleAssetGroupAssetsResponse, EditGoogleAssetGroupAssetsError, ThrowOnError>({
@@ -12263,7 +12604,10 @@ export const editGoogleAssetGroupAssets = <ThrowOnError extends boolean = false>
12263
12604
 
12264
12605
  /**
12265
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
+ *
12266
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
+ *
12267
12611
  */
12268
12612
  export const replaceGoogleListingGroupFilters = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ReplaceGoogleListingGroupFiltersData, ThrowOnError>) => {
12269
12613
  return (options?.client ?? client).put<ReplaceGoogleListingGroupFiltersResponse, ReplaceGoogleListingGroupFiltersError, ThrowOnError>({
@@ -12274,6 +12618,8 @@ export const replaceGoogleListingGroupFilters = <ThrowOnError extends boolean =
12274
12618
 
12275
12619
  /**
12276
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
+ *
12277
12623
  * Create a paid ad with custom creative across Meta, Google Ads, Pinterest, TikTok, X, LinkedIn, and OpenAI Ads (ChatGPT Ads).
12278
12624
  *
12279
12625
  * Google Performance Max: set `campaignType: "pmax"` and supply `assetGroup` with
@@ -12339,6 +12685,8 @@ export const createStandaloneAd = <ThrowOnError extends boolean = false>(options
12339
12685
 
12340
12686
  /**
12341
12687
  * List submitted leads
12688
+ * Lists the leads submitted through your Meta or LinkedIn lead forms, newest first.
12689
+ *
12342
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.
12343
12691
  *
12344
12692
  */
@@ -12351,7 +12699,9 @@ export const listLeads = <ThrowOnError extends boolean = false>(options?: Option
12351
12699
 
12352
12700
  /**
12353
12701
  * List lead forms
12354
- * 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.
12355
12705
  *
12356
12706
  */
12357
12707
  export const listLeadForms = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListLeadFormsData, ThrowOnError>) => {
@@ -12363,7 +12713,9 @@ export const listLeadForms = <ThrowOnError extends boolean = false>(options: Opt
12363
12713
 
12364
12714
  /**
12365
12715
  * Create a lead form
12366
- * 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.
12367
12719
  *
12368
12720
  */
12369
12721
  export const createLeadForm = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateLeadFormData, ThrowOnError>) => {
@@ -12375,6 +12727,8 @@ export const createLeadForm = <ThrowOnError extends boolean = false>(options: Op
12375
12727
 
12376
12728
  /**
12377
12729
  * Get a lead form
12730
+ * Shows a lead form in full, including its questions and thank-you page.
12731
+ *
12378
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.
12379
12733
  *
12380
12734
  */
@@ -12387,7 +12741,10 @@ export const getLeadForm = <ThrowOnError extends boolean = false>(options: Optio
12387
12741
 
12388
12742
  /**
12389
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
+ *
12390
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
+ *
12391
12748
  */
12392
12749
  export const archiveLeadForm = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ArchiveLeadFormData, ThrowOnError>) => {
12393
12750
  return (options?.client ?? client).delete<ArchiveLeadFormResponse, ArchiveLeadFormError, ThrowOnError>({
@@ -12398,7 +12755,9 @@ export const archiveLeadForm = <ThrowOnError extends boolean = false>(options: O
12398
12755
 
12399
12756
  /**
12400
12757
  * List leads for a single form
12401
- * 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.
12402
12761
  *
12403
12762
  */
12404
12763
  export const listFormLeads = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListFormLeadsData, ThrowOnError>) => {
@@ -12410,6 +12769,8 @@ export const listFormLeads = <ThrowOnError extends boolean = false>(options: Opt
12410
12769
 
12411
12770
  /**
12412
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
+ *
12413
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.
12414
12775
  *
12415
12776
  */
@@ -12422,6 +12783,8 @@ export const createTestLead = <ThrowOnError extends boolean = false>(options: Op
12422
12783
 
12423
12784
  /**
12424
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
+ *
12425
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.
12426
12789
  *
12427
12790
  */
@@ -12434,10 +12797,12 @@ export const deleteTestLead = <ThrowOnError extends boolean = false>(options: Op
12434
12797
 
12435
12798
  /**
12436
12799
  * Upload an ad image from base64
12437
- * Uploads raw image bytes to the Meta ad account's image library, for callers whose
12438
- * 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
12439
12803
  * the asset) and the Meta-hosted `url`, which can be used directly as `imageUrl` on the
12440
12804
  * create endpoints. Max 30 MB decoded.
12805
+ *
12441
12806
  */
12442
12807
  export const uploadAdImage = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UploadAdImageData, ThrowOnError>) => {
12443
12808
  return (options?.client ?? client).post<UploadAdImageResponse, UploadAdImageError, ThrowOnError>({
@@ -12448,6 +12813,8 @@ export const uploadAdImage = <ThrowOnError extends boolean = false>(options: Opt
12448
12813
 
12449
12814
  /**
12450
12815
  * Ad image library
12816
+ * Lists the images in a Meta ad account's library so you can reuse one in a creative.
12817
+ *
12451
12818
  * Lists the ad account's image library (Meta's `/act_X/adimages`), rows returned verbatim.
12452
12819
  * The default projection covers hash, url, name, dimensions and status; `fields` is a
12453
12820
  * raw-passthrough override. Any `hash` here is reusable wherever Meta accepts
@@ -12462,6 +12829,8 @@ export const listAdImages = <ThrowOnError extends boolean = false>(options: Opti
12462
12829
 
12463
12830
  /**
12464
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
+ *
12465
12834
  * Standalone ad-video upload (parallel to POST /v1/ads/images), so a video creative can
12466
12835
  * be rendered via POST /v1/ads/preview or attached via `video.id` on POST /v1/ads/create
12467
12836
  * before an ad exists.
@@ -12491,6 +12860,8 @@ export const uploadAdVideo = <ThrowOnError extends boolean = false>(options: Opt
12491
12860
 
12492
12861
  /**
12493
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
+ *
12494
12865
  * Lists the ad account's video library (Meta's `/act_X/advideos`), rows returned verbatim.
12495
12866
  * The default projection covers id, title, status, poster frames, length and `source` (the
12496
12867
  * playable MP4); `fields` is a raw-passthrough override. Any `id` here is reusable as
@@ -12516,6 +12887,8 @@ export const listAdVideos = <ThrowOnError extends boolean = false>(options: Opti
12516
12887
 
12517
12888
  /**
12518
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
+ *
12519
12892
  * Reads a video's processing state live from Meta (`GET /{video-id}?fields=status`).
12520
12893
  * Poll this after `POST /v1/ads/videos` with `async: true` until `status` is `ready`;
12521
12894
  * the video is only usable as `video.id` on the create endpoints from then on.
@@ -12534,12 +12907,15 @@ export const getAdVideoStatus = <ThrowOnError extends boolean = false>(options:
12534
12907
 
12535
12908
  /**
12536
12909
  * Delete an ad video
12537
- * 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
12538
12913
  * `DELETE /{video_id}` fails with code 10 / subcode 1363055 for videos uploaded via
12539
12914
  * `/act_X/advideos` even with `ads_management`; this endpoint uses the working
12540
12915
  * account-scoped shape `DELETE /act_X/advideos?video_id=<id>` and returns Meta's
12541
12916
  * `{success: true}` verbatim. Deleting a video that lives in a different ad account,
12542
12917
  * or that Meta has already removed, returns Meta's error verbatim as a 4xx.
12918
+ *
12543
12919
  */
12544
12920
  export const deleteAdVideo = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdVideoData, ThrowOnError>) => {
12545
12921
  return (options?.client ?? client).delete<DeleteAdVideoResponse, DeleteAdVideoError, ThrowOnError>({
@@ -12566,6 +12942,8 @@ export const searchAdInterests = <ThrowOnError extends boolean = false>(options:
12566
12942
 
12567
12943
  /**
12568
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
+ *
12569
12947
  * Resolve a human-readable query into the platform's opaque targeting ids used in
12570
12948
  * the `TargetingSpec` (`countries`/`regions`/`cities`/`zips`/`metros` geo keys, and
12571
12949
  * `interests`/`behaviors` entity ids) on `POST /v1/ads/create`,
@@ -12695,6 +13073,8 @@ export const searchAdTargeting = <ThrowOnError extends boolean = false>(options:
12695
13073
 
12696
13074
  /**
12697
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
+ *
12698
13078
  * The whole Meta detailed-targeting category tree of one ad account (Meta's
12699
13079
  * `GET /act_{ad_account_id}/targetingbrowse`), as one flat list you can render as a
12700
13080
  * tree. Use it to show what can be targeted without a keyword; use
@@ -12743,7 +13123,9 @@ export const browseAdTargeting = <ThrowOnError extends boolean = false>(options:
12743
13123
 
12744
13124
  /**
12745
13125
  * Search the public Ad Library
12746
- * 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
12747
13129
  * (`GET /ads_archive`) is searched with Zernio's own developer access, so `platform=meta` needs
12748
13130
  * no connected account at all. LinkedIn's Ad Library (`GET /rest/adLibrary`) runs on a connected
12749
13131
  * `linkedin` / `linkedinads` account, passed as `accountId`. Passing a Meta account as `accountId`
@@ -12764,6 +13146,7 @@ export const browseAdTargeting = <ThrowOnError extends boolean = false>(options:
12764
13146
  * `platforms`, `mediaType`, `languages`, `searchType`, `fields`, `since`, `until` are Meta-only;
12765
13147
  * `advertiser` is LinkedIn-only. Passing a param the account's platform does not support is a 400
12766
13148
  * naming the param.
13149
+ *
12767
13150
  */
12768
13151
  export const searchAdLibrary = <ThrowOnError extends boolean = false>(options?: OptionsLegacyParser<SearchAdLibraryData, ThrowOnError>) => {
12769
13152
  return (options?.client ?? client).get<SearchAdLibraryResponse, SearchAdLibraryError, ThrowOnError>({
@@ -12774,6 +13157,8 @@ export const searchAdLibrary = <ThrowOnError extends boolean = false>(options?:
12774
13157
 
12775
13158
  /**
12776
13159
  * Estimate audience reach
13160
+ * Estimates how many people a targeting setup would reach before you create a campaign.
13161
+ *
12777
13162
  * Returns a normalized pre-flight audience-size estimate for a targeting spec,
12778
13163
  * before any campaign is created. Backed by each platform's native reach API
12779
13164
  * (Meta `delivery_estimate`, LinkedIn `audienceCounts`, X `audience_summary`,
@@ -12834,7 +13219,10 @@ export const getLinkedInSupplyForecast = <ThrowOnError extends boolean = false>(
12834
13219
 
12835
13220
  /**
12836
13221
  * List Meta product catalogs
12837
- * 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
+ *
12838
13226
  */
12839
13227
  export const listAdCatalogs = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogsData, ThrowOnError>) => {
12840
13228
  return (options?.client ?? client).get<ListAdCatalogsResponse, ListAdCatalogsError, ThrowOnError>({
@@ -12845,7 +13233,10 @@ export const listAdCatalogs = <ThrowOnError extends boolean = false>(options: Op
12845
13233
 
12846
13234
  /**
12847
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
+ *
12848
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
+ *
12849
13240
  */
12850
13241
  export const createAdCatalog = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogData, ThrowOnError>) => {
12851
13242
  return (options?.client ?? client).post<CreateAdCatalogResponse, CreateAdCatalogError, ThrowOnError>({
@@ -12856,6 +13247,8 @@ export const createAdCatalog = <ThrowOnError extends boolean = false>(options: O
12856
13247
 
12857
13248
  /**
12858
13249
  * Get a product catalog
13250
+ * Shows one Meta product catalog and its details.
13251
+ *
12859
13252
  */
12860
13253
  export const getAdCatalog = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdCatalogData, ThrowOnError>) => {
12861
13254
  return (options?.client ?? client).get<GetAdCatalogResponse, GetAdCatalogError, ThrowOnError>({
@@ -12866,7 +13259,10 @@ export const getAdCatalog = <ThrowOnError extends boolean = false>(options: Opti
12866
13259
 
12867
13260
  /**
12868
13261
  * Delete a product catalog
12869
- * 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
+ *
12870
13266
  */
12871
13267
  export const deleteAdCatalog = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdCatalogData, ThrowOnError>) => {
12872
13268
  return (options?.client ?? client).delete<DeleteAdCatalogResponse, DeleteAdCatalogError, ThrowOnError>({
@@ -12877,7 +13273,10 @@ export const deleteAdCatalog = <ThrowOnError extends boolean = false>(options: O
12877
13273
 
12878
13274
  /**
12879
13275
  * List a catalog's products
12880
- * 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
+ *
12881
13280
  */
12882
13281
  export const listAdCatalogProducts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogProductsData, ThrowOnError>) => {
12883
13282
  return (options?.client ?? client).get<ListAdCatalogProductsResponse, ListAdCatalogProductsError, ThrowOnError>({
@@ -12888,7 +13287,10 @@ export const listAdCatalogProducts = <ThrowOnError extends boolean = false>(opti
12888
13287
 
12889
13288
  /**
12890
13289
  * Add a product to a catalog
12891
- * 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
+ *
12892
13294
  */
12893
13295
  export const createAdCatalogProduct = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogProductData, ThrowOnError>) => {
12894
13296
  return (options?.client ?? client).post<CreateAdCatalogProductResponse, CreateAdCatalogProductError, ThrowOnError>({
@@ -12899,7 +13301,10 @@ export const createAdCatalogProduct = <ThrowOnError extends boolean = false>(opt
12899
13301
 
12900
13302
  /**
12901
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
+ *
12902
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
+ *
12903
13308
  */
12904
13309
  export const batchAdCatalogProducts = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<BatchAdCatalogProductsData, ThrowOnError>) => {
12905
13310
  return (options?.client ?? client).post<BatchAdCatalogProductsResponse, BatchAdCatalogProductsError, ThrowOnError>({
@@ -12910,6 +13315,8 @@ export const batchAdCatalogProducts = <ThrowOnError extends boolean = false>(opt
12910
13315
 
12911
13316
  /**
12912
13317
  * Get a bulk request's status
13318
+ * Shows whether a bulk catalog product request has finished, with any per-product errors.
13319
+ *
12913
13320
  */
12914
13321
  export const getAdCatalogBatch = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdCatalogBatchData, ThrowOnError>) => {
12915
13322
  return (options?.client ?? client).get<GetAdCatalogBatchResponse, GetAdCatalogBatchError, ThrowOnError>({
@@ -12920,6 +13327,8 @@ export const getAdCatalogBatch = <ThrowOnError extends boolean = false>(options:
12920
13327
 
12921
13328
  /**
12922
13329
  * Get a product
13330
+ * Shows one product from a Meta catalog.
13331
+ *
12923
13332
  */
12924
13333
  export const getAdCatalogProduct = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdCatalogProductData, ThrowOnError>) => {
12925
13334
  return (options?.client ?? client).get<GetAdCatalogProductResponse, GetAdCatalogProductError, ThrowOnError>({
@@ -12930,7 +13339,10 @@ export const getAdCatalogProduct = <ThrowOnError extends boolean = false>(option
12930
13339
 
12931
13340
  /**
12932
13341
  * Update a product
12933
- * 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
+ *
12934
13346
  */
12935
13347
  export const updateAdCatalogProduct = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdCatalogProductData, ThrowOnError>) => {
12936
13348
  return (options?.client ?? client).put<UpdateAdCatalogProductResponse, UpdateAdCatalogProductError, ThrowOnError>({
@@ -12941,6 +13353,8 @@ export const updateAdCatalogProduct = <ThrowOnError extends boolean = false>(opt
12941
13353
 
12942
13354
  /**
12943
13355
  * Delete a product
13356
+ * Removes one product from a Meta catalog.
13357
+ *
12944
13358
  */
12945
13359
  export const deleteAdCatalogProduct = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdCatalogProductData, ThrowOnError>) => {
12946
13360
  return (options?.client ?? client).delete<DeleteAdCatalogProductResponse, DeleteAdCatalogProductError, ThrowOnError>({
@@ -12951,6 +13365,8 @@ export const deleteAdCatalogProduct = <ThrowOnError extends boolean = false>(opt
12951
13365
 
12952
13366
  /**
12953
13367
  * List a catalog's product feeds
13368
+ * Lists the product feeds that keep a Meta catalog filled from your product files.
13369
+ *
12954
13370
  */
12955
13371
  export const listAdCatalogFeeds = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogFeedsData, ThrowOnError>) => {
12956
13372
  return (options?.client ?? client).get<ListAdCatalogFeedsResponse, ListAdCatalogFeedsError, ThrowOnError>({
@@ -12961,7 +13377,10 @@ export const listAdCatalogFeeds = <ThrowOnError extends boolean = false>(options
12961
13377
 
12962
13378
  /**
12963
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
+ *
12964
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
+ *
12965
13384
  */
12966
13385
  export const createAdCatalogFeed = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogFeedData, ThrowOnError>) => {
12967
13386
  return (options?.client ?? client).post<CreateAdCatalogFeedResponse, CreateAdCatalogFeedError, ThrowOnError>({
@@ -12972,6 +13391,8 @@ export const createAdCatalogFeed = <ThrowOnError extends boolean = false>(option
12972
13391
 
12973
13392
  /**
12974
13393
  * List a feed's uploads
13394
+ * Lists a product feed's past file imports so you can check how each one went.
13395
+ *
12975
13396
  */
12976
13397
  export const listAdCatalogFeedUploads = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogFeedUploadsData, ThrowOnError>) => {
12977
13398
  return (options?.client ?? client).get<ListAdCatalogFeedUploadsResponse, ListAdCatalogFeedUploadsError, ThrowOnError>({
@@ -12982,7 +13403,10 @@ export const listAdCatalogFeedUploads = <ThrowOnError extends boolean = false>(o
12982
13403
 
12983
13404
  /**
12984
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
+ *
12985
13408
  * Asks Meta to fetch the product file at `url` into the feed. Processing is asynchronous: read the outcome with GET uploads.
13409
+ *
12986
13410
  */
12987
13411
  export const createAdCatalogFeedUpload = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogFeedUploadData, ThrowOnError>) => {
12988
13412
  return (options?.client ?? client).post<CreateAdCatalogFeedUploadResponse, CreateAdCatalogFeedUploadError, ThrowOnError>({
@@ -12993,7 +13417,10 @@ export const createAdCatalogFeedUpload = <ThrowOnError extends boolean = false>(
12993
13417
 
12994
13418
  /**
12995
13419
  * List a catalog's product sets
12996
- * 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
+ *
12997
13424
  */
12998
13425
  export const listAdCatalogProductSets = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdCatalogProductSetsData, ThrowOnError>) => {
12999
13426
  return (options?.client ?? client).get<ListAdCatalogProductSetsResponse, ListAdCatalogProductSetsError, ThrowOnError>({
@@ -13004,7 +13431,10 @@ export const listAdCatalogProductSets = <ThrowOnError extends boolean = false>(o
13004
13431
 
13005
13432
  /**
13006
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
+ *
13007
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
+ *
13008
13438
  */
13009
13439
  export const createAdCatalogProductSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateAdCatalogProductSetData, ThrowOnError>) => {
13010
13440
  return (options?.client ?? client).post<CreateAdCatalogProductSetResponse, CreateAdCatalogProductSetError, ThrowOnError>({
@@ -13015,6 +13445,8 @@ export const createAdCatalogProductSet = <ThrowOnError extends boolean = false>(
13015
13445
 
13016
13446
  /**
13017
13447
  * Update a product set
13448
+ * Changes a product set's name or the filter that decides which products it includes.
13449
+ *
13018
13450
  */
13019
13451
  export const updateAdCatalogProductSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateAdCatalogProductSetData, ThrowOnError>) => {
13020
13452
  return (options?.client ?? client).put<UpdateAdCatalogProductSetResponse, UpdateAdCatalogProductSetError, ThrowOnError>({
@@ -13025,6 +13457,8 @@ export const updateAdCatalogProductSet = <ThrowOnError extends boolean = false>(
13025
13457
 
13026
13458
  /**
13027
13459
  * Delete a product set
13460
+ * Deletes a product set from a Meta catalog.
13461
+ *
13028
13462
  */
13029
13463
  export const deleteAdCatalogProductSet = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<DeleteAdCatalogProductSetData, ThrowOnError>) => {
13030
13464
  return (options?.client ?? client).delete<DeleteAdCatalogProductSetResponse, DeleteAdCatalogProductSetError, ThrowOnError>({
@@ -13035,7 +13469,10 @@ export const deleteAdCatalogProductSet = <ThrowOnError extends boolean = false>(
13035
13469
 
13036
13470
  /**
13037
13471
  * List custom audiences
13038
- * 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
+ *
13039
13476
  */
13040
13477
  export const listAdAudiences = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListAdAudiencesData, ThrowOnError>) => {
13041
13478
  return (options?.client ?? client).get<ListAdAudiencesResponse, ListAdAudiencesError, ThrowOnError>({
@@ -13046,7 +13483,9 @@ export const listAdAudiences = <ThrowOnError extends boolean = false>(options: O
13046
13483
 
13047
13484
  /**
13048
13485
  * Create custom audience
13049
- * 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.
13050
13489
  * `website` (pixel/tag visitors) and `lookalike` are supported on Meta, TikTok, Pinterest and Google.
13051
13490
  * `meta_engagement` is Meta-only, `tiktok_engagement` TikTok-only, `pinterest_engagement` Pinterest-only;
13052
13491
  * `company_list`, `engagement` and `website_retargeting` are LinkedIn-only. A type sent to a platform
@@ -13094,7 +13533,10 @@ export const createAdAudience = <ThrowOnError extends boolean = false>(options:
13094
13533
 
13095
13534
  /**
13096
13535
  * Get audience details
13536
+ * Shows a custom audience's details, including its latest data from the ad platform when available.
13537
+ *
13097
13538
  * Returns the local audience record and fresh data from Meta (if available).
13539
+ *
13098
13540
  */
13099
13541
  export const getAdAudience = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<GetAdAudienceData, ThrowOnError>) => {
13100
13542
  return (options?.client ?? client).get<GetAdAudienceResponse, GetAdAudienceError, ThrowOnError>({
@@ -13105,7 +13547,9 @@ export const getAdAudience = <ThrowOnError extends boolean = false>(options: Opt
13105
13547
 
13106
13548
  /**
13107
13549
  * Update an audience
13108
- * 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`
13109
13553
  * (full replacement, no merge, Zernio-only, no platform call). Platform audiences
13110
13554
  * (uploaded/website/lookalike) accept `name` and `description` only, updated on the
13111
13555
  * platform first and then mirrored locally; their rules are immutable, so `spec` returns
@@ -13123,6 +13567,8 @@ export const updateAdAudience = <ThrowOnError extends boolean = false>(options:
13123
13567
 
13124
13568
  /**
13125
13569
  * Delete custom audience
13570
+ * Removes a custom audience from its ad platform (archiving it where the platform does not delete).
13571
+ *
13126
13572
  * Removes the audience on its ad platform, then deletes the Zernio record. Meta, Google, TikTok,
13127
13573
  * LinkedIn list and engagement segments, and X are deleted; Pinterest audiences and LinkedIn
13128
13574
  * `website_retargeting` segments are archived, which is how those platforms remove them.
@@ -13142,7 +13588,9 @@ export const deleteAdAudience = <ThrowOnError extends boolean = false>(options:
13142
13588
 
13143
13589
  /**
13144
13590
  * Add users to audience
13145
- * 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.
13146
13594
  * Email is used on every platform; phone is used on Meta only (other platforms ignore it). On TikTok and Pinterest,
13147
13595
  * the first upload also provisions the audience (deferred create). LinkedIn uploads are full-replace. Max 10,000 users per request.
13148
13596
  *
@@ -13190,6 +13638,8 @@ export const replaceAdAudienceCompanies = <ThrowOnError extends boolean = false>
13190
13638
 
13191
13639
  /**
13192
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
+ *
13193
13643
  * Reads Meta Event Match Quality (EMQ) and pixel↔CAPI event coverage for a
13194
13644
  * pixel/dataset, live from Meta's Dataset Quality API. Web events only (a
13195
13645
  * Meta limitation). Other platforms return 405, except Pinterest. Requires the Ads add-on.
@@ -13209,6 +13659,8 @@ export const getConversionsQuality = <ThrowOnError extends boolean = false>(opti
13209
13659
 
13210
13660
  /**
13211
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
+ *
13212
13664
  * Relay one or more conversion events to the target ad platform's native Conversions API.
13213
13665
  * Platform is inferred from the provided `accountId`. Requires the Ads add-on.
13214
13666
  *
@@ -13283,6 +13735,8 @@ export const sendConversions = <ThrowOnError extends boolean = false>(options: O
13283
13735
 
13284
13736
  /**
13285
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
+ *
13286
13740
  * Adjust conversions that were previously uploaded via `POST /v1/ads/conversions`:
13287
13741
  * retract them, restate their value, or enhance them with first-party data. Requires
13288
13742
  * the Ads add-on.
@@ -13322,6 +13776,8 @@ export const adjustConversions = <ThrowOnError extends boolean = false>(options:
13322
13776
 
13323
13777
  /**
13324
13778
  * List conversion actions
13779
+ * Lists the conversion actions in a Google Ads account, with the website tag snippets to install where available.
13780
+ *
13325
13781
  * Lists Google Ads conversion actions on the resolved customer, all types by
13326
13782
  * default. Each action's `tagSnippets` (global site tag + event snippet) is
13327
13783
  * included when Google has them for that action's type, e.g. `WEBPAGE`.
@@ -13346,6 +13802,8 @@ export const listConversionActions = <ThrowOnError extends boolean = false>(opti
13346
13802
 
13347
13803
  /**
13348
13804
  * Create website conversion action
13805
+ * Creates a Google Ads website conversion action and returns the tag snippets to install on your site.
13806
+ *
13349
13807
  * Creates a `WEBPAGE` conversion action (category `DEFAULT`) and returns it with
13350
13808
  * its tag snippets, read back after creation since Google never returns them on
13351
13809
  * the create response itself. Invalidates the cached list `GET` on this resource
@@ -13362,6 +13820,8 @@ export const createConversionAction = <ThrowOnError extends boolean = false>(opt
13362
13820
 
13363
13821
  /**
13364
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
+ *
13365
13825
  * Google Ads account-default conversion goals (CustomerConversionGoal), one per
13366
13826
  * category and origin, with `biddable` (whether the goal is used for bidding and
13367
13827
  * reported in the Conversions column) and the conversion actions that belong to it,
@@ -13378,6 +13838,8 @@ export const listAdConversionGoals = <ThrowOnError extends boolean = false>(opti
13378
13838
 
13379
13839
  /**
13380
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
+ *
13381
13843
  * Sets `biddable` on one or more account-default goals, addressed by category and
13382
13844
  * origin, in one mutate. Campaigns that use account-level goals
13383
13845
  * (`goalConfigLevel: CUSTOMER`) follow the change. Returns the re-read goal list.
@@ -13391,6 +13853,8 @@ export const updateAdConversionGoals = <ThrowOnError extends boolean = false>(op
13391
13853
 
13392
13854
  /**
13393
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
+ *
13394
13858
  * Updates a Google Ads conversion action in one mutate, each field sent written on its own
13395
13859
  * update mask leaf so omitted fields keep their value. Send at least one field.
13396
13860
  *
@@ -13413,7 +13877,10 @@ export const updateConversionAction = <ThrowOnError extends boolean = false>(opt
13413
13877
 
13414
13878
  /**
13415
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
+ *
13416
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
+ *
13417
13884
  */
13418
13885
  export const listCustomConversionGoals = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListCustomConversionGoalsData, ThrowOnError>) => {
13419
13886
  return (options?.client ?? client).get<ListCustomConversionGoalsResponse, ListCustomConversionGoalsError, ThrowOnError>({
@@ -13424,7 +13891,10 @@ export const listCustomConversionGoals = <ThrowOnError extends boolean = false>(
13424
13891
 
13425
13892
  /**
13426
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
+ *
13427
13896
  * Creates a custom conversion goal from conversion action ids. Point a campaign at it with `PATCH /v1/ads/campaigns/{campaignId}/conversion-goals`.
13897
+ *
13428
13898
  */
13429
13899
  export const createCustomConversionGoal = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<CreateCustomConversionGoalData, ThrowOnError>) => {
13430
13900
  return (options?.client ?? client).post<CreateCustomConversionGoalResponse, CreateCustomConversionGoalError, ThrowOnError>({
@@ -13435,7 +13905,10 @@ export const createCustomConversionGoal = <ThrowOnError extends boolean = false>
13435
13905
 
13436
13906
  /**
13437
13907
  * Update a custom conversion goal
13438
- * 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
+ *
13439
13912
  */
13440
13913
  export const updateCustomConversionGoal = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<UpdateCustomConversionGoalData, ThrowOnError>) => {
13441
13914
  return (options?.client ?? client).patch<UpdateCustomConversionGoalResponse, UpdateCustomConversionGoalError, ThrowOnError>({
@@ -13446,7 +13919,10 @@ export const updateCustomConversionGoal = <ThrowOnError extends boolean = false>
13446
13919
 
13447
13920
  /**
13448
13921
  * Remove a custom conversion goal
13449
- * 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
+ *
13450
13926
  */
13451
13927
  export const removeCustomConversionGoal = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<RemoveCustomConversionGoalData, ThrowOnError>) => {
13452
13928
  return (options?.client ?? client).delete<RemoveCustomConversionGoalResponse, RemoveCustomConversionGoalError, ThrowOnError>({
@@ -13457,6 +13933,8 @@ export const removeCustomConversionGoal = <ThrowOnError extends boolean = false>
13457
13933
 
13458
13934
  /**
13459
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
+ *
13460
13938
  * A Google campaign's conversion goals (CampaignConversionGoal, `biddable` per category
13461
13939
  * and origin) and its goal config (ConversionGoalCampaignConfig): `goalConfigLevel`
13462
13940
  * CUSTOMER means the campaign follows the account-default goals, CAMPAIGN means it uses
@@ -13471,6 +13949,8 @@ export const getCampaignConversionGoals = <ThrowOnError extends boolean = false>
13471
13949
 
13472
13950
  /**
13473
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
+ *
13474
13954
  * Sets `biddable` on campaign goals, switches `goalConfigLevel`, and/or points the
13475
13955
  * campaign at a custom conversion goal, in one mutate. `customConversionGoalId: null`
13476
13956
  * clears it; Google refuses that (400) while the campaign stays at CAMPAIGN level with
@@ -13486,6 +13966,8 @@ export const updateCampaignConversionGoals = <ThrowOnError extends boolean = fal
13486
13966
 
13487
13967
  /**
13488
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
+ *
13489
13971
  * Returns the list of pixels (Meta), conversion actions (Google),
13490
13972
  * conversion rules (LinkedIn), pixels (OpenAI Ads) or ad accounts
13491
13973
  * (Pinterest) accessible to the connected ads account. Use the returned `id` as `destinationId` when
@@ -13511,7 +13993,9 @@ export const listConversionDestinations = <ThrowOnError extends boolean = false>
13511
13993
 
13512
13994
  /**
13513
13995
  * Create a conversion destination
13514
- * 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
13515
13999
  * LinkedIn (conversion rule) and Google Ads (conversion action). Meta
13516
14000
  * and OpenAI Ads pixels are created via their own tracking-tags flow
13517
14001
  * instead (`POST /v1/accounts/{accountId}/tracking-tags`); this endpoint
@@ -13557,6 +14041,8 @@ export const createConversionDestination = <ThrowOnError extends boolean = false
13557
14041
 
13558
14042
  /**
13559
14043
  * Get a conversion destination
14044
+ * Shows one LinkedIn conversion rule with its full settings.
14045
+ *
13560
14046
  * LinkedIn-only today. Returns the full destination record for one
13561
14047
  * conversion rule. The `adAccountId` query parameter is required because
13562
14048
  * LinkedIn rules are scoped to a sponsored ad account.
@@ -13571,6 +14057,8 @@ export const getConversionDestination = <ThrowOnError extends boolean = false>(o
13571
14057
 
13572
14058
  /**
13573
14059
  * Update a conversion destination
14060
+ * Changes a LinkedIn conversion rule's name, value, attribution windows, or turns it on or off.
14061
+ *
13574
14062
  * Partial-update a conversion rule. LinkedIn-only today. Whitelisted
13575
14063
  * fields: `name`, `enabled`, attribution windows, `valueType`, `value`,
13576
14064
  * `attributionType`. The rule's `type` and parent ad account are
@@ -13587,6 +14075,8 @@ export const updateConversionDestination = <ThrowOnError extends boolean = false
13587
14075
 
13588
14076
  /**
13589
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
+ *
13590
14080
  * LinkedIn-only today. LinkedIn does not expose hard-delete on conversion
13591
14081
  * rules; what their UI calls "delete" is the same `enabled: false` flip
13592
14082
  * we apply here. The rule remains fetchable via GET with
@@ -13606,6 +14096,8 @@ export const deleteConversionDestination = <ThrowOnError extends boolean = false
13606
14096
 
13607
14097
  /**
13608
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
+ *
13609
14101
  * LinkedIn-only today. Returns the campaigns currently associated with
13610
14102
  * this conversion rule. Auto-association on rule creation
13611
14103
  * runs once at create time; campaigns created after the rule still need
@@ -13621,7 +14113,9 @@ export const listConversionAssociations = <ThrowOnError extends boolean = false>
13621
14113
 
13622
14114
  /**
13623
14115
  * Associate campaigns
13624
- * 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
13625
14119
  * per-campaign success/failure result so callers can retry only the
13626
14120
  * rows that failed (e.g. wrong campaign type for the rule's objective).
13627
14121
  *
@@ -13635,7 +14129,8 @@ export const addConversionAssociations = <ThrowOnError extends boolean = false>(
13635
14129
 
13636
14130
  /**
13637
14131
  * Remove associated campaigns
13638
- * Remove one or more campaign associations from this conversion rule.
14132
+ * Unlinks campaigns from a LinkedIn conversion rule so they stop tracking it.
14133
+ *
13639
14134
  * Pass `adAccountId` and `campaignIds` as query parameters
13640
14135
  * (`campaignIds` is comma-separated). The route also accepts a JSON
13641
14136
  * body with the same fields for clients that prefer DELETE-with-body,
@@ -13653,6 +14148,8 @@ export const removeConversionAssociations = <ThrowOnError extends boolean = fals
13653
14148
 
13654
14149
  /**
13655
14150
  * Get attribution metrics
14151
+ * Shows a LinkedIn conversion rule's attributed conversions, value, leads and cost over time.
14152
+ *
13656
14153
  * LinkedIn-only today. Returns conversion-attribution metrics
13657
14154
  * (`externalWebsiteConversions`, `externalWebsitePostClickConversions`,
13658
14155
  * `externalWebsitePostViewConversions`, `conversionValueInLocalCurrency`,
@@ -13739,6 +14236,8 @@ export const sendWhatsAppConversion = <ThrowOnError extends boolean = false>(opt
13739
14236
 
13740
14237
  /**
13741
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
+ *
13742
14241
  * Creates a click-to-message ad; `destination` selects where the tapped ad opens a
13743
14242
  * conversation: WhatsApp, the Page's Messenger inbox or the linked Instagram account's Direct inbox.
13744
14243
  * `destinations` puts two or three of them on one ad set and lets Meta pick the app per viewer.
@@ -13766,6 +14265,8 @@ export const createMessagingAd = <ThrowOnError extends boolean = false>(options:
13766
14265
 
13767
14266
  /**
13768
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
+ *
13769
14270
  * Same shape and flow as POST /v1/ads/ctwa, but the CTA is CALL_NOW dialing `phoneNumber`
13770
14271
  * via a tel: link. The ad set is destination_type PHONE_CALL optimizing QUALITY_CALL
13771
14272
  * and the campaign objective defaults to OUTCOME_LEADS.
@@ -13814,7 +14315,10 @@ export const createCtwaAd = <ThrowOnError extends boolean = false>(options: Opti
13814
14315
 
13815
14316
  /**
13816
14317
  * List custom conversions
14318
+ * Lists a Meta ad account's custom conversions, including archived ones.
14319
+ *
13817
14320
  * The ad account's Meta custom conversions, including archived ones (`isArchived`).
14321
+ *
13818
14322
  */
13819
14323
  export const listCustomConversions = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListCustomConversionsData, ThrowOnError>) => {
13820
14324
  return (options?.client ?? client).get<ListCustomConversionsResponse, ListCustomConversionsError, ThrowOnError>({
@@ -13825,6 +14329,8 @@ export const listCustomConversions = <ThrowOnError extends boolean = false>(opti
13825
14329
 
13826
14330
  /**
13827
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
+ *
13828
14334
  * Provision the Meta custom conversion an ads flow optimises toward, and hand back the
13829
14335
  * `customConversionId` for `promotedObject.customConversionId` on POST /v1/ads/create.
13830
14336
  * Removes the manual "create it in Ads Manager first" step.
@@ -14453,6 +14959,8 @@ export const startBusinessAgentEvalRun = <ThrowOnError extends boolean = false>(
14453
14959
 
14454
14960
  /**
14455
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
+ *
14456
14964
  * Returns the tracking tags (Meta Pixels, or OpenAI Ads pixels) the
14457
14965
  * connected ads account can see. Pass `?adAccountId=act_...` (Meta only)
14458
14966
  * to scope the list to a single ad account; omit it to list every pixel
@@ -14497,6 +15005,8 @@ export const listTrackingTags = <ThrowOnError extends boolean = false>(options:
14497
15005
 
14498
15006
  /**
14499
15007
  * Create a tracking tag
15008
+ * Creates a measurement pixel on an ad account and returns the snippet to install on your site.
15009
+ *
14500
15010
  * Meta: creates a Meta Pixel on the given ad account (`POST /act_{id}/adspixels`,
14501
15011
  * where `name` is the only input). Returns the created tag including its
14502
15012
  * install `code`. The pixel is owned by the Business Manager that owns the
@@ -14567,6 +15077,8 @@ export const createTrackingTag = <ThrowOnError extends boolean = false>(options:
14567
15077
 
14568
15078
  /**
14569
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
+ *
14570
15082
  * Returns the full tag record including the base-code `code` snippet,
14571
15083
  * `lastFiredTime`, `ownerBusinessId`, `isUnavailable`, etc. Meta only
14572
15084
  * (platform `metaads`); other platforms return 501.
@@ -14609,6 +15121,8 @@ export const getTrackingTag = <ThrowOnError extends boolean = false>(options: Op
14609
15121
 
14610
15122
  /**
14611
15123
  * Update a tracking tag
15124
+ * Changes a pixel's settings, such as its name or automatic matching, on platforms that allow edits.
15125
+ *
14612
15126
  * Partial-update a pixel. Whitelisted fields: `name` (rename),
14613
15127
  * `enableAutomaticMatching`, `automaticMatchingFields`,
14614
15128
  * `firstPartyCookieStatus`, `dataUseSetting`. At least one is required.
@@ -14664,6 +15178,8 @@ export const updateTrackingTag = <ThrowOnError extends boolean = false>(options:
14664
15178
 
14665
15179
  /**
14666
15180
  * List accounts it is shared with
15181
+ * Lists the other ad accounts a pixel is shared with.
15182
+ *
14667
15183
  * Meta (`metaads`) and LinkedIn (`linkedinads`); other platforms return 501.
14668
15184
  *
14669
15185
  * LinkedIn (`linkedinads`): the ad accounts this connection can see that hold access to the
@@ -14683,8 +15199,9 @@ export const listTrackingTagSharedAccounts = <ThrowOnError extends boolean = fal
14683
15199
 
14684
15200
  /**
14685
15201
  * Share with an ad account
14686
- * Shares the pixel with another ad account so campaigns/audiences in that
14687
- * 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
14688
15205
  * Business Manager and the target ad account; a pixel on a personal
14689
15206
  * (non-BM) ad account can't be shared (Meta will reject the call). Meta
14690
15207
  * and LinkedIn; other platforms return 501.
@@ -14709,6 +15226,8 @@ export const addTrackingTagSharedAccount = <ThrowOnError extends boolean = false
14709
15226
 
14710
15227
  /**
14711
15228
  * Stop sharing with an account
15229
+ * Stops sharing a pixel with an ad account.
15230
+ *
14712
15231
  * `adAccountId` may be passed as a query parameter (recommended) or as a
14713
15232
  * JSON body field for clients that can send DELETE bodies. Meta and
14714
15233
  * LinkedIn; other platforms return 501.
@@ -14729,6 +15248,8 @@ export const removeTrackingTagSharedAccount = <ThrowOnError extends boolean = fa
14729
15248
 
14730
15249
  /**
14731
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
+ *
14732
15253
  * Puts the Meta pixel on a connected Shopify store's storefront and checkout through
14733
15254
  * Zernio's Shopify web pixel (a Shopify app pixel, no theme edits). The store then sends
14734
15255
  * PageView, ViewContent, AddToCart, Search, InitiateCheckout, AddPaymentInfo and Purchase
@@ -14817,6 +15338,8 @@ export const installTrackingTagOnStore = <ThrowOnError extends boolean = false>(
14817
15338
 
14818
15339
  /**
14819
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
+ *
14820
15343
  * Whether this tag is the one the Shopify store fires for its platform. `installedTagId`
14821
15344
  * names the tag of that platform the store currently fires, which can be a different tag,
14822
15345
  * and `tags` lists every Zernio tag on the store (all platforms).
@@ -14838,7 +15361,9 @@ export const getTrackingTagStoreInstall = <ThrowOnError extends boolean = false>
14838
15361
 
14839
15362
  /**
14840
15363
  * Remove from a Shopify store or WordPress site
14841
- * 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
14842
15367
  * `installed: false`. If the store fires a different tag of the same platform, nothing is
14843
15368
  * removed and the call answers 409 `invalid_resource_state`. Shopify: other platforms'
14844
15369
  * tags stay; the web pixel itself is deleted once no tag remains.
@@ -14856,6 +15381,8 @@ export const removeTrackingTagFromStore = <ThrowOnError extends boolean = false>
14856
15381
 
14857
15382
  /**
14858
15383
  * List conversion events
15384
+ * Lists the conversion events tied to a tracking tag, such as Google conversion actions or Meta custom conversions.
15385
+ *
14859
15386
  * The tag's conversion events, on platforms where each conversion is its own object:
14860
15387
  * Google conversion actions, LinkedIn conversion rules, X web event tags, OpenAI event
14861
15388
  * settings, TikTok pixel events, Meta custom conversions, Pinterest advertiser defined
@@ -14908,7 +15435,9 @@ export const listTrackingTagEvents = <ThrowOnError extends boolean = false>(opti
14908
15435
 
14909
15436
  /**
14910
15437
  * Create a conversion event
14911
- * 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`
14912
15441
  * (e.g. Google `PURCHASE`, LinkedIn `ADD_TO_CART`, X `CHECKOUT_INITIATED`) or a neutral
14913
15442
  * `siteEvent` the platform maps to its closest type. Each platform stores a subset of the
14914
15443
  * optional fields; sending one it does not store answers 400 naming the supported fields.
@@ -14988,6 +15517,8 @@ export const createTrackingTagEvent = <ThrowOnError extends boolean = false>(opt
14988
15517
 
14989
15518
  /**
14990
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
+ *
14991
15522
  * Partial update; at least one field. A field the platform does not store answers 400.
14992
15523
  *
14993
15524
  * OpenAI Ads answers 501: OpenAI documents only list and create for event settings, and
@@ -15025,7 +15556,9 @@ export const updateTrackingTagEvent = <ThrowOnError extends boolean = false>(opt
15025
15556
 
15026
15557
  /**
15027
15558
  * Delete a conversion event
15028
- * 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
15029
15562
  * instead; `state` in the response says which (`deleted`, `archived`, `disabled`).
15030
15563
  *
15031
15564
  * OpenAI Ads answers 501: there is no delete or archive route for event settings
@@ -15063,7 +15596,9 @@ export const deleteTrackingTagEvent = <ThrowOnError extends boolean = false>(opt
15063
15596
 
15064
15597
  /**
15065
15598
  * List tag users
15066
- * 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
15067
15602
  * tag user assignment answer 501.
15068
15603
  *
15069
15604
  * Meta: the pixel's assigned users in its owning Business Manager. A pixel on a personal ad
@@ -15081,7 +15616,9 @@ export const listTrackingTagUsers = <ThrowOnError extends boolean = false>(optio
15081
15616
 
15082
15617
  /**
15083
15618
  * Assign a user to a tag
15084
- * 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
15085
15622
  * replaces their task set.
15086
15623
  *
15087
15624
  * Meta: `tasks` are `AA_ANALYZE`, `ADVERTISE`, `ANALYZE`, `EDIT`, `UPLOAD`; `userId` is the
@@ -15114,7 +15651,9 @@ export const removeTrackingTagUser = <ThrowOnError extends boolean = false>(opti
15114
15651
 
15115
15652
  /**
15116
15653
  * List partner businesses of a tag
15117
- * 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
15118
15657
  * answer 501.
15119
15658
  *
15120
15659
  * Meta: the pixel's shared agencies. Sharing a pixel with a new partner is not available:
@@ -15131,7 +15670,9 @@ export const listTrackingTagPartners = <ThrowOnError extends boolean = false>(op
15131
15670
 
15132
15671
  /**
15133
15672
  * Get tag diagnostics
15134
- * 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.
15135
15676
  *
15136
15677
  * Meta: the pixel's checks from Events Manager (`da_checks`), e.g. whether events miss
15137
15678
  * parameters or their content ids do not match the pixel's catalogs.
@@ -15146,8 +15687,9 @@ export const getTrackingTagDiagnostics = <ThrowOnError extends boolean = false>(
15146
15687
 
15147
15688
  /**
15148
15689
  * Get aggregated event stats
15149
- * Returns event counts / health for the tag, where the platform exposes
15150
- * 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
15151
15693
  * through as-is; their shape depends on the `aggregation` requested.
15152
15694
  * Platforms without a stats API answer 501.
15153
15695
  *
@@ -16419,7 +16961,10 @@ export const listTikTokAdPixels = <ThrowOnError extends boolean = false>(options
16419
16961
 
16420
16962
  /**
16421
16963
  * List partnership ad content
16422
- * 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
+ *
16423
16968
  */
16424
16969
  export const listPartnershipAdContent = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListPartnershipAdContentData, ThrowOnError>) => {
16425
16970
  return (options?.client ?? client).get<ListPartnershipAdContentResponse, ListPartnershipAdContentError, ThrowOnError>({
@@ -16430,7 +16975,10 @@ export const listPartnershipAdContent = <ThrowOnError extends boolean = false>(o
16430
16975
 
16431
16976
  /**
16432
16977
  * List partnership permissions
16433
- * 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
+ *
16434
16982
  */
16435
16983
  export const listPartnershipAdPermissions = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<ListPartnershipAdPermissionsData, ThrowOnError>) => {
16436
16984
  return (options?.client ?? client).get<ListPartnershipAdPermissionsResponse, ListPartnershipAdPermissionsError, ThrowOnError>({
@@ -16441,7 +16989,10 @@ export const listPartnershipAdPermissions = <ThrowOnError extends boolean = fals
16441
16989
 
16442
16990
  /**
16443
16991
  * Set partnership permission
16444
- * 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
+ *
16445
16996
  */
16446
16997
  export const setPartnershipAdPermission = <ThrowOnError extends boolean = false>(options: OptionsLegacyParser<SetPartnershipAdPermissionData, ThrowOnError>) => {
16447
16998
  return (options?.client ?? client).post<SetPartnershipAdPermissionResponse, SetPartnershipAdPermissionError, ThrowOnError>({