Skip to content
AdlyseDocs
Product guideMCP reference
⌘K
Open Adlyse
⌘K
Overview
QuickstartAuthentication
adlyse-insights
adlyse-ads
list_ad_accountsget_platform_supportget_ad_creation_capabilitiesget_ad_build_specupdate_ad_build_speclist_ad_plansget_ad_plan_publicationget_ad_planimport_ad_to_planimport_live_ad_to_plancreate_ad_plan_variantsadd_ad_plan_variantsupdate_ad_plan_groupgroup_ad_plansget_ad_plan_groupfreeze_ad_plan_grouppublish_ad_plan_groupcreate_ad_plancreate_ad_edit_planupdate_ad_planattach_ad_plan_assetfill_ad_plan_slotsfreeze_ad_planpublish_ad_planresolve_ad_publish_steplist_campaignsget_performancelist_change_eventslist_adsget_ad_performancelist_creative_librarylist_experimentsget_experimentpause_experimentresume_experimentstop_experimentpause_creative_adsupdate_ad_group_statusupdate_ad_statusupdate_campaign_statusupdate_campaign_budgetlist_swipe_filesave_competitor_ad_to_swipe_filesave_creative_to_swipe_fileremix_from_swipe_filestart_creative_jobresize_creativemake_variants_of_winnerget_creative_jobestimate_creative_batchstart_creative_batchbatch_to_plan_groupget_creative_batchsnapshot_catalog_productsgenerate_ad_copylist_ad_copycreate_creative_conceptrequest_creative_reviewget_creative_review
adlyse-workflows
adlyse-admin
adlyse-all
  1. Overview
  2. adlyse-ads

update_campaign_budget

Change a campaign’s daily budget (in the account’s currency, e.g. USD). Same preview / decision-log semantics as update_campaign_status.

Platform support: Google Ads (the campaign’s CampaignBudget resource is resolved via GAQL automatically — note shared budgets affect every campaign using them), Meta Ads, Microsoft Ads, and ChatGPT Ads (amounts in integer micros).

Parameters#

NameTypeRequiredDefaultDescription
ad_account_idstringyesAd account id
campaign_idstringyesPlatform campaign id
daily_budgetnumberyesNew daily budget in dollars (must be > 0)
previewbooleannofalseLocal diff only; don’t call the platform

Budgets are always provided in dollars; Adlyse converts to the platform’s minor units (cents for USD) on the wire. Changes below $0.01 are treated as unchanged.

Returns#

json
{
  "ad_account_id": "ad_acct_abc",
  "campaign_id": "c1",
  "campaign_name": "Retargeting - Core",
  "platform": "meta_ads",
  "preview": false,
  "changed": true,
  "applied": true,
  "diff": { "daily_budget": { "before": 100.00, "after": 125.00 } },
  "decision_id": "decentry_xyz",
  "platform_response": { "id": "c1", "daily_budget": 12500 },
  "source": "adlyse.ads_writes@v1"
}

Field semantics are identical to update_campaign_status, but diff contains a daily_budget object instead of a status object.

Errors#

error_typeWhen
auth_errorMissing / invalid API key
validation_errordaily_budget not a number, ≤ 0
not_foundAd account doesn’t belong to your org, or campaign isn’t synced under this account
unsupported_for_platformPlatform has no write adapter
credentials_missingMeta account has no linked credentials — reconnect it
platform_errorMeta API rejected the change; no decision is logged on failure

Idempotency#

Calling update_campaign_budget with a value equal to (or within ±$0.005 of) the current daily budget returns changed: false, applied: false, decision_id: null without contacting Meta.

Example#

Request:

json
{
  "ad_account_id": "ad_acct_abc",
  "campaign_id": "c1",
  "daily_budget": 125.00,
  "preview": false
}

Response: as shown above.

See also#

  • update_campaign_status — pause / resume
  • Home — the decision queue these changes are recorded against
Previousupdate_campaign_statusNextlist_swipe_file