# AdRoll

```json
{
  "name": "AdRoll",
  "slug": "adroll",
  "url": "https://composio.dev/toolkits/adroll",
  "markdown_url": "https://composio.dev/toolkits/adroll.md",
  "logo_url": "https://logos.composio.dev/api/adroll",
  "categories": [
    "advertising & marketing"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-02T05:31:21.169Z"
}
```

![AdRoll logo](https://logos.composio.dev/api/adroll)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with AdRoll MCP or direct API to manage campaigns, create and update audiences, pull performance reports, and adjust bids and budgets through natural language.

## Summary

AdRoll is a digital marketing platform for managing advertising campaigns, audiences, and account-based marketing.
It helps marketers retarget customers across channels and measure performance.

## Categories

- advertising & marketing

## Toolkit Details

- Tools: 51

## Images

- Logo: https://logos.composio.dev/api/adroll

## Authentication

- **Oauth2**
  - Type: `oauth2`
  - Description: Oauth2 authentication for AdRoll.
  - Setup:
    - Configure Oauth2 credentials for AdRoll.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Create retargeting audience from website visitors
- Pause underperforming campaigns across all accounts
- Generate performance report for last month

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `ADROLL_CREATE_AD` | Create Ad | Create an ad for an advertisable, optionally creating nested assets that do not have EIDs in the same operation. |
| `ADROLL_CREATE_ADGROUP` | Create Adgroup | Create a web-retargeting adgroup under a Campaign v3 campaign. |
| `ADROLL_CREATE_ADVERTISABLE` | Create Advertisable | Create an advertisable in an organization owned by the connected account. |
| `ADROLL_CREATE_ASSET` | Create Asset | Create an asset. File content is passed exactly as a base64 string in the JSON request body. |
| `ADROLL_CREATE_CAMPAIGN` | Create Campaign | Create a web-retargeting campaign under a Campaign v3 strategy. |
| `ADROLL_CREATE_MARKETPLACE` | Create Marketplace Mapping | Create a marketplace-to-merchant mapping. Both advertisables must be accessible and marketplace-enabled by AdRoll. |
| `ADROLL_CREATE_RULE` | Create Rule | Create a pixel rule. AdRoll may normalize the requested order; use the returned value as authoritative. CRM-data rules require a CSV containing at least 100 emails, but the provider does not document its exact file encoding and header contract. |
| `ADROLL_CREATE_SEGMENT` | Create Segment | Create one audience segment for an advertiser and seed it with user identifiers. |
| `ADROLL_CREATE_STRATEGY` | Create Strategy | Create a Campaign v3 strategy under an advertisable. |
| `ADROLL_DELETE_SEGMENT` | Delete Segment | Delete one existing audience segment. |
| `ADROLL_EDIT_ADVERTISABLE` | Edit Advertisable | Edit the name, URL, or country code of an accessible advertisable. |
| `ADROLL_GET_AD` | Get Ad | Retrieve an ad by its Ad API resource eid, not its Reporting adroll_ad_eid. |
| `ADROLL_GET_ADGROUP` | Get Adgroup | Fetch one Campaign v3 adgroup by EID. |
| `ADROLL_GET_ADGROUP_GEOTARGETS` | Get Adgroup Geotargets | Fetch a Campaign v3 adgroup and return only its geotarget configuration. |
| `ADROLL_GET_ADVERTISABLE` | Get Advertisable | Fetch an advertisable by EID. AdRoll returns matching records as an array. |
| `ADROLL_GET_ADVERTISABLE_PIXEL` | Get Advertisable Pixel | Fetch the active pixel for an accessible advertisable. |
| `ADROLL_GET_ASSET` | Get Asset | Retrieve an asset by its EID. |
| `ADROLL_GET_CAMPAIGN` | Get Campaign | Fetch one Campaign v3 campaign by advertisable and campaign EID. |
| `ADROLL_GET_CONSENT_BANNER` | Get Consent Banner | Fetch an advertisable's consent banner state. banner_declined is available only to advertisables in countries not covered by GDPR. |
| `ADROLL_GET_CURRENT_ORGANIZATION` | Get Current Organization | Return the connected account's current organization from Reporting GraphQL, including nested advertisables. |
| `ADROLL_GET_MARKETPLACE` | Get Marketplace Mappings | Retrieve marketplace mappings for a parent marketplace advertisable and child merchant advertisable. Both must be accessible and marketplace-enabled by AdRoll. |
| `ADROLL_GET_PIXEL` | Get Pixel | Fetch a pixel by EID. |
| `ADROLL_GET_PIXEL_SEGMENTS` | Get Pixel Segments | Fetch segments associated with a pixel. Composio always sends page 0 when omitted; per_page remains omitted unless supplied, preserving the provider's unpaginated response behavior. |
| `ADROLL_GET_RULE` | Get Rule | Fetch a rule by EID, including its generated segments when returned. |
| `ADROLL_GET_RULE_SEGMENTS` | Get Rule Segments | Fetch the segments associated with a specific rule. |
| `ADROLL_GET_SEGMENT` | Get Segment | Return one audience segment, optionally including general-exclusion attributes or an inactive segment. |
| `ADROLL_GET_STRATEGY` | Get Strategy | Fetch one Campaign v3 strategy by EID. |
| `ADROLL_GET_XDEVICE_OPT_IN` | Get Cross-Device Opt-In | Retrieve an accessible advertisable's cross-device graph opt-in setting. |
| `ADROLL_LIST_ADGROUPS` | List Adgroups | Return Reporting GraphQL adgroups for one campaign. Omitted collection filters preserve provider defaults; supplied filters constrain active state or included/excluded statuses. |
| `ADROLL_LIST_ADS` | List Ads | Retrieve one numbered page of ads for an advertisable, or set all='true' to request all matching ads. Omitted pagination inputs send page 1 with 10 records. |
| `ADROLL_LIST_ADVERTISABLES` | List Advertisables | Fetch one numbered page of advertisables associated with an organization; omitted pagination inputs send page 1 with 10 records. |
| `ADROLL_LIST_ASSETS` | List Assets | Retrieve one numbered page of assets belonging to an advertisable; omitted pagination inputs send page 1 with 10 records. |
| `ADROLL_LIST_CAMPAIGNS` | List Campaigns | Return Reporting GraphQL campaigns for one advertisable. Omitted collection filters preserve provider defaults; supplied filters support state, classification, channel, source, funnel, objective, and tags. |
| `ADROLL_LIST_SEGMENTS` | List Segments | Return audience segments for an advertiser, optionally filtered by segment type. |
| `ADROLL_LIST_STRATEGIES` | List Strategies | Return strategies for an advertisable. Cursor, paginate, and include_drafts are omitted unless supplied; the response has no pagination metadata. |
| `ADROLL_REPORTING_ADGROUPS` | Query Reporting Adgroups | Query adgroups by campaign, advertisable, one EID, or many EIDs with nested relations and optional date/currency metrics. |
| `ADROLL_REPORTING_ADS` | Query Reporting Ads | Query ads by adgroup, advertisable, or Reporting EIDs (`adroll_ad_eid` from the Ad API), with optional date/currency metrics; parent lookup preserves adgroup relationship state. |
| `ADROLL_REPORTING_ADVERTISABLES` | Query Reporting Advertisables | Query advertisables by user, organization, one EID, or many EIDs with nested relations and optional date/currency metrics. |
| `ADROLL_REPORTING_CAMPAIGNS` | Query Reporting Campaigns | Query campaigns by advertisable, organization, one EID, or many EIDs with nested relations and optional date/currency metrics. |
| `ADROLL_REPORTING_ORGANIZATIONS` | Query Reporting Organizations | Query the current AdRoll organization or organizations by one or many EIDs, including nested advertisables. |
| `ADROLL_REPORTING_QUERY` | Run Reporting GraphQL Query | Execute one AdRoll Reporting GraphQL document and preserve complete or partial provider data, errors, request ID, and version. |
| `ADROLL_REPORTING_SEGMENTS` | Query Reporting Segments | Query direct segment metadata or parent-scoped campaign/adgroup audiences with relationship state and optional date-scoped audience-size metrics. |
| `ADROLL_RUN_PERFORMANCE_REPORT` | Run Performance Report | Return current AdRoll GraphQL delivery metrics for advertisables, campaigns, adgroups, or ads, optionally with attribution metrics, as an aggregate summary, aggregate daily rows, or per-entity summaries. |
| `ADROLL_SEARCH_GEOTARGETS` | Search Geotargets | Search AdRoll geotargets by a location-name prefix and optional types. Use count and page to iterate through results until an empty items list is returned. |
| `ADROLL_SET_CAMPAIGN_STATUS` | Set Campaign Status | Pause or activate one campaign through the Campaign v3 edit operation. |
| `ADROLL_UPDATE_ADGROUP` | Update Adgroup | Edit one web-retargeting or web-prospecting Campaign v3 adgroup. |
| `ADROLL_UPDATE_CAMPAIGN` | Update Campaign | Edit one Campaign v3 campaign. Retargeting nested adgroups are inferred as create-or-edit by eid; prospecting nested adgroups must include eid. |
| `ADROLL_UPDATE_CONSENT_BANNER` | Update Consent Banner | Create or update an advertisable's consent banner configuration. AdRoll permits banner_declined only for advertisables in countries not covered by GDPR. |
| `ADROLL_UPDATE_SEGMENT` | Update Segment | Update audience-segment information and submit its user-record payload. |
| `ADROLL_UPDATE_STRATEGY` | Update Strategy | Edit a Campaign v3 strategy using a caller-provided complete campaign set. Nested campaigns with eid are edited and those without eid are created. Any existing campaign omitted from campaigns is deleted. |
| `ADROLL_UPDATE_XDEVICE_OPT_IN` | Update Cross-Device Opt-In | Update an accessible advertisable's cross-device graph opt-in setting; provider feature access is required. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute AdRoll Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute AdRoll actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'YOUR_SPECIFIC_PROMPT_HERE'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for AdRoll
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to AdRoll tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('YOUR_SPECIFIC_PROMPT_HERE')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'YOUR_SPECIFIC_PROMPT_HERE'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native AdRoll Integration

- Supports both AdRoll MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable tool execution
- Rich coverage for reading, writing, and querying your AdRoll data

### 2. Managed Auth

- Built-in OAuth handling with automatic token refresh and rotation
- Central place to manage, scope, and revoke AdRoll access
- Per user and per environment credentials instead of hard-coded keys

### 3. Agent Optimized Design

- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access AdRoll
- Scoped, least privilege access to AdRoll resources
- Full audit trail of agent actions to support review and compliance

## Use AdRoll with any AI Agent Framework

Choose a framework you want to connect AdRoll with:

- [ChatGPT](https://composio.dev/toolkits/adroll/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/adroll/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/adroll/framework/hermes-agent)
- [Atomic Agent](https://composio.dev/toolkits/adroll/framework/atomic-agent)

## Related Toolkits

- [Metaads](https://composio.dev/toolkits/metaads) - Metaads is Meta's official Ads API that lets you manage, analyze, and optimize your Facebook and Instagram ad campaigns. Streamline ad operations and gain deeper insights with robust automation.
- [Adrapid](https://composio.dev/toolkits/adrapid) - Adrapid is a platform for rapid creation of digital marketing visuals using templates. It streamlines design workflows for banners, images, and HTML5 content with automation.
- [Adtraction](https://composio.dev/toolkits/adtraction) - Adtraction is an affiliate marketing platform for partner programs, tracking links, transactions, commissions, statistics, and payments. It helps advertisers and publishers manage performance marketing with clear reporting and payout workflows.
- [Adyntel](https://composio.dev/toolkits/adyntel) - Adyntel is an API that retrieves LinkedIn ads for any company using a domain or LinkedIn Page ID. Easily access competitive ad intelligence to power your marketing workflows.
- [Beaconstac](https://composio.dev/toolkits/beaconstac) - Beaconstac is a platform for creating and managing QR codes and proximity beacons. It helps businesses engage customers and track marketing performance with powerful analytics.
- [Bouncify](https://composio.dev/toolkits/bouncify) - Bouncify is an email verification service for single addresses and bulk lists. Use it to reduce bounces, protect sender reputation, and track verification credits.
- [Bulk Email Checker](https://composio.dev/toolkits/bulk_email_checker) - Bulk Email Checker is an email verification service for checking address validity, mailbox status, domains, and mail-server signals. It helps reduce bounces, spot risky emails, and keep outreach lists cleaner before you send.
- [Campaign cleaner](https://composio.dev/toolkits/campaign_cleaner) - Campaign cleaner is an email campaign optimization tool that boosts compatibility and deliverability across email clients. It helps marketers get better results by cleaning, enhancing, and ensuring high performance for every campaign.
- [Deadline funnel](https://composio.dev/toolkits/deadline_funnel) - Deadline Funnel lets you create personalized deadlines and timers for your marketing campaigns. It helps marketers boost conversions by adding authentic urgency to offers.
- [DeBounce](https://composio.dev/toolkits/debounce) - DeBounce is an email verification service for checking address validity, deliverability, and risk. It helps keep contact lists clean so your campaigns reach real inboxes.
- [Easy Email Verification](https://composio.dev/toolkits/easy_email_verification) - Easy Email Verification is an email validation service for checking single addresses and bulk lists. Use it to reduce bounces, clean contact data, and protect sender reputation.
- [Elastic Email](https://composio.dev/toolkits/elastic_email) - Elastic Email is an email delivery and marketing platform for transactional emails, campaigns, contacts, and reporting. Use it to send reliable emails, manage audiences, verify addresses, and track performance.
- [Fairing](https://composio.dev/toolkits/fairing) - Fairing is a post-purchase survey and attribution platform for ecommerce brands. It helps teams measure which marketing channels, campaigns, and customer touchpoints drive purchases.
- [GoDaddy MCP](https://composio.dev/toolkits/godaddy_mcp) - GoDaddy MCP is a domain discovery toolkit for checking availability and generating AI-powered name ideas. Use it to move from rough business keywords to practical domain options fast.
- [Google Ads](https://composio.dev/toolkits/googleads) - Google Ads is Google's online advertising platform for creating, managing, and optimizing digital campaigns. It helps businesses reach targeted customers and maximize return on ad spend.
- [Handwrite.io](https://composio.dev/toolkits/handwrite) - Handwrite.io is a direct mail service for creating physical handwritten card orders. It helps teams send personal cards with selectable handwriting, stationery, and tracking.
- [Inblog](https://composio.dev/toolkits/inblog) - Inblog is an AI-powered blogging platform for posts, authors, tags, redirects, design settings, analytics, and lead forms. Use it to manage SEO-focused content, measure performance, and capture blog leads in one place.
- [Instantly](https://composio.dev/toolkits/instantly) - Instantly is a platform for automating cold email outreach, managing leads, and optimizing deliverability. Get better results from email campaigns with minimal manual effort.
- [Invalid Bounce](https://composio.dev/toolkits/invalid_bounce) - Invalid Bounce is an email verification service with a bulk verification API. Use it to clean email lists, reduce bounces, and protect sender reputation.
- [Keyword](https://composio.dev/toolkits/keyword) - Keyword.com is a digital marketing platform for search rank tracking and SEO analytics. Use it to monitor keyword performance, spot ranking changes, and measure SEO visibility.

## Frequently Asked Questions

### Do I need my own developer credentials to use AdRoll with Composio?

Yes, AdRoll requires you to configure your own OAuth credentials. Once set up, Composio handles token storage, refresh, and lifecycle management for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
