Hello Scott, I see that you have opened one more thread for this concern. To avoid duplication lets continue our discussion on this thread only. Please find my response below:
The TargetingIdeaError.INVALID_ <http://targetingideaerror.invalid_/> SEARCH_PARAMETERS <https://developers.google.com/adwords/api/docs/reference/v201806/TargetingIdeaService.TargetingIdeaError#reason> error occurs when a SearchParameter <https://developers.google.com/adwords/api/docs/reference/v201806/TargetingIdeaService.SearchParameter.html> does not match the IdeaType <https://developers.google.com/adwords/api/docs/reference/v201806/TargetingIdeaService.IdeaType.html> specified in the TargetingIdeaSelector <https://developers.google.com/adwords/api/docs/reference/v201806/TargetingIdeaService.TargetingIdeaSelector.html> or is otherwise invalid. Looks like you are trying to run get_keyword_ideas.py <https://github.com/googleads/googleads-python-lib/blob/cd707dc897b93cf1bbb19355f7424e7834e7fb55/examples/adwords/v201802/optimization/get_keyword_ideas.py>. I ran the same example commenting out the optional lines and able to fetch the results for keyword ideas. Even I ran your code and it works fine. If the problem persists could you please share the SOAP logs(request and response) without redacting any information. Please follow the instruction shown in this README.md <https://github.com/googleads/googleads-python-lib/blob/master/README.md#how-do-i-log-soap-interactions> file to enable logging. Regards, Sai Teja, AdWords API Team. On Friday, September 21, 2018 at 5:34:17 AM UTC-4, sken...@franklinsports.com wrote: > > Running python code example but running into an error that doesn't make > sense: > > suds.WebFault: Server raised fault: > '[TargetingIdeaError.INVALID_SEARCH_PARAMETERS @ > selector.searchParameters.searchParameters[0]; > trigger:'RelatedToQuerySearchParameter']' > > > I'm using the code exactly as written off the github repository. No > problems with oauth or anything else - already have developer code, etc. > Code: > > > from googleads import adwords > > > > AD_GROUP_ID = None > PAGE_SIZE = 100 > > def main(client, ad_group_id=None): > # Initialize appropriate service. > targeting_idea_service = client.GetService( > 'TargetingIdeaService', version='v201802') > > # Construct selector object and retrieve related keywords. > selector = { > 'ideaType': 'KEYWORD', > 'requestType': 'IDEAS' > } > > selector['requestedAttributeTypes'] = [ > 'KEYWORD_TEXT', 'SEARCH_VOLUME', 'CATEGORY_PRODUCTS_AND_SERVICES'] > > offset = 0 > selector['paging'] = { > 'startIndex': str(offset), > 'numberResults': str(PAGE_SIZE) > } > > selector['searchParameters'] = [{ > 'xsi_type': 'RelatedToQuerySearchParameter', > 'queries': ['baseball'] > }] > > # # Language setting (optional). > # selector['searchParameters'].append({ > # # The ID can be found in the documentation: > # # > https://developers.google.com/adwords/api/docs/appendix/languagecodes > # 'xsi_type': 'LanguageSearchParameter', > # 'languages': [{'id': '1000'}] > # }) > > # # Network search parameter (optional) > # selector['searchParameters'].append({ > # 'xsi_type': 'NetworkSearchParameter', > # 'networkSetting': { > # 'targetGoogleSearch': True, > # 'targetSearchNetwork': False, > # 'targetContentNetwork': False, > # 'targetPartnerSearchNetwork': False > # } > # }) > > # # Use an existing ad group to generate ideas (optional) > # if ad_group_id is not None: > # selector['searchParameters'].append({ > # 'xsi_type': 'SeedAdGroupIdSearchParameter', > # 'adGroupId': ad_group_id > # }) > > more_pages = True > while more_pages: > page = targeting_idea_service.get(selector) > > # Display results. > if 'entries' in page: > for result in page['entries']: > attributes = {} > for attribute in result['data']: > attribute_value = attribute['value'] > if 'value' in attribute_value: > attributes[attribute['key']] = attribute_value['value'] > else: > attributes[attribute['key']] = [] > print ('Keyword with "%s" text and average monthly search volume ' > '"%s" was found with Products and Services categories: %s.' > % (attributes['KEYWORD_TEXT'], > attributes['SEARCH_VOLUME'], > attributes['CATEGORY_PRODUCTS_AND_SERVICES'])) > print > else: > print 'No related keywords were found.' > offset += PAGE_SIZE > selector['paging']['startIndex'] = str(offset) > more_pages = offset < int(page['totalNumEntries']) > > > if __name__ == '__main__': > # Initialize client object. > adwords_client = adwords.AdWordsClient.LoadFromStorage() > > main(adwords_client) > > > > > -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ 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 adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com 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 "AdWords API and Google Ads API Forum" group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. Visit this group at https://groups.google.com/group/adwords-api. To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/de79a482-b8f0-4bed-8073-f0c9e2803bfd%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.