---
canonical_url: "https://docs.composio.dev/toolkits/microsoft_advertising"
markdown_url: "https://docs.composio.dev/toolkits/microsoft_advertising.md"
product: "platform"
version: null
last_updated: null
---

# Microsoft Advertising

Manage Microsoft Advertising accounts, campaigns, ad groups, and asynchronous reports through the documented v13 REST APIs.

- **Category:** ads & conversion
- **Auth:** OAUTH2
- **Composio-managed OAuth available?** No
- **Tools:** 14
- **Triggers:** 0
- **Slug:** `MICROSOFT_ADVERTISING`
- **Version:** 00000000_00

## Tools

### Activate Ad Groups

**Slug:** `MICROSOFT_ADVERTISING_ACTIVATE_AD_GROUPS`

Activate up to 1,000 ad groups in a Microsoft Advertising campaign. WARNING: Activation can immediately make eligible ads deliver and incur spend when the parent campaign, bids, targeting, and ads permit delivery. Verify the selected IDs and campaign configuration before calling. Inspect partial_errors because Microsoft can accept the request while rejecting individual activations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | Advertiser account ID containing the parent campaign. |
| `campaign_id` | string | Yes | Campaign ID containing the ad groups to activate. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |
| `ad_group_ids` | array | Yes | IDs of up to 1,000 ad groups to activate. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Activate Campaigns

**Slug:** `MICROSOFT_ADVERTISING_ACTIVATE_CAMPAIGNS`

Activate 1 to 100 Microsoft Advertising campaigns. This can immediately make configured ads eligible for delivery and cause the account to incur ad spend. Inspect partial_errors because Microsoft can accept the request while rejecting individual campaign activations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | Advertiser account ID containing the campaigns to activate. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |
| `campaign_ids` | array | Yes | Campaign IDs to activate. Activating campaigns can enable configured ads to deliver and incur spend. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Search Ad Groups

**Slug:** `MICROSOFT_ADVERTISING_CREATE_SEARCH_AD_GROUPS`

Create up to 1,000 Search ad groups under a Microsoft Advertising campaign. Ad groups default to Paused. HTTP success can include failed items, represented by null ad_group_ids and indexed partial_errors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_groups` | array | Yes | Search ad groups to create, up to 1,000. Each item is sent as SearchStandard and defaults to Paused. |
| `account_id` | string | Yes | Advertiser account ID containing the parent campaign. |
| `campaign_id` | string | Yes | Campaign ID that will own the new ad groups. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Search Campaigns

**Slug:** `MICROSOFT_ADVERTISING_CREATE_SEARCH_CAMPAIGNS`

Create up to 100 Search campaigns with unshared budgets in a Microsoft Advertising account. Campaigns default to Paused. HTTP success can include failed items, represented by null campaign_ids and indexed partial_errors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaigns` | array | Yes | Search campaigns to create, up to 100. Every item uses CampaignType Search and an unshared campaign-level budget. |
| `account_id` | string | Yes | Advertiser account ID where the campaigns will be created; sent as both the CustomerAccountId header and AccountId body field. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Ad Groups

**Slug:** `MICROSOFT_ADVERTISING_DELETE_AD_GROUPS`

Permanently delete 1 to 1,000 ad groups from a Microsoft Advertising campaign. This destructive operation cannot be undone. A successful HTTP response can still contain item-level failures in partial_errors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | Advertiser account ID containing the parent campaign. |
| `campaign_id` | string | Yes | Campaign ID containing the ad groups to permanently delete. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |
| `ad_group_ids` | array | Yes | Ad-group IDs to permanently delete, from 1 to 1,000 IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Campaigns

**Slug:** `MICROSOFT_ADVERTISING_DELETE_CAMPAIGNS`

Permanently delete 1 to 100 campaigns from a Microsoft Advertising account. This destructive operation cannot be undone. A successful HTTP response can still contain item-level failures, which are preserved in partial_errors.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | Advertiser account ID containing the campaigns; sent both as the CustomerAccountId header and AccountId body field. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |
| `campaign_ids` | array | Yes | Campaign IDs to permanently delete, from 1 to 100 IDs. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Generate Account Performance Report

**Slug:** `MICROSOFT_ADVERTISING_GENERATE_ACCOUNT_PERFORMANCE_REPORT`

Submit an account-performance report without polling, or check an existing report_request_id once. A submission returns Pending promptly; wait 2 to 15 minutes before checking that ID again until Success. Does not download the ZIP.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `format` | string ("Csv" | "Tsv" | "Xml") | No | Report data format inside Microsoft's ZIP download. |
| `columns` | array | No | AccountPerformanceReportColumn values in desired output order. |
| `account_id` | string | Yes | Advertiser account ID to report on; sent as CustomerAccountId. |
| `aggregation` | string ("Summary" | "Hourly" | "Daily" | "Weekly" | "Monthly" | "Yearly" | "HourOfDay" | "DayOfWeek" | "WeeklyStartingMonday") | No | How to aggregate report rows. Include TimePeriod in columns for non-Summary aggregation to take effect. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the account. |
| `report_name` | string | No | Optional name included in the report header. |
| `custom_end_date` | object | No | Inclusive custom end date; requires custom_start_date. |
| `predefined_time` | string ("Today" | "Yesterday" | "LastSevenDays" | "ThisWeek" | "LastWeek" | "Last14Days" | "Last30Days" | "LastFourWeeks" | "ThisMonth" | "LastMonth" | "LastThreeMonths" | "LastSixMonths" | "ThisYear" | "LastYear" | "ThisWeekStartingMonday" | "LastWeekStartingMonday" | "LastFourWeeksStartingMonday") | No | Microsoft predefined report period, such as Yesterday, LastSevenDays, ThisMonth, or LastMonth. Custom dates replace this value. |
| `report_time_zone` | string ("Nukualofa" | "FijiKamchatkaMarshallIsland" | "AucklandWellington" | "MagadanSolomonIslandNewCaledonia" | "Vladivostok" | "Hobart" | "GuamPortMoresby" | "CanberraMelbourneSydney" | "Brisbane" | "Darwin" | "Adelaide" | "Yakutsk" | "Seoul" | "OsakaSapporoTokyo" | "Taipei" | "Perth" | "KualaLumpurSingapore" | "IrkutskUlaanBataar" | "BeijingChongqingHongKongUrumqi" | "Krasnoyarsk" | "BangkokHanoiJakarta" | "Rangoon" | "SriJayawardenepura" | "AstanaDhaka" | "AlmatyNovosibirsk" | "Kathmandu" | "ChennaiKolkataMumbaiNewDelhi" | "IslandamabadKarachiTashkent" | "Ekaterinburg" | "Kabul" | "BakuTbilisiYerevan" | "AbuDhabiMuscat" | "Tehran" | "Nairobi" | "MoscowStPetersburgVolgograd" | "KuwaitRiyadh" | "Baghdad" | "Jerusalem" | "HelsinkiKyivRigaSofiaTallinnVilnius" | "HararePretoria" | "Cairo" | "Bucharest" | "AthensIslandanbulMinsk" | "WestCentralAfrica" | "SarajevoSkopjeWarsawZagreb" | "BrusselsCopenhagenMadridParis" | "BelgradeBratislavaBudapestLjubljanaPrague" | "AmsterdamBerlinBernRomeStockholmVienna" | "CasablancaMonrovia" | "GreenwichMeanTimeDublinEdinburghLisbonLondon" | "Azores" | "CapeVerdeIsland" | "MidAtlantic" | "Brasilia" | "BuenosAiresGeorgetown" | "Greenland" | "Newfoundland" | "AtlanticTimeCanada" | "CaracasLaPaz" | "Santiago" | "BogotaLimaQuito" | "EasternTimeUSCanada" | "IndianaEast" | "CentralAmerica" | "CentralTimeUSCanada" | "GuadalajaraMexicoCityMonterrey" | "Saskatchewan" | "Arizona" | "ChihuahuaLaPazMazatlan" | "MountainTimeUSCanada" | "PacificTimeUSCanadaTijuana" | "Alaska" | "Hawaii" | "MidwayIslandandSamoa" | "InternationalDateLineWest") | No | Microsoft Reporting time-zone value used to interpret the period. |
| `custom_start_date` | object | No | Inclusive custom start date; requires custom_end_date. |
| `report_request_id` | string | No | Existing Microsoft report request ID to check. When supplied, the action skips submission and checks this request once. |
| `return_only_complete_data` | boolean | No | Require fully processed data; do not enable for a period including today. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Current Advertising User

**Slug:** `MICROSOFT_ADVERTISING_GET_CURRENT_USER`

Return the connected Microsoft Advertising user and their customer/account roles; optionally look up another accessible user by ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `user_id` | string | No | Microsoft Advertising user ID to retrieve; omit to return the connected user. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Advertiser Accounts

**Slug:** `MICROSOFT_ADVERTISING_LIST_ACCOUNTS`

Return advertiser accounts accessible under a customer, including lifecycle and pause state needed before campaign work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `customer_id` | string | No | Customer ID whose advertiser accounts to list; omit to let Microsoft infer the customer from the connected user. |
| `only_parent_accounts` | boolean | No | When true, exclude linked advertiser accounts owned by other customers. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Ad Groups

**Slug:** `MICROSOFT_ADVERTISING_LIST_AD_GROUPS`

Return ad groups in a Microsoft Advertising campaign. Omit ad_group_ids to use the campaign-wide route, or supply up to 1,000 IDs to use Microsoft's ID-filtered route. ID-filtered responses preserve nullable ad-group slots and partial_errors instead of treating HTTP 200 as complete success.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | Advertiser account ID containing the campaign. |
| `campaign_id` | string | Yes | Campaign ID containing the ad groups. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |
| `ad_group_ids` | array | No | Ad-group IDs to retrieve, up to 1,000. Omit to list all ad groups in the campaign. ID-filtered results retain null slots for IDs Microsoft could not resolve; inspect partial_errors for item-level failures. |
| `additional_fields` | array | No | AdGroupAdditionalField values for properties that Microsoft does not return by default. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Campaigns

**Slug:** `MICROSOFT_ADVERTISING_LIST_CAMPAIGNS`

Return campaigns in a Microsoft Advertising account. Omit campaign_ids to use the account-wide route, or supply up to 100 IDs to use Microsoft's ID-filtered route. ID-filtered responses preserve nullable campaign slots and matching partial_errors instead of treating HTTP 200 as complete success.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `account_id` | string | Yes | Advertiser account ID containing the campaigns; sent both as the CustomerAccountId header and AccountId body field. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |
| `campaign_ids` | array | No | Campaign IDs to retrieve, up to 100. Omit to list campaigns in the account instead. Results retain null slots for IDs Microsoft could not resolve; inspect partial_errors at the matching indexes. |
| `campaign_types` | array | No | Campaign types to include, such as Search, Shopping, Audience, Hotel, or PerformanceMax. Omit for Microsoft's Search default. |
| `additional_fields` | array | No | CampaignAdditionalField values for newer properties that Microsoft does not return by default. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Accessible Customers

**Slug:** `MICROSOFT_ADVERTISING_LIST_CUSTOMERS`

Return Microsoft Advertising customers accessible to the connected user, optionally filtered by a case-insensitive name prefix.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `max_results` | integer | No | Positive maximum number of customers to return. This bounds one complete response and is not pagination. |
| `name_prefix` | string | No | Optional customer-name prefix; matching is case-insensitive. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Ad Groups

**Slug:** `MICROSOFT_ADVERTISING_UPDATE_AD_GROUPS`

Partially update up to 1,000 ad groups in a Microsoft Advertising campaign. Only supplied fields are sent, so omitted settings remain unchanged. This action is financially consequential: increasing a CPC bid or expanding network reach can increase spend on an active ad group. Inspect partial_errors because Microsoft can accept the request while rejecting individual ad-group patches.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `ad_groups` | array | Yes | Ad-group patches. Each item requires an ID and at least one mutable field; omitted fields remain unchanged. |
| `account_id` | string | Yes | Advertiser account ID containing the parent campaign. |
| `campaign_id` | string | Yes | Campaign ID containing the ad groups to update. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Campaigns

**Slug:** `MICROSOFT_ADVERTISING_UPDATE_CAMPAIGNS`

Partially update up to 100 campaigns in a Microsoft Advertising account. Only supplied fields are sent, so omitted settings remain unchanged. This action is financially consequential: increasing a budget can increase spend on an active campaign. It can pause campaigns but cannot activate them; use ACTIVATE_CAMPAIGNS for activation. Inspect partial_errors because Microsoft can accept the request while rejecting individual campaign patches.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `campaigns` | array | Yes | Campaign patches. Each item requires an ID and at least one mutable field; omitted fields remain unchanged. |
| `account_id` | string | Yes | Advertiser account ID containing the campaigns; sent both as the CustomerAccountId header and AccountId body field. |
| `customer_id` | string | Yes | Manager customer ID through which the connected user operates the advertiser account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
