# Update an X Ads line item

Update a line item's bid, budget, name, schedule, placements, goal, pacing, audience expansion (set audience_expansion=EXPANDED to turn on Optimized Targeting). Works on your own X Ads account, connected through Get MCP Ads. The preview is free; the change costs $0.05 when you confirm it. Needs account id and line item id.

Update a line item's bid, budget, name, schedule, placements, goal, pacing, audience expansion (set audience_expansion=EXPANDED to turn on Optimized Targeting) or entity_status. Set entity_status=PAUSED to pause this ad group; pausing is only possible here, and activate_line_item is the only way to make it eligible to spend again. Preview by default. Ask the user to approve the exact account, target and parameters before confirm:true. Agentik price: free to preview; $0.05 when the change is applied (confirm: true without validateOnly).

- Tool ID: `x-ads/update-line-item`
- Name in the catalog: X Ads: Update line item
- Provider: [X Ads](/providers/x-ads.md)
- Capability: [X Ads campaign management](/tools/x-ads/campaign-management.md)
- Price: free preview, $0.05 per applied change
- Workspace access is automatic. Connect a platform using the link and notice returned to your AI assistant; an owner or admin completes platform consent and returns to the conversation; see the [guide](/docs/getmcpads.md).
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_call",
  "amountUsd": 0,
  "multipliers": [
    {
      "all": [
        {
          "field": "confirm",
          "equals": true
        },
        {
          "field": "validateOnly",
          "truthy": false
        }
      ],
      "setUsd": 0.05
    }
  ]
}
```

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "account_id": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9]+$",
      "maxLength": 64,
      "description": "X Ads account ID selected in Sources."
    },
    "advertiser_domain": {
      "type": "string",
      "maxLength": 100000,
      "description": "New website domain of the advertiser (no protocol); required when placements includes PUBLISHER_N..."
    },
    "android_app_store_identifier": {
      "type": "string",
      "maxLength": 100000,
      "description": "New Google Play package name of the promoted app, e.g. com.example.app."
    },
    "audience_expansion": {
      "type": "string",
      "enum": [
        "BROAD",
        "DEFINED",
        "EXPANDED"
      ],
      "description": "New audience expansion level; EXPANDED turns on what Ads Manager calls Optimized Targeting (off b..."
    },
    "bid_amount_local_micro": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "New bid in micros of the account currency; only with bid_strategy MAX or TARGET."
    },
    "bid_strategy": {
      "type": "string",
      "enum": [
        "AUTO",
        "MAX",
        "TARGET"
      ],
      "description": "New bidding strategy."
    },
    "categories": {
      "type": "string",
      "maxLength": 100000,
      "description": "New comma-separated IAB content category IDs, e.g. IAB3-1,IAB19 (see list_iab_categories)."
    },
    "daily_budget_amount_local_micro": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "New line item daily budget in micros."
    },
    "duration_in_days": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "New frequency_cap window (1, 7 or 30 days); set together with frequency_cap."
    },
    "end_time": {
      "type": "string",
      "maxLength": 100000,
      "description": "New end time (ISO 8601)."
    },
    "entity_status": {
      "type": "string",
      "enum": [
        "PAUSED"
      ],
      "description": "Set PAUSED to pause this ad group (the only pause path). Resume with activate_line_item."
    },
    "frequency_cap": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "New maximum times an ad can be delivered to a user within duration_in_days."
    },
    "goal": {
      "type": "string",
      "maxLength": 100000,
      "description": "New optimization goal (e.g. ENGAGEMENT, LINK_CLICKS, SITE_VISITS, WEBSITE_CONVERSIONS, FOLLOWERS,..."
    },
    "ios_app_store_identifier": {
      "type": "string",
      "maxLength": 100000,
      "description": "New numeric Apple App Store ID of the promoted app, e.g. 333903271."
    },
    "line_item_id": {
      "type": "string",
      "maxLength": 100000,
      "description": "Line item ID belonging to the selected X Ads account."
    },
    "name": {
      "type": "string",
      "maxLength": 100000,
      "description": "New line item name (1-255 characters)."
    },
    "pay_by": {
      "type": "string",
      "enum": [
        "APP_CLICK",
        "APP_INSTALL",
        "ENGAGEMENT",
        "FOLLOW",
        "IMPRESSION",
        "LINK_CLICK",
        "VIEW",
        "VIEW_3S_100PCT",
        "VIEW_6S",
        "VIDEO_START"
      ],
      "description": "New unit to pay by. Only settable for APP_INSTALLS (APP_CLICK or APP_INSTALL) and REACH (IMPRESSI..."
    },
    "placements": {
      "type": "string",
      "maxLength": 100000,
      "description": "New comma-separated placements, e.g. ALL_ON_TWITTER or TWITTER_TIMELINE,TWITTER_PROFILE. Valid va..."
    },
    "primary_web_event_tag": {
      "type": "string",
      "maxLength": 100000,
      "description": "New website conversion tag (pixel) id; see list_web_event_tags."
    },
    "standard_delivery": {
      "type": "boolean",
      "description": "true paces spend evenly through the day; false spends as fast as possible (accelerated delivery, ..."
    },
    "start_time": {
      "type": "string",
      "maxLength": 100000,
      "description": "New start time (ISO 8601)."
    },
    "total_budget_amount_local_micro": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991,
      "description": "New line item total budget in micros."
    },
    "confirm": {
      "type": "boolean",
      "default": false,
      "description": "False previews only; true applies this exact change after explicit human confirmation."
    },
    "workspace_id": {
      "type": "string",
      "description": "Authorized workspace ID from list_accounts/list_workspaces. Use the user's chosen workspace; never guess between clients. Optional when a unique account identifies it."
    },
    "reason": {
      "type": "string",
      "maxLength": 500,
      "description": "Why, in the person's words or from the evidence (e.g. CPA twice the target for 7 days). Saved with the change in the shared client journal."
    }
  },
  "required": [
    "account_id",
    "line_item_id"
  ]
}
```

## Published example

No example input is published for this tool. Ask for the inputs required by its schema.

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[REST inspection](https://api.agentik.cc/v1/tools/x-ads/update-line-item) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/x-ads/update-line-item) · [Agent index](/llms.txt)
