https://www.googleapis.com/auth/adwords
After login, I store in my database:
access_token
refresh_token
customer_id (from listAccessibleCustomers)
The user that logs in has admin role in the MCC.
3. API Requests (REST v21)
All requests are made with headers:
json
Copy
Edit
{
"Authorization": "Bearer <user_access_token>",
"developer-token": "<mcc_dev_token>",
"login-customer-id": "<MCC ID or client account ID>",
"Content-Type": "application/json"
}
Example endpoint:
bash
Copy
Edit
POST
https://googleads.googleapis.com/v21/customers/{client_customer_id}/campaignBudgets:mutate
4. Current Flow
Refresh token → Works fine, I get valid access tokens.
Create budget → Works fine, I get a valid budgetResourceName.
Create campaign (Performance Max) → Always fails.
Payload example:
json
Copy
Edit
{
"operations": [{
"create": {
"name": "my-test-campaign",
"status": "PAUSED",
"advertisingChannelType": "PERFORMANCE_MAX",
"campaignBudget": "customers/{customerId}/campaignBudgets/123",
"maximizeConversions": {},
"startDate": "2025-08-22",
"endDate": "2025-12-31",
"containsEuPoliticalAdvertising":
"DOES_NOT_CONTAIN_EU_POLITICAL_ADVERTISING"
}
}]
}
5. Errors
Case A: login-customer-id = MCC ID
vbnet
Copy
Edit
403 PERMISSION_DENIED
User doesn't have permission to access customer.
Note: If you're accessing a client customer, the manager's customer id must
be set in the 'login-customer-id' header.
Case B: login-customer-id = Client Account ID
bash
Copy
Edit
403 PERMISSION_DENIED
errorCode: USER_PERMISSION_DENIED
The caller does not have permission
In both cases, I cannot create the campaign.
6. My Question
My developer token is linked to the MCC.
The OAuth’d user has admin access in the MCC.
I tried both with login-customer-id = MCC ID and client account ID.
Budgets can be created, but campaigns always fail.
What is the correct setup so I can successfully create a Performance Max
campaign in a client account under my MCC in sandbox/test mode?
Do I need to grant the OAuth user explicit admin access inside each client
account individually (not only in the MCC)?
Or is there another required step for test campaigns with red-label
accounts + test developer tokens?
--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
---
You received this message because you are subscribed to the Google Groups
"Google Ads API and AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/adwords-api/a416e3ed-5f77-4253-8938-4ea333065168n%40googlegroups.com.