I am trying to access the Google Adwords API, as described in their help-file via following sample code:

from googleads import adwords client = adwords.AdWordsClient.LoadFromStorage() targeting_idea_service = client.GetService('TargetingIdeaService', version='v201809') selector = {'ideaType': 'KEYWORD',            'requestType': 'IDEAS',            'requestedAttributeTypes': ['KEYWORD_TEXT',                                        'SEARCH_VOLUME',                                        'CATEGORY_PRODUCTS_AND_SERVICES'],            'paging': {'startIndex': '0',                       'numberResults': '100'                       },            'searchParameters': [{'xsi_type': 'RelatedToQuerySearchParameter',                                  'queries': ['cats']}]            } page = targeting_idea_service.get(selector) print(page) 

However, when I try to call the API, following error occures:

zeep.exceptions.Fault: [TargetingIdeaError.INVALID_SEARCH_PARAMETERS @ selector.searchParameters.searchParameters[0]; trigger:'RelatedToQuerySearchParameter'] 

Any idea what could cause this error? In my googleads.yaml file (which is called properly, following parameters are set:

# AdWordsClient configurations adwords:   developer_token:    client_id:   client_secret:   refresh_token: 

I am trying to integrate Oauth2 into my Flask application, and am having some issues with keeping the flow persistent despite a redirect.

def account(): form = UpdateAccountForm() authorization_url = '' auth_code = request.args.get('code') if request.method == 'POST':     if request.form['submit_button'] == 'Test':         flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file('client_secret.json',      scopes=['https://www.googleapis.com/auth'])         flow.redirect_uri = 'http://127.0.0.1:5000/account'         authorization_url, state = flow.authorization_url(access_type='offline',                  prompt='consent', include_granted_scopes='true')         print('Please go to this URL: {}'.format(authorization_url)) if auth_code != None:     flow.fetch_token(code=auth_code)     credentials = flow.credentials     print(credentials) 

Upon button click, the Oauth flow is initiated and the user is presented with a link to a Google page in which they grant my application access to some of their features. Then, the user is redirected back to the same page but with an authorization code attached to the request which is fed back into the flow and allows me to gain access the users credentials.

This part:

if auth_code != None:     flow.fetch_token(code=auth_code)     credentials = flow.credentials     print(credentials) 

When the page reloads I get:

UnboundLocalError: local variable 'flow' referenced before assignment

I assume this happens because the flow is no longer initialized when the page loads, and obviously I can't initialize a new flow the next time the page loads because the object would be different.

I am not sure how to approach this problem within Flask, what would be the best way to keep the flow consistent?

EDIT: This question is different from the suggested duplicate because this uses Oauthlibs Flow module as opposed to the previously suggested. The closest answer is here: https://developers.google.com/identity/protocols/OAuth2WebServer but still inadequate.

I'm creating a remarketing audience list in Google analytics and after setting audience definition when I add audience destinations, I only see 0 as the audience size in google ads. In google ads, it keeps showing me the audience list is too small. But even if I try to retarget a subdomain, it still shows up too small. It happened since last October. Did Google change any configuration or algorithm? Thanks all!

My company is facing an issue where we have to change our site's URLs at scale - close to 200k. These pages will be redirected to a new set of pages with a different domain name (owned by the same organisation).

The aforementioned pages are -

  • Transactional
  • Rank on organic search keywords and SEO activity is focussed on them
  • Used in our SEM campaigns as Landing Pages

The fundamental question is whether changing around 200 URLs in our Google Adwords account would affect the quality score at all? If yes, how much of a hit can we expect?