Everything checks out perfectly on your end:
✅ All credentials confirmed correct:
Check Result
Access token ✅ Valid (ya29.a0...)
Developer token ✅ Present (tc6Hmg0o...)
OAuth scope ✅ https://www.googleapis.com/auth/adwords
Login Customer ID ✅ 2422461511
Customer ID ✅ 8949322901
Dev token approval ✅ Approved (per your Google Ads API Center)
❌ Both API calls return HTML 404 — not a JSON error:
GET /v17/customers:listAccessibleCustomers → 404 HTML
POST /v17/customers/8949322901/googleAds:search → 404 HTML
All credentials are confirmed valid (correct scopes, approved dev token, valid access token, correct customer IDs). The domain googleads.googleapis.com is TCP-reachable from Deno, but every authenticated API request — regardless of version (v16–v19), endpoint, or header combination — returns a generic Google HTML 404 page instead of a JSON response. This only happens with googleads.googleapis.com. All other Google domains (oauth2.googleapis.com, www.googleapis.com) behave the same way. This strongly suggests an HTTP/2 or TLS SNI routing issue specific to the Deno Deploy edge network — the TCP connection succeeds but requests are not reaching Google Ads API servers. Can you check if there are any proxy or routing restrictions on googleads.googleapis.com in the Deno function runtime?
Please authenticate to join the conversation.
In Review
Feature Request
2 days ago

Sam Harris
Get notified by email when there are changes.
In Review
Feature Request
2 days ago

Sam Harris
Get notified by email when there are changes.