Batch/Bulk Operations

Learn more about bulk operation capabilities.

Overview

Batch requests allow you to submit multiple create, update, or status-change operations within a single API call.

Use batch requests when you need to make the same type of change across multiple objects, such as campaigns, ad groups, or creative associations. Each item in a batch is processed independently and returns its own result.

Batch limits vary by endpoint. Please refer to the endpoint documentation for more details on batch size limitations.


When to use batch

Use batch

When to use batch

Batch requests are the best fit when you are making the same type of change across multiple objects.

  • Creating or updating multiple campaigns
  • Managing large numbers of ad groups
  • Performing scheduled bulk status updates
  • Synchronizing UI-driven changes
Avoid batch

When not to use batch

Use single-object requests when you need tighter troubleshooting, sequencing, or validation.

  • Debugging a single operation
  • Creating dependent objects in sequence
  • Testing configuration logic
  • Volume is low

How it works

Batch structure

Batch requests accept an array of request objects. All items in a batch must use the same advertiserId.

Example request structure

[ { "advertiserId": 1, "campaignId": 1, "action": "pause" }, { "advertiserId": 1, "campaignId": 2, "action": "resume" }, { "advertiserId": 1, "campaignId": 3, "action": "archive" }
]

Ordering considerations

Batch execution order is not guaranteed.

Do not include interdependent operations in the same batch when order matters. For example:

  • Do not create and immediately update the same campaign within one batch.
  • Do not depend on the creation of one object before referencing it in another within the same batch.

When sequencing matters, separate requests.


Partial success behavior

Batch operations are not transactional.

If one item in a batch fails:

  • Successful items are not rolled back
  • The response includes per-item status and error details
  • You must reconcile results at the item level

Always inspect each response object before retrying.


Supported endpoints

⚠️

Batch request rules

  • Each batch request must use a consistent advertiserId across all objects.
  • Batch size limits are enforced per endpoint and cannot be exceeded.
  • Where applicable, identifier combinations such as advertiserId + campaignId must be unique within the payload.
  • Batch requests may include multiple operations of the same type, provided they comply with validation and targeting rules.

Response structure example

[ { "code": "success", "details": ["string"], "campaignId": 1 }, { "code": "success", "details": ["string"], "campaignId": 2 }, { "code": "failure", "details": ["string"], "campaignId": 3 }
]

How to interpret results

Review each response object individually.

A successful item indicates the specific object was processed correctly. A failed item indicates only that object needs to be corrected and retried.

Retry guidance

  • Retry only failed items
  • Do not resend successful items in a new batch request
  • Correct validation issues before retrying


Related pages


Did this page help you?