I'm doing azure function which should regularly get ad reports from Google Ads API and save it to CSV. Copying code from Google documentation left me with this

public static void Run([TimerTrigger("0 22 12 * * *")] TimerInfo myTimer, ILogger log)     {         log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");         RunRequest(new GoogleAdsClient(new GoogleAdsConfig() {              DeveloperToken = "/*token*/",             OAuth2Mode = OAuth2Flow.SERVICE_ACCOUNT,             OAuth2PrnEmail = "/*service account email*/",             OAuth2SecretsJsonPath = "/*service account json*/"         }), "/*client id*/", log);     } public static void RunRequest(GoogleAdsClient client, string customerId, ILogger log)     {         // Get the GoogleAdsService.         GoogleAdsServiceClient googleAdsService = client.GetService(             Services.V5.GoogleAdsService);         // Create the query.         string query = @"/*request*/";         try         {             // Issue a search request.             googleAdsService.SearchStream(customerId, query,                 delegate (SearchGoogleAdsStreamResponse resp)                 {                     using var writer = new StreamWriter($"reports\\report{DateTime.Now}.csv");                     using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);                     csv.WriteRecords(Report.BuildReports(resp.Results));                 }             );         }         catch (GoogleAdsException e)         {             log.LogInformation("Failure:");             log.LogInformation($"Message: {e.Message}");             log.LogInformation($"Failure: {e.Failure}");             log.LogInformation($"Request ID: {e.RequestId}");             throw;         }     } 

Executing this code gives me an exception with this content:

"Status(StatusCode="Unauthenticated", Detail="Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project."

As I understand I don't need OAuth2 access token when using service account. How to fix this problem, what am I missing?

I want to build a web application. Clients can use the web application to read their google Adwrods accounts information( campagins or budgets ).

First, I use oath2 get client's refresh_token and access_token. Using the refresh_token, I can get all adwords id under the client by (https://github.com/googleads/google-ads-ruby)

client = Google::Ads::GoogleAds::GoogleAdsClient.new do |config|   config.client_id = "client_id"   config.client_secret = "client_secret"   config.refresh_token = "refresh_token"   config.login_customer_id = "XXX-XXX-XXXX"   config.developer_token = "XXXXXXXXXXXXXXXX" end accessible_customers = client.service.customer.list_accessible_customers().resource_names 

When I want to get client Adword account information,

resource_name = client.path.customer("XXXXXXXX") customer = client.service.customer.get_customer(resource_name: resource_name) 

I get "GRPC::Unauthenticated: 16:Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential", but the config file can't let me set access_token.

So, where can i set client's access_token, or which step i missed?

Before trying with the production data, I'm going to try using the Google Ads API with a test account. I have already set up that and I have the Customer ID, manager account customer ID, and the developer token. The next step in the docs states I need to set up the .yaml file which has the follwing fields:

developer_token: INSERT_DEVELOPER_TOKEN_HERE client_id: INSERT_OAUTH2_CLIENT_ID_HERE client_secret: INSERT_OAUTH2_CLIENT_SECRET_HERE refresh_token: INSERT_REFRESH_TOKEN_HERE login_customer_id: INSERT_LOGIN_CUSTOMER_ID_HERE 

My question here is what is the client_id and client_secret? I know that the refresh_token needs to set up like this in their docs: https://developers.google.com/google-ads/api/docs/client-libs/python/oauth-installed

Is the client_id and secret_id the OAuth 2.0 Client IDs setup in the my personal account in the developer console?

*I am using the Google Ads API and NOT the AdWords API

I am able to access the play console buckets through gsutil scripts. Now I want to access the adwords (uses same gmail account) but there is no clear documentation for that. There are hints that it may be paid as well. Has anyone done that? What are the steps and is it free or paid.

After importing our Firebase app events in Google Ads as conversions, their status stays at "no recent conversions". The events are recordeding fine in Firebase.

  • Both our native iOS and Android app are implemented, but none show conversions in Google Ads
  • The package name of one of our apps was updated
  • We unlinked Google Ads from Firebase and linked it again, but that didn't work either
  • We are talking about custom events (an in-app action) and native events (like first open)

It seems like we can't really delete conversions. We can delete and re-enable, but can't "start over".

How can we make recording our events as conversions work?