---
title: "Set device bid modifiers"
method: POST
path: "/api/v1/tools/google_set_device_bid_modifiers/execute"
tags: ["Google Ads"]
---

# Set device bid modifiers

`POST /api/v1/tools/google_set_device_bid_modifiers/execute`

## Request

- Base URL: `https://adako.ai`
- URL: `https://adako.ai/api/v1/tools/google_set_device_bid_modifiers/execute`
- Auth: HTTP bearer

Sets the bid multiplier for phones, computers and tablets on one campaign. A multiplier of 1 leaves bids alone; 0.8 bids 20% less; 1.2 bids 20% more. Google allows 0.1 (−90%) to 10 (+900%).
Use when: google_get_device_performance shows a clear, sustained difference in cost per conversion between devices and there is enough data behind it.
Do not use when: the campaign uses target CPA or target ROAS. Those strategies set their own device bids and ignore these modifiers except as a hint — the change looks like an action and does nothing. Say that instead.
Do not use it to switch a device off either: 0.1 is the lowest multiplier and still buys traffic. Excluding a device entirely is a different change Adako does not make.
The preview shows the current and new multiplier per device. Devices you do not pass are left alone.
If you are unsure which account, campaign or period the user means, ask them — do not guess ids or dates.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `arguments` object, required
    - `customer_id` string: Google Ads customer id (10 digits, dashes optional). Omit to use the primary account; list_connected_accounts shows the valid ids.
    - `campaign_id` string, required: Campaign id as returned by google_list_campaigns.
    - `mobile` number: Bid multiplier for phones.
    - `desktop` number: Bid multiplier for computers.
    - `tablet` number: Bid multiplier for tablets.
    - `idempotency_key` string: Optional caller-supplied key; identical keys never execute twice.

## Response `200`

The tool ran. A write returns proposal_id and approve_url while the change waits for approval.

- SuccessEnvelope
  - `success` unknown, required
  - `tool` string, required
  - `data` object, required: Machine-readable result.
  - `markdown` string, required: The same result written for a person or a model.
  - `quota` Quota: Task usage for the current billing period.
    - `plan` string
    - `used` integer
    - `limit` integer
    - `period_end` string
    - `upgrade_url` string
  - `proposal_id` string: Present for writes. Nothing changes on the ad platform until it is approved.
  - `approve_url` string: Where a person approves the proposal.
  - `request_id` string, required

## Other responses

- `400`: Invalid arguments, or the ad account could not be resolved.
- `401`: Missing, invalid, revoked or expired API key.
- `402`: Monthly task quota used up, or the plan does not include this tool.
- `403`: The connected ad account lacks the access level this tool needs.
- `404`: Unknown tool name.
- `409`: Not connected, reconnect needed, confirmation required, a proposal already pending or no longer pending, an identical create that failed earlier today (proposal_failed_before), a create that duplicates an approved one (duplicate_create), the ad-account limit of the plan reached (account_limit), or an Idempotency-Key reused with different arguments.
- `429`: Rate limited by Adako or by the ad platform. See Retry-After.
- `500`: Unexpected error inside Adako.
- `502`: The ad platform returned an error.

---

[API](https://skmtc.dev/adako/apis/adako-rest-api.md) · [All operations](https://skmtc.dev/adako/apis/adako-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adako/apis/adako-rest-api/revisions/59ee60d48a56?raw)
