CONNECT APP
Build with Google Ads
Data Analytics
- OAuth
MCP
Give your agent Google Ads tools
Every Google Ads action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Google Ads account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "google_ads",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Add Contact to Customer List by Email:
const result = await mcp.callTool({
name: "google_ads-add-contact-to-list-by-email",
arguments: {
accountId: "Use Google Ads As",
customerClientId: "Managed Account",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "google_ads",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Add Contact to Customer List by Email:
result = await session.call_tool("google_ads-add-contact-to-list-by-email", {
"accountId": "Use Google Ads As",
"customerClientId": "Managed Account",
})API PROXY
Call the Google Ads API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Google Ads API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://www.googleapis.com/oauth2/v1/userinfo",
})
// Any allowed Google Ads endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://www.googleapis.com/oauth2/v1/userinfo
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vb2F1dGgyL3YxL3VzZXJpbmZv?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Google Ads actions from your backend
Connect a user's Google Ads account once, then run Add Contact to Customer List by Email on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "google_ads-add-contact-to-list-by-email",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
google_ads: { authProvisionId: "apn_xxxxxxx" },
accountId: "Use Google Ads As",
customerClientId: "Managed Account",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="google_ads-add-contact-to-list-by-email",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"google_ads": {"authProvisionId": "apn_xxxxxxx"},
"accountId": "Use Google Ads As",
"customerClientId": "Managed Account",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "google_ads-add-contact-to-list-by-email",
"configured_props": {
"google_ads": { "authProvisionId": "apn_xxxxxxx" },
"accountId": "Use Google Ads As",
"customerClientId": "Managed Account"
}
}'TOOLS
Google Ads actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Add Contact to Customer List by Email
actionAdds a contact to a specific customer list in Google Ads. Lists typically update in 6 to 12 hours after operation. See the documentationWritev0.1.11 -
Create Ad Group Report
actionCreates a report for the Ad Group resource. See the documentationRead-onlyv0.0.4 -
Create Ad Report
actionCreates a report for the Ad resource. See the documentationRead-onlyv0.0.4 -
Create Campaign Report
actionCreates a report for the Campaign resource. See the documentationRead-onlyv0.1.0 -
Create Customer List
actionCreate a new customer list in Google Ads. See the documentationWritev0.0.11 -
Create Customer Report
actionCreates a report for the Customer resource. See the documentationRead-onlyv0.0.4 -
Create or Remove Campaign Criteria
actionCreates or removes criteria for a campaign (e.g., keyword targeting, brand lists). See the documentationWritev0.0.2 -
Create or Remove Campaign Shared Set
actionAttaches or detaches a shared set from a campaign. See the documentationWritev0.0.2 -
Create or Remove Shared Criteria
actionCreates or removes criteria from a shared set (e.g., negative keywords). See the documentationWritev0.0.2 -
Create or Update Ad Group
actionCreates or updates an ad group. See the documentationWritev0.1.0 -
Create or Update Bidding Strategy
actionCreates, updates, or removes a portfolio bidding strategy. See the documentationWritev1.0.0 -
Create or Update Campaign
actionCreates or updates a campaign. See the documentationWritev1.0.0 -
Create or Update Campaign Budget
actionCreates, updates, or removes a campaign budget. See the documentationWritev0.0.2 -
Create or Update Shared Sets
actionCreates or updates shared sets (reusable lists of negative keywords or placements). See the documentationWritev0.0.2 -
Create Report
actionGenerates a report from your Google Ads data. See the documentationRead-onlyv0.3.0 -
Create Responsive Search Ad
actionCreates a Responsive Search Ad (RSA) in an ad group. RSA copy (headlines, descriptions) cannot be edited in-place after creation — to change ad copy, remove the existing ad and create a new one. URL fields (finalUrls,trackingUrlTemplate, etc.) can be updated in-place via the Create or Update Ad Group Ad action. See the documentationWritev0.0.3 -
Create, Update, or Remove Ad Group Ad
actionCreates, updates, or removes an ad group ad. See the documentationWritev0.0.2 -
Create, Update, or Remove Keywords
actionCreates, updates, or removes keyword criteria for an ad group. See the documentationWritev0.0.2 -
Generate Keyword Ideas
actionGenerate keyword ideas using the Google Ads API. See the documentationRead-onlyv0.1.0 -
Get Keyword Quality Scores
actionRetrieves current and historical quality score data (Quality Score, Ad Relevance, Landing Page Experience, Expected CTR) for keywords in a customer account. Current scores reflect the latest evaluation; historical scores are averaged over the selected date range. See the documentationRead-onlyv0.0.3 -
List Account ID Options
actionRetrieves available options for the Account ID field.Read-onlyv0.0.4 -
List Ad Group Ads
actionList ads within ad groups for a customer account. See the documentationRead-onlyv0.0.2 -
List Ad Group Criteria
actionList criteria (keywords, placements, audiences, etc.) for ad groups in a customer account. See the documentationRead-onlyv0.0.2 -
List Ad Groups
actionList ad groups for a customer account. See the documentationRead-onlyv0.0.2 -
List Bidding Strategies
actionList portfolio bidding strategies for a customer account. See the documentationRead-onlyv0.0.2 -
List Campaign Budgets
actionList campaign budgets for a customer account. See the documentationRead-onlyv0.0.2 -
List Campaign Criteria
actionList criteria (keywords, placements, etc.) for campaigns in a customer account. See the documentationRead-onlyv0.0.2 -
List Campaign Shared Sets
actionList shared sets attached to campaigns for a customer account. See the documentationRead-onlyv0.0.2 -
List Campaigns
actionList campaigns for a customer account. See the documentationRead-onlyv1.0.0 -
List Customer Clients
actionList all customer clients for a given account. See the documentationRead-onlyv0.0.3 -
List Keywords
actionList keyword criteria for a customer account. See the documentationRead-onlyv0.0.2 -
List Shared Criteria
actionList criteria within shared sets for a customer account. See the documentationRead-onlyv0.0.2 -
List Shared Sets
actionList shared sets for a customer account. See the documentationRead-onlyv0.0.2 -
Send Offline Conversion
actionCreate a Google Ads conversion action. To record conversions against an upload-type action, use Upload Click Conversion or Upload Call Conversion. See the documentationWritev0.0.12 -
Update Campaign AI Max Settings
actionEnables or configures AI Max for Search settings on a campaign. Only supported on Search campaigns. Toggling AI Max while simultaneously editing brand or text customization settings on the same campaign may fail — update them separately. Ad group-level search term matching is controlled via the Create or Update Ad Group action. See the documentationWritev0.0.3 -
Upload Call Conversion
actionUploads an offline conversion attributed to a phone call. See the documentationWritev0.0.1 -
Upload Click Conversion
actionUploads an offline conversion attributed to an ad click. See the documentationWritev0.0.1
EVENTS
Google Ads triggers
Event sources your backend can deploy for users and receive through a webhook.
MULTI-APP
Use Google Ads with other popular apps
Most products don't stop at one integration. Pair Google Ads with the other apps your users rely on, and ship use cases that span both.
- App slug
- google_ads
- Authentication
- OAuth
- Categories
- Data Analytics
- Actions
- 37
- Triggers
- 2
- API proxy
- Available
OAuth scopes
These are the scopes Pipedream's managed Google Ads OAuth client requests when one of your users connects an account. Supply your own OAuth client to request a different set.
- profile
- https://www.googleapis.com/auth/adwords