Google Ads
Overview
Section titled “Overview”Google Ads is Google’s online advertising platform where advertisers create and manage ad campaigns displayed in search results, partner websites, and videos. With the Google Ads integration in SquadOS, your agents can automate campaign management, query performance metrics via GAQL, create and update customer lists for audience targeting, and run batch operations on ad groups and campaigns.
- Official website: https://ads.google.com/
- Composio documentation: docs.composio.dev/toolkits/googleads
Authentication
Section titled “Authentication”This tool uses OAuth 2.0 (OAUTH2) to connect.
You will need the following fields:
| Field | Required | Description |
|---|---|---|
customer_id | Yes | The Google Ads account (customer) ID that agents should operate on. Available in the Google Ads dashboard in the top-right corner. |
How to connect in SquadOS
Section titled “How to connect in SquadOS”- Go to Tools in the side menu (
/admin/tools). - Open the Available tab and search for
Google Ads. - Click the card to open the details and hit Connect.
- You’re taken to the secure connection page hosted by Composio, where you authorize access to your Google Ads account via OAuth.
- Once done, you’re sent back to SquadOS with the account connected and the tool available to agents. (Connection-flow details in Organization Tools.)
Available actions
Section titled “Available actions”Add or remove to customer list
Section titled “Add or remove to customer list”GOOGLEADS_ADD_OR_REMOVE_TO_CUSTOMER_LIST
AddOrRemoveToCustomerList Tool will add a contact to a customer list in Google Ads. Note: It takes 6 to 12 hours for changes to be reflected in the customer list. Email addresses must comply with Google Ads policies and applicable privacy/consent laws.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
emails | array | Yes | Array of emails of the contacts to be added to the customer list. Emails must be valid, normalized strings (lowercase, trimmed); malformed addresses reduce match rates. |
operation | string | No | Operation to be performed on the customer list. Either "create" or "remove". |
resource_name | string | Yes | Resource name of the customer list. For example: customers/1234567890/userLists/1234567890. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error message if execution failed. |
successful | boolean | Yes | Whether the action executed successfully. |
Create customer list
Section titled “Create customer list”GOOGLEADS_CREATE_CUSTOMER_LIST
Creates a customer list in Google Ads. Note: Requires an authenticated Google Ads connection with customer_id configured. Email-based lists must comply with Google Ads policies and applicable privacy/consent laws. Membership updates can take many hours to propagate; targeting eligibility is not immediate after creation.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the customer list. |
description | string | No | Description of the customer list. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error message if execution failed. |
successful | boolean | Yes | Whether the action executed successfully. |
Get Campaign By Id
Section titled “Get Campaign By Id”GOOGLEADS_GET_CAMPAIGN_BY_ID
GetCampaignById Tool returns details of a campaign in Google Ads. Requires an active Google Ads OAuth connection with the correct customer_id configured; missing or mismatched customer_id will cause empty results.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
id | string | Yes | id of the campaign to search on GoogleAds. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error message if execution failed. |
successful | boolean | Yes | Whether the action executed successfully. |
Get campaign by name
Section titled “Get campaign by name”GOOGLEADS_GET_CAMPAIGN_BY_NAME
Queries Google Ads via SQL to retrieve a campaign by its exact name. Requires an active Google Ads connection with valid customer_id and appropriate OAuth scopes.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name of the campaign to search on GoogleAds. Matched using exact SQL equality; paused or inactive campaigns may return no results — an empty result means no matching active campaign was found. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error message if execution failed. |
successful | boolean | Yes | Whether the action executed successfully. |
Get customer lists
Section titled “Get customer lists”GOOGLEADS_GET_CUSTOMER_LISTS
GetCustomerLists Tool lists all customer lists (audience/remarketing lists) in Google Ads. These are user segments for targeting, not Google Ads accounts — list IDs are distinct from account IDs. When multiple lists share similar names, review all returned results before selecting one for downstream operations.
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error message if execution failed. |
successful | boolean | Yes | Whether the action executed successfully. |
List Accessible Customers
Section titled “List Accessible Customers”GOOGLEADS_LIST_ACCESSIBLE_CUSTOMERS
ListAccessibleCustomers retrieves all Google Ads customer accounts accessible to the authenticated user. Returns resource names of customers (e.g., customers/1234567890) that can be accessed with the current OAuth credentials. Use this action to discover which customer IDs are available before making other API calls, or to populate a dropdown of available accounts for the user to select from.
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error message if execution failed. |
successful | boolean | Yes | Whether the action executed successfully. |
Mutate Ad Groups
Section titled “Mutate Ad Groups”GOOGLEADS_MUTATE_AD_GROUPS
Create, update, or remove ad groups within Google Ads campaigns. Supports batch operations with multiple ad group changes in a single request. Use when you need to manage ad groups programmatically, such as creating new ad groups for campaigns, updating ad group settings or status, or removing ad groups that are no longer needed. This action is irreversible for remove operations — deleted ad groups cannot be recovered once removed.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
operations | array | Yes | List of ad group operations (create, update, or remove). At least one operation is required. |
validate_only | boolean | No | If true, validates the request without executing. Useful for testing before making actual changes. |
partial_failure | boolean | No | If true, valid operations succeed even if other operations fail. Defaults to false. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error message if execution failed. |
successful | boolean | Yes | Whether the action executed successfully. |
Mutate Campaigns
Section titled “Mutate Campaigns”GOOGLEADS_MUTATE_CAMPAIGNS
Create, update, or remove Google Ads campaigns in batch. Supports multiple operations (create, update, remove) in a single request. Use when managing campaign lifecycle, applying bulk changes, or automating campaign management workflows. This action is irreversible for remove operations — deleted campaigns cannot be recovered. Plan accordingly and consider using validate_only=true to test changes before applying them.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
operations | array | Yes | List of campaign operations to perform. Each operation can be create, update, or remove. At least one operation is required. |
validate_only | boolean | No | If true, validates the request without executing. Useful for testing before making actual changes. |
partial_failure | boolean | No | If true, valid operations succeed even if others fail. Partial failures will be reported in the response. |
response_content_type | string | No | Whether to return full resource or just resource name. Options: 'RESOURCE_NAME_ONLY' or 'MUTABLE_RESOURCE'. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error message if execution failed. |
successful | boolean | Yes | Whether the action executed successfully. |
Search Stream GAQL
Section titled “Search Stream GAQL”GOOGLEADS_SEARCH_STREAM_GAQL
Execute a Google Ads Query Language (GAQL) query and stream all results in a single response. This method is more efficient than paginated search for bulk data retrieval of campaigns, ad groups, and performance metrics (clicks, impressions, cost). Use this action when you need the entire result set without pagination. Results are returned as a single response containing all matching rows.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
query | string | Yes | The Google Ads Query Language (GAQL) query string. Must follow SELECT … FROM … WHERE … format. Example: SELECT campaign.name, campaign.id, metrics.impressions FROM campaign WHERE campaign.status = 'ENABLED'. |
summary_row_setting | string | No | Whether to include a summary row with aggregated metrics. Use 'UNSPECIFIED' for default, 'DONOT_POST' to skip summary, or 'GENERATE' to include it. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution. |
error | string | No | Error message if execution failed. |
successful | boolean | Yes | Whether the action executed successfully. |