Hello everyone, I'm trying to set up a Google Ads ...
# troubleshooting
v
Hello everyone, I'm trying to set up a Google Ads extractor on Matatika variant. Once everything is configured, Oauth Client ID, Secret, Refresh Token, Developer Token, Start Date and End Date, I run a "Invoke" command, logs tells me:
Copy code
"OAuth authorization attempt was successful."
and then I get this error:
Copy code
singer_sdk.exceptions.FatalAPIError: 403 Client Error: Forbidden for path: /v12/customers:listAccessibleCustomers
I've seen someone struggling with the customer-id earlier on slack but It seems I can't fix it by myself. I think I configured the OAuth Client correctly on GCP so, I don't really understand where I could be wrong on this one. Any Idea ? Many thanks !
a
which variant are you using? Can you share your meltano.yml with secrets redacted?
You need an Ads account ID too
The mistake I made was to use my manager account id as the account id, whereas it needs to be the child account that has the ads running
v
Hello @Andy Carter Thanks for your answer. I'm using Matatika variant. I can share my meltano.yml yes !
Well, I also tried the account ID, does not work : (
here @Andy Carter
Copy code
- name: tap-googleads
    variant: matatika
    pip_url: git+<https://github.com/Matatika/tap-googleads.git>
    config:
      customer_id: '3988079423'
      start_date: '2023-08-20T00:00:00Z'
      end_date: '2023-08-30T00:00:00Z'
a
I found specifying this in my .yml helped:
Copy code
config:
      oauth_credentials.client_id: ${TAP_GOOGLEADS_CLIENT_ID}
      oauth_credentials.client_secret: ${TAP_GOOGLEADS_CLIENT_SECRET}
      oauth_credentials.refresh_token: ${TAP_GOOGLEADS_REFRESH_TOKEN}
      customer_id: ${TAP_GOOGLEADS_CUSTOMER_ID}
      developer_token: ${TAP_GOOGLEADS_DEVELOPER_TOKEN}
      start_date: '2023-08-01T00:00:00Z'
Also, check your developer token is enabled for basic access, and not just test access?
v
everything you mentioned is filled in .env on my part
a
Yes, but I found I needed to state the oauth keys and env references explicitly in .yml too
r
Yes, because Meltano will otherwise try and resolve a value from
TAP_GOOGLEADS_OAUTH_CREDENTIALS_CLIENT_ID
I'm pretty sure. So you probably need the explicit mapping in this case.
v
Alright, I will try, thank you.
a
@Reuben (Matatika) I didn't try the full
TAP_GOOGLEADS_OAUTH_CREDENTIALS_CLIENT_ID
but you're right that would have been the normal way to do it. I added a couple issues into the repo mostly just troubleshooting things with postgres for future folks reference. I have the pipeline working now.
v
I modified my .yml, it didnt change anything 😞
r
@Andy Carter Thanks! Will pass on to the team and hopefully get around to addressing at some point. 🙂
@valentin_vidal FWIW we do test this tap every day, and I can see it passed this morning with no issues. Maybe a typo somewhere or something not quite right in GCP? Hard to say unfortunately...
a
A couple steps that helped me: • running a
meltano compile
and checking the output matches expected in the config • checking the APIs page in Google cloud and seeing if any API calls are being received to the Ads API
v
Alright, thank you very much for your help ! I'll take a look at the issue with my team today
r
Any updates on this issue? I’m running into the same thing currently
Actually, I think I’ve narrowed it down. The documentation says that a Basic Access Developer Token allows “requests against both test accounts and production accounts. Production accounts are any accounts that serve real, live Google ads—test accounts don’t serve ads.” So maybe it’s because the customer ID I’m using belongs to a production account, but my dev token is only test access. Any tips for applying for Basic Access? In my experience it’s usually really tedious to send in whatever information they want on my “app” just so I can pull ads performance data into our warehosue
a
I just downloaded the example docs and made some modifications. Make sure you include a diagram. Doesn't look like there's a way around it. It's a shame there is only a single ads permission that allows full access, a analytics/reporting permission would make much more sense. if you don't get a reply in a reasonable timescale then you can request a followup here: https://groups.google.com/g/adwords-api
r
Thanks for this! I’m still waiting on a reply so I’ll try resubmitting with a diagram
I am curious, what kind of diagram did you include? Just a simple flow of the data?
a
In the end I googled for a screenshot of a google data studio dashboard using the ads data, and I supplied that.
😂 1