Good morning,

Currently using the python client library (
https://github.com/googleads/google-ads-python) and running the 
get_keyword_stats.py (
https://github.com/googleads/google-ads-python/blob/master/examples/reporting/get_keyword_stats.py).
 
I've been able to successfully pull data and send it to a remote database 
when using this query provided in the Github repo:

query = ('SELECT campaign.id, campaign.name, ad_group.id, ad_group.name, '
             'ad_group_criterion.criterion_id, '
             'ad_group_criterion.keyword.text, '
             'ad_group_criterion.keyword.match_type, '
             'metrics.impressions, metrics.clicks, metrics.cost_micros '
             'FROM keyword_view WHERE segments.date DURING LAST_30_DAYS '
             'AND campaign.advertising_channel_type = \'SEARCH\' '
             'AND ad_group.status = \'ENABLED\' '
             'AND ad_group_criterion.status IN (\'ENABLED\', \'PAUSED\') '
             'ORDER BY metrics.impressions DESC '
            )
 

The data is fine and looks like it's displaying correctly but when I add 
more data to request in this query:

query = ('SELECT campaign.id, campaign.name, ad_group.id, ad_group.name, '
             'ad_group_criterion.criterion_id, '
             'ad_group_criterion.keyword.text, '
             'ad_group_criterion.keyword.match_type, '
             
'metrics.impressions, metrics.clicks, metrics.cost_micros, 
metrics.absolute_top_impression_percentage, metrics.average_cost, 
metrics.average_cpc, metrics.average_cpm, metrics.engagement_rate'
 
             'FROM keyword_view WHERE segments.date DURING LAST_30_DAYS '
             'AND campaign.advertising_channel_type = \'SEARCH\' '
             'AND ad_group.status = \'ENABLED\' '
             'AND ad_group_criterion.status IN (\'ENABLED\', \'PAUSED\') '
             'ORDER BY metrics.impressions DESC '
            )

I get an error provided here:

Traceback (most recent call last):
  File "get_keyword_stats.py", line 57, in main
    for row in response:
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\api_core\page_iterator.py",
 
line 212, in _items_iter
    for page in self._page_iter(increment=False):
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\api_core\page_iterator.py",
 
line 243, in _page_iter
    page = self._next_page()
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\api_core\page_iterator.py",
 
line 534, in _next_page
    response = self._method(self._request)
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\api_core\gapic_v1\method.py",
 
line 143, in __call__
    return wrapped_func(*args, **kwargs)
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\api_core\retry.py",
 
line 281, in retry_wrapped_func
    return retry_target(
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\api_core\retry.py",
 
line 184, in retry_target
    return target()
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\api_core\timeout.py",
 
line 214, in func_with_timeout
    return func(*args, **kwargs)
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\api_core\grpc_helpers.py",
 
line 57, in error_remapped_callable
    return callable_(*args, **kwargs)
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 216, in __call__
    response, ignored_call = self._with_call(
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 257, in _with_call
    return call.result(), call
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 126, in result
    raise self._exception
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 242, in continuation
    response, call = self._thunk(new_method).with_call(
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 266, in with_call
    return self._with_call(
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 257, in _with_call
    return call.result(), call
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 126, in result
    raise self._exception
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 242, in continuation
    response, call = self._thunk(new_method).with_call(
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 266, in with_call
    return self._with_call(
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\grpc\_interceptor.py",
 
line 255, in _with_call
    call = self._interceptor.intercept_unary_unary(
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\ads\google_ads\interceptors\exception_interceptor.py",
 
line 139, in intercept_unary_unary
    self._handle_grpc_failure(response)
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\ads\google_ads\interceptors\exception_interceptor.py",
 
line 105, in _handle_grpc_failure
    google_ads_failure = self._get_google_ads_failure(trailing_metadata)
  File "C:\Users\Drew 
Lauck\AppData\Local\Programs\Python\Python38\lib\site-packages\google\ads\google_ads\interceptors\exception_interceptor.py",
 
line 68, in _get_google_ads_failure
    ga_failure = error_protos.errors_pb2.GoogleAdsFailure()
AttributeError: module 'google.ads.google_ads.v2.proto.errors' has no 
attribute 'errors_pb2'


The script is very inconsistent because it's run before with no errors and 
data was able to be pulled and pushed into MySQL. Is there a limit to the 
amount of data I can request in a query or is there a limit for requests? I 
went through the keyword_view report (
https://developers.google.com/google-ads/api/fields/v2/keyword_view) and 
verified all the data I'm requesting can be pulled from this report. If 
you've run into this problem, know about a workaround or know anything 
about these specific errors, please let me know!

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/70a8e92b-b764-44e3-930f-122d132ad639%40googlegroups.com.

Reply via email to