Hi, I'm trying to integrate the Google Ads API with a service account to automate the retrieval of Keyword Planner metrics. I've set everything up according to the official documentation, but I'm getting 404 errors on all API endpoints, even though the API appears as "enabled" in the Google Cloud Console.
I'm including all the details (Cursor prepared them). === Issue Main Error: 404 Not Found on all Google Ads API endpoints Symptom: The API appears as "enabled" in the Google Cloud Console, but it's not available in Discovery, and all endpoints fail. Impact: I can't access any Google Ads API endpoints. === Project Configuration Project ID: keyword-explorer-****** Google Cloud Console: Google Ads API enabled for more than 24 hours. Status: "Enabled" in APIs and Services. Billing: Enabled and linked (Account: 010042-21EC96-******) === Credentials and Authentication Service Account: kw-explorer-srv@keyword-explorer-******.iam.gserviceaccount.com Authentication Type: Service Account (not OAuth2). Scope Used: https://www.googleapis.com/auth/adwords Access Token: Generated successfully ✅ === Developer Token Token: 35583SrClUWFnXOo****** Length: 22 characters Status: Active and approved in the Google Ads API Center Type: Basic (pending upgrade to Standard) === Google Ads Accounts Login Customer ID (MCC): 1559****** Customer ID (Specific Customer): 5737****** Service account authorized on both accounts with Administrator permissions ✅ === Specific Errors All of these endpoints return 404 Not Found: https://googleads.googleapis.com/v14/customers/5737******/googleAds:searchStream https://googleads.googleapis.com/v15/customers/5737******/googleAds:searchStream https://googleads.googleapis.com/v14/customers/5737******/googleAds:search https://googleads.googleapis.com/v14/customers/5737******/customers:listAccessibleCustomers === Headers used: Authorization: Bearer [token generated successfully] developer-token: 35583SrClUWFnXOo****** login-customer-id: 1559****** Content-Type: application/json === Diagnostics Performed ✅ Access token generated successfully ✅ User API is working (https://www.googleapis.com/oauth2/v2/userinfo) ✅ Discovery API is working ❌ Google Ads API v14 NOT found in Discovery ❌ All Google Ads endpoints return 404 ❌ 403 error in Google Cloud Management APIs (normal for Service Accounts) === Checks Completed ✅ API enabled in Google Cloud Console ✅ Service account in IAM with ServiceAccountTokenCreator ✅ Service account authorized in Google Ads (MCC and client) ✅ Developer Token active and approved ✅ Billing enabled and linked === Sample Code // Configuration $developerToken = '35583SrClUWFnXOo******'; $loginCustomerId = '1559******'; $customerId = '5737******'; // Headers $headers = [ 'Authorization' => "Bearer $accessToken", 'developer-token' => $developerToken, 'login-customer-id' => $loginCustomerId, 'Content-Type' => 'application/json' ]; // Failing Endpoint $url = "https://googleads.googleapis.com/v14/customers/$customerId/googleAds:searchStream"; $data = ['query' => 'SELECT customer.id FROM customer LIMIT 1']; === Specific Questions Why does the API appear as "enabled" but is not available in Discovery? Google Ads API v14 does NOT appear in the list of available APIs All endpoints return 404 Not Found Is the 22-character Developer Token normal? The documentation mentions 24 characters, but mine is 22. Could this be causing the issue? Are there any additional steps required for Service Accounts? Do I need any special permissions or additional configuration? Is this a known issue with Google Ads API v14? Should I try v15 or v16? Are there any specific requirements for the authentication scope? Is the scope https://www.googleapis.com/auth/adwords sufficient? === Additional Technical Information Language: PHP Library: GuzzleHttp Time since enablement: More than 24 hours Goal: Automate Keyword Planner to obtain keyword metrics === Sensitive Data (Obfuscated until requested) I've put asterisks on all IDs. I can provide them. === Conclusion I have everything configured correctly according to the documentation, but the API is not responding. Is there a step I'm missing, or is this a known issue with setting up Service Accounts and the Google Ads API? -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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/f9a5e2e3-0128-4ea4-b07a-85f24dae834fn%40googlegroups.com.
