Internal (500) Error when requesting change data

2024-02-27 Thread Scott Vaillancourt
I'm trying to pull change data via the API and have been routinely 
encountering '500 Internal errors' for the past three weeks. This exact 
query has been running without issue for over 2 years. I've included the 
debug output for the request and response below. I realize there have been 
other similar issues logged and fixes were deployed, but they don't seem to 
have fully addressed the problem. Thanks.

Scott

[2024-02-27 08:59:32,396 - INFO] Request
---
Method: /google.ads.googleads.v15.services.GoogleAdsService/Search
Host: googleads.googleapis.com
Headers: {
  "developer-token": "REDACTED",
  "login-customer-id": "REDACTED",
  "x-goog-api-client": "gl-python/3.9.2 grpc/1.62.0 gax/2.17.1 gccl/23.0.0 
pb/4.25.3",
  "x-goog-request-params": "customer_id= REDACTED"
}
Request: customer_id: "REDACTED"
query: "\nSELECT\n  change_event.change_date_time,\n 
 change_event.change_resource_name,\n 
 change_event.change_resource_type,\n 
 change_event.resource_change_operation,\n  change_event.user_email,\n 
 change_event.changed_fields,\n  campaign.name\nFROM 
change_event\nWHERE\n  change_event.change_date_time BETWEEN 
\"2024-01-30\" AND \"2024-02-26\"\nLIMIT 2000"


Response
---
Headers: {
  "google.ads.googleads.v15.errors.googleadsfailure-bin": 
"\u0012\u0016fn2plGzwwkQEAGLMv5tx6g",
  "grpc-status-details-bin": "\b\r\u0012\u001bInternal error 
encountered.\u001a`\nDtype.googleapis.com/google.ads.googleads.v15.errors.GoogleAdsFailure\u0012\u0018\u0012\u0016fn2plGzwwkQEAGLMv5tx6g",
  "request-id": "fn2plGzwwkQEAGLMv5tx6g"
}
Fault: {}

[2024-02-27 08:59:32,397 - WARNING] Request made: ClientCustomerId: 
REDACTED, Host: googleads.googleapis.com, Method: 
/google.ads.googleads.v15.services.GoogleAdsService/Search, RequestId: 
fn2plGzwwkQEAGLMv5tx6g, IsFault: True, FaultMessage: Internal error 
encountered.
---
_InactiveRpcError Traceback (most recent call last)
File 
~/.local/lib/python3.9/site-packages/google/api_core/grpc_helpers.py:76, in 
_wrap_unary_errors..error_remapped_callable(*args, **kwargs)
 75 try:
---> 76 return callable_(*args, **kwargs)
 77 except grpc.RpcError as exc:

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:277, in 
_UnaryUnaryMultiCallable.__call__(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
268 def __call__(
269 self,
270 request: Any,
   (...)
275 compression: Optional[grpc.Compression] = None,
276 ) -> Any:
--> 277 response, ignored_call = self._with_call(
278 request,
279 timeout=timeout,
280 metadata=metadata,
281 credentials=credentials,
282 wait_for_ready=wait_for_ready,
283 compression=compression,
284 )
285 return response

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:332, in 
_UnaryUnaryMultiCallable._with_call(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
329 call = self._interceptor.intercept_unary_unary(
330 continuation, client_call_details, request
331 )
--> 332 return call.result(), call

File ~/.local/lib/python3.9/site-packages/grpc/_channel.py:439, in 
_InactiveRpcError.result(self, timeout)
438 """See grpc.Future.result."""
--> 439 raise self

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:315, in 
_UnaryUnaryMultiCallable._with_call..continuation(new_details, 
request)
314 try:
--> 315 response, call = self._thunk(new_method).with_call(
316 request,
317 timeout=new_timeout,
318 metadata=new_metadata,
319 credentials=new_credentials,
320 wait_for_ready=new_wait_for_ready,
321 compression=new_compression,
322 )
323 return _UnaryOutcome(response, call)

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:343, in 
_UnaryUnaryMultiCallable.with_call(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
334 def with_call(
335 self,
336 request: Any,
   (...)
341 compression: Optional[grpc.Compression] = None,
342 ) -> Tuple[Any, grpc.Call]:
--> 343 return self._with_call(
344 request,
345 timeout=timeout,
346 metadata=metadata,
347 credentials=credentials,
348 wait_for_ready=wait_for_ready,
349 compression=compression,
350 )

File ~/.local/lib/python3.9/site-packages/grpc/_interceptor.py:332, in 
_UnaryUnaryMultiCallable._with_call(self, request, timeout, metadata, 
credentials, wait_for_ready, compression)
329 call = self._interceptor.intercept_unary_unary(
330 continuation, client_call_details, request
331 )
--> 332 return call.result(), call

File ~/.local/lib/python3.9/site-packages/grpc/_channel

Re: user_interest query returns "internal error occurred" response

2024-02-16 Thread Scott Vaillancourt
I'm also receiving errors when I attempt to query changes within an account 
(change_event). The following errors are returned.

_InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.INTERNAL
details = "Internal error encountered."
debug_error_string = "UNKNOWN:Error received from peer 
ipv4:172.217.5.10:443 {created_time:"2024-02-15T16:18:12.974592+00:00", 
grpc_status:13, grpc_message:"Internal error encountered."}"

InternalServerError: 500 Internal error encountered. [type_url: 
"type.googleapis.com/google.ads.googleads.v15.errors.GoogleAdsFailure"
value: "\022\026jTPv8AnklDhWUYp5nYkQxA"

Given the number of incidents reported over the past couple of days it 
feels like there's something wrong on the server side. Please let us know 
when you get this sorted out. Thanks.

Scott
On Thursday, February 15, 2024 at 10:10:15 AM UTC-6 Alberto wrote:

> Hi guys,
>
> We are also affected by this bug as stated on 
> https://groups.google.com/g/adwords-api/c/ageefJ086Zo
>
> Please, let us know when this is fixed on google ads api side.
>
> Thanks.
>
> On Thursday 15 February 2024 at 06:44:19 UTC+1 Google Ads API Forum 
> Advisor wrote:
>
>> Hi,
>>
>> Thank you for reaching out to the Google Ads API support team.
>>
>> After reviewing your concern, I understand that you are encountering the "
>> INTERNAL_ERROR 
>> "
>>  
>> while trying to fetch data using the queries via the Google Ads API 
>> searchStream 
>> 
>>  method.
>>
>> Kindly note that the INTERNAL_ERROR 
>> 
>>  occurs 
>> when something unexpected happened while processing the request. The common 
>> cause could be that the API isn't functioning correctly due to a bug. 
>> However, this is transient in nature and the issue may be resolved by 
>> retrying the request after a short pause. You may retry any requests that 
>> failed with this error, using an exponential backoff 
>> 
>>  schedule 
>> for the retries. Here is a code example 
>> 
>>  demonstrating 
>> how to implement an exponential back off strategy.
>>
>> Also, note that I am able to replicate this issue at my side. So, kindly 
>> allow me to check this with the rest of our team and one of our colleagues 
>> will reach out to you once we have an update. Meanwhile, your patience is 
>> highly appreciated. 
>>
>>   
>> This message is in relation to case "ref:!00D1U01174p.!5004Q02rz6B3:ref"
>>
>> Thanks,
>>   
>> [image: Google Logo] Google Ads API Team 
>>
>>
>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 
"Google Ads API and AdWords 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/9a619676-977a-45df-983a-6ae1e0b3afcfn%40googlegroups.com.


Re: Missing Ad Group Labels

2023-04-20 Thread Scott Vaillancourt
Was this issue ever resolved? I'm encountering the same thing in that I can 
see the ad group labels in the UI but they're not being retrieved when I 
request them via the API. Thanks.

Scott

On Wednesday, March 29, 2023 at 1:33:53 PM UTC-5 Google Ads API Forum 
Advisor wrote:

> Hi Per,
>
> Thank you for reaching out to Google Ads API Forum.
>
> If you are encountering discrepancy in the Google Ads UI and Google Ads 
> API, and in order for us to investigate further, can you provide us the 
> complete *request* 
> 
>  and *response* 
> 
>  logs 
> with the *request-id* 
> 
>  when 
> you mentioned that a handful are not returned despite that the label is 
> visible in the UI? Additionally please also share to us an *uncropped 
> Google Ads UI screenshot *of the data you are trying to retrieve in the 
> API. This is so we can provide more accurate answers accordingly.
>
> Furthermore, kindly note that in comparing UI and API data, please make 
> sure to consider the following items below:
>
>- Comparing the API and UI on the same level as much as possible 
>- The segments and fields of the API and UI should be the same 
>- The date range is also the same 
>
>
> You can provide these via the Reply privately to author option. If this 
> option is not available, then send it instead on this email address 
> googleadsa...@google.com .
>
> Regards,
> [image: Google Logo] Google Ads API Team 
>
> ref:_00D1U1174p._5004Q2kCwku:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 
"Google Ads API and AdWords 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/ffcbc0b6-5fda-498d-87e2-b0014946261bn%40googlegroups.com.


Re: Duplicate An Ad Group

2023-04-13 Thread Scott Vaillancourt
Thanks for your response. I do know how to pull the information I'm looking 
for in terms of existing ad group criteria. My question pertains to how 
these criteria can be assigned to a new ad group. Specifically, rather than 
having to recreate all of the existing criteria under the new ad group 
using 'create' operations within the AdGroupCriterionService, is there a 
more direct way to link/copy these criteria to new ad group? Thanks.

On Thursday, April 13, 2023 at 2:25:22 AM UTC-5 Google Ads API Forum 
Advisor wrote:

> Hi Scott,
>
> Thank you for reaching out to us.
>
> For you to see the existing criteria (e.g, keywords, age range, user 
> interest, user list) in your account. You may use the existing reports 
> where you may see it. For example: *keyword_view* report for your 
> existing keywords, *age_range_view* for the age range, *user_interest* 
> for user interest and *user_list* for user list.
>
> You may see the links below for the following emphasize words from the 
> above statement:
>
>- *keyword_view: *
>*https://developers.google.com/google-ads/api/fields/v13/keyword_view* 
>  
>- *age_range_view *: 
>*https://developers.google.com/google-ads/api/fields/v13/age_range_view* 
> 
>- *user_interest: *
>*https://developers.google.com/google-ads/api/fields/v13/user_interest* 
> 
>- *user_list: *
>*https://developers.google.com/google-ads/api/fields/v13/user_list* 
>  
>
> Best regards,
> [image: Google Logo] Google Ads API Team 
>
> ref:_00D1U1174p._5004Q2kUomQ:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 
"Google Ads API and AdWords 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/bd316419-2965-4ead-a6a3-2d629f0eab83n%40googlegroups.com.


Duplicate An Ad Group

2023-04-12 Thread Scott Vaillancourt
I'm attempting to programmatically duplicate ad groups using Python and the 
Ads APIs. I understand there is no copy/paste functionality similar to 
what's available via the UI, so I'm thinking I'll have to rely on 
resource-specific mutate services to generate ad groups and ads. However, 
with regards to ad group criteria, I'm wondering if there's a way to easily 
assign existing criteria (e.g, keywords, age range, user interest, user 
list) to the new ad group. I'd prefer not to have to regenerate every 
single criterion on a group-by-group basis.

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 
"Google Ads API and AdWords 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/56d502fc-d4f4-486d-8374-8e439d8e10d6n%40googlegroups.com.


Authorization error when adding keyword via MutateAdGroup

2022-01-20 Thread Scott Vaillancourt
I'm attempting to add a negative keyword to a specific ad group but am 
receiving an authorization error ("The user does not have permission to 
perform this action on the resource or call a method."). I'm able to add 
keywords via Google Ads (ads.google.com). I'm also able to successfully 
retrieve information for this same account via API's, so the read 
functionality seems OK. I'm not sure if I need to regenerate credentials 
now that I'm doing updates or if there's something else going on. Any 
guidance or suggestions would be appreciated. Thanks.

Here's the code I'm using to perform the update.

ad_group_service = client.get_service('AdGroupService', version='v9')
ad_group_criterion_service = 
client.get_service('AdGroupCriterionService', version='v9')

ad_group_criterion_operation = 
client.get_type("AdGroupCriterionOperation")
ad_group_criterion = ad_group_criterion_operation.create

ad_group_criterion.ad_group = ad_group_service.ad_group_path(cid, 
adgroupid)
ad_group_criterion.status = 
client.enums.AdGroupCriterionStatusEnum.ENABLED
ad_group_criterion.keyword.text = keyword
ad_group_criterion.keyword.match_type = 
(client.enums.KeywordMatchTypeEnum.EXACT)
ad_group_criterion.negative = True

response = 
ad_group_criterion_service.mutate_ad_group_criteria(customer_id=cid, 
operations=[ad_group_criterion_operation])

Here's a portion of the traceback showing the error.

GoogleAdsException: (<_InactiveRpcError of RPC that terminated with:

status = StatusCode.PERMISSION_DENIED

details = "The caller does not have permission"

debug_error_string = 
"{"created":"@1642719263.522809000","description":"Error received from peer 
ipv6:[2607:f8b0:4009:819::200a]:443","file":"src/core/lib/surface/call.cc","file_line":1075,"grpc_message":"The
 
caller does not have permission","grpc_status":7}"

>, <_InactiveRpcError of RPC that terminated with:

status = StatusCode.PERMISSION_DENIED

details = "The caller does not have permission"

debug_error_string = 
"{"created":"@1642719263.522809000","description":"Error received from peer 
ipv6:[2607:f8b0:4009:819::200a]:443","file":"src/core/lib/surface/call.cc","file_line":1075,"grpc_message":"The
 
caller does not have permission","grpc_status":7}"

>, errors {

  error_code {

authorization_error: ACTION_NOT_PERMITTED

  }

  message: "The user does not have permission to perform this action on the 
resource or call a method."

}

request_id: "hxiFkYimaxjxI38nUqPAxw"

, 'hxiFkYimaxjxI38nUqPAxw')

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 
"Google Ads API and AdWords 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/d71f97ee-0bb6-4f4e-9ba1-371b71524111n%40googlegroups.com.


Re: Keyword and Search Term View Yield Different Metrics

2021-10-25 Thread Scott Vaillancourt
Hey Mat,

I think you nailed it. If I pull data at the ad group level I can get the 
metrics to match what was retrieved by keyword. However, when search term 
is included in the query the numbers are significantly reduced. Thanks.

Scott

On Monday, October 25, 2021 at 4:21:16 AM UTC-5 Mat wrote:

> Hi Scott,
>
> unfortunately, Google does not disclose the search terms for more than 
> half of the the impressions, clicks, cost and conversions (allegedly for 
> privacy reasons).
> This is the case both in the Google Ads user interface and in the Google 
> Ads API.
>
> You might get matching total values if you don't segment the report by 
> search_term, which, however, makes little sense.
>
> Regards
> Mat
>
> adsapi schrieb am Montag, 25. Oktober 2021 um 08:38:41 UTC+2:
>
>> Hi,
>>
>> Thanks for reaching out to us.
>>
>> Upon checking the GAQL for the search_term_view report, it appears that 
>> segments are added in the select query. Note that when any segments are 
>> added in the query, then it tells the query to retrieve only the rows of 
>> data that have said segment fields and remove any row that is not 
>> associated with those segments. That being said, you may try generating API 
>> reports without including segment fields.
>>
>> If there are still discrepancies, please provide us with the complete 
>> *request* 
>> 
>>  
>> and *response* 
>> 
>>  
>> logs with the *request-id* 
>> 
>>  
>> for both of said views, so our team can better check.
>>
>> If you haven't yet, logging can be enabled by navigating to the Client 
>> libraries > Your client library (ex. PHP) > Logging documentation, which 
>> you can access from this *link* 
>> . You may 
>> then send the complete logs via the *Reply privately to author* option. 
>> If this option is not available, you may send the details directly to our 
>> googleadsa...@google.com alias instead.
>>
>> Regards, 
>> [image: Google Logo] 
>> Yasar 
>> Google Ads API Team 
>>   
>>
>> ref:_00D1U1174p._5004Q2QEgXr:ref
>>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/1df524ea-72be-4af0-bb1f-9d1e870a0ba5n%40googlegroups.com.


Keyword and Search Term View Yield Different Metrics

2021-10-23 Thread Scott Vaillancourt
Hi All,

I'm using the Ads API to pull performance data (e.g., impressions, clicks, 
cost, etc.). When I retrieve the data using the keyword_view the 
impressions and cost metrics in particular are greater than what is 
returned using the search_term_view for the same time period. I've included 
the query language and a portion of the data in the samples below. Any 
insights would be appreciated. Thanks.

Scott

*Keyword View*
SELECT
campaign.name,
ad_group.name,
ad_group_criterion.keyword.text,
ad_group_criterion.keyword.match_type,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.conversions_value,
ad_group_criterion.quality_info.quality_score,
ad_group_criterion.quality_info.search_predicted_ctr,
ad_group_criterion.quality_info.post_click_quality_score,
ad_group_criterion.quality_info.creative_quality_score
FROM keyword_view
WHERE
segments.date BETWEEN "{:s}" AND "{:s}"'''.format(start, end)

CampaignAd Group Impressions  Clicks   Cost   
 Conversions
Search - Predictive  Group 1 67   5  54.15 
 0.0
Search - Predictive  Group 2   109   3  47.40   
   1.0
Search - Predictive  Group 3   159   7  55.84   
   4.0
Search - Predictive  Group 4 33   0   0.00 
  0.0

Search Term View
SELECT
search_term_view.search_term,
segments.keyword.info.text,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
metrics.conversions,
metrics.conversions_value,
campaign.name,
campaign.advertising_channel_type,
ad_group.name,
search_term_view.status
FROM search_term_view
WHERE
segments.date BETWEEN "{:s}" AND "{:s}"'''.format(first, last)

Campaign Ad Group  Impressions  Clicks   Cost  Conversions 
Search - Predictive  Group 1   19 2   30.68 
 0.00.0
Search - Predictive  Group 2   40 1   24.78 
 0.00.0
Search - Predictive  Group 3   75 6   47.73 
 2.0  200.0
Search - Predictive  Group 4   11 0 0.00   
   0.00.0

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/b0e259cd-6068-49e7-a4b1-74682b4975een%40googlegroups.com.


Change Event Resource Type

2021-08-30 Thread Scott Vaillancourt
I'm using Python to run a report in Google Ads that pulls change events for 
the past 28 days. The versions of software installed and the query are 
shown below:

   - google-ads:  13.0.0
   - google-api_core: 1.31.2
   - google-api-python-client: 2.18.0

query = '''
SELECT
  change_event.change_date_time,
  change_event.change_resource_name,
  change_event.change_resource_type,
  change_event.resource_change_operation,
  change_event.user_email,
  change_event.changed_fields,
  campaign.name
FROM change_event
WHERE
  change_event.change_date_time BETWEEN "{:s}" AND "{:s}"
LIMIT 1200'''.format(start, end)

resp = list(gas.search(customer_id=cid, query=query))

The reporting service is instantiated as follows: gas = 
client.get_service('GoogleAdsService', version='v8').

The issue I'm encountering is with the values returned for 
change_resource_type. Specifically, in most cases the data type of the 
value is "". However, in some cases it's 
returning an "int". It appears that this is happening when the resource 
type is a value that was introduced in version 8. Here are two instances 
showing one enum and one integer.

for i in range(77, 79):
print(resp[i], type(resp[i].change_event.change_resource_type))

change_event {
  resource_name: REDACTED
  change_date_time: "2021-08-10 14:53:41.951903"
  change_resource_type: *AD*
  change_resource_name: REDACTED
  user_email: REDACTED
  resource_change_operation: UPDATE
  changed_fields {
paths: "added_by_google_ads"
paths: "final_url_suffix"
  }
}
* *

change_event {
  resource_name: REDACTED
  change_date_time: "2021-08-10 14:54:43.407839"
  change_resource_type: *14*
  change_resource_name: REDACTED
  user_email: REDACTED
  resource_change_operation: CREATE
  changed_fields {
paths: "id"
paths: "name"
paths: "resource_name"
  }
}
* *

Not sure if I'm missing an update somewhere or if something else is going 
on. Any guidance would be appreciated. Thanks.

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/45a2a05c-7b95-44ec-aec6-fc96f3ceb515n%40googlegroups.com.


Account Access Issues With New MCC

2021-04-28 Thread Scott Vaillancourt
I have a set of applications that use both AdWords and Ads APIs for 
reporting. All of reporting to date has been for a set of accounts managed 
under a single MCC. I was recently given access to another MCC and was 
attempting to run the same applications against the accounts associated 
with this new MCC but received a USER PERMISSION DENIED authorization 
error. Do I need to regenerate credentials or is there some way I can used 
my existing credentials to gain access? Thanks.

Scott

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/942df0b6-f543-4ed5-88de-4b34c0be0083n%40googlegroups.com.


Re: Retrieving changed_fields causes 500 Internal Error

2021-03-25 Thread Scott Vaillancourt
Based on the queries I'm doing, this appears to be resolved. Thanks.

Scott

On Thursday, March 25, 2021 at 1:42:01 PM UTC-5 adsapiforumadvisor wrote:

> Hi All - 
>
> It appears as though this fix has been rolled out all the way to prod. 
> Would you mind checking again whether you're continuing to receive these 
> errors?
>
>
> Thanks,
> Ben, Google Ads API Team
>
> ref:_00D1U1174p._5004Q2Du7a3:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/f3ffe0a9-1719-4904-af34-09b453df1cffn%40googlegroups.com.


Retrieving changed_fields causes 500 Internal Error

2021-03-09 Thread Scott Vaillancourt
I'm trying to retrieve changed_fields from the change_event resource 
(something I've done on several occasions before) and consistently 
encounter an InternalServerError. I can pull other fields from this 
resource, but specifying changed_fields appears to trigger the error. The 
query and output are shown below. Any help would be appreciated. Thanks.

Scott

##
gas = client.get_service('GoogleAdsService', version='v6')

query = '''
SELECT
change_event.changed_fields 
FROM change_event
WHERE
change_event.change_date_time BETWEEN "2021-02-08" AND "2021-03-08"
LIMIT 100'''

rl = list(gas.search(cid, query))

#
Request made: ClientCustomerId: REDACTED, Host: 
googleads.googleapis.com:443, Method: 
/google.ads.googleads.v6.services.GoogleAdsService/Search, RequestId: 
-dz65qORUAIjdisRc_d83w, IsFault: True, FaultMessage: Internal error 
encountered.
---
_InactiveRpcError Traceback (most recent call last)
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/google/api_core/grpc_helpers.py
 
in error_remapped_callable(*args, **kwargs)
 72 try:
---> 73 return callable_(*args, **kwargs)
 74 except grpc.RpcError as exc:

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_interceptor.py
 
in __call__(self, request, timeout, metadata, credentials, wait_for_ready, 
compression)
215  compression=None):
--> 216 response, ignored_call = self._with_call(request,
217  timeout=timeout,

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_interceptor.py
 
in _with_call(self, request, timeout, metadata, credentials, 
wait_for_ready, compression)
256request)
--> 257 return call.result(), call
258 

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_channel.py
 
in result(self, timeout)
332 """See grpc.Future.result."""
--> 333 raise self
334 

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_interceptor.py
 
in continuation(new_details, request)
240 try:
--> 241 response, call = self._thunk(new_method).with_call(
242 request,

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_interceptor.py
 
in with_call(self, request, timeout, metadata, credentials, wait_for_ready, 
compression)
265   compression=None):
--> 266 return self._with_call(request,
267timeout=timeout,

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_interceptor.py
 
in _with_call(self, request, timeout, metadata, credentials, 
wait_for_ready, compression)
256request)
--> 257 return call.result(), call
258 

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_channel.py
 
in result(self, timeout)
332 """See grpc.Future.result."""
--> 333 raise self
334 

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_interceptor.py
 
in continuation(new_details, request)
240 try:
--> 241 response, call = self._thunk(new_method).with_call(
242 request,

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_interceptor.py
 
in with_call(self, request, timeout, metadata, credentials, wait_for_ready, 
compression)
265   compression=None):
--> 266 return self._with_call(request,
267timeout=timeout,

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/grpc/_interceptor.py
 
in _with_call(self, request, timeout, metadata, credentials, 
wait_for_ready, compression)
253 
--> 254 call = self._interceptor.intercept_unary_unary(continuation,
255   
 client_call_details,

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/google/ads/google_ads/interceptors/exception_interceptor.py
 
in intercept_unary_unary(self, continuation, client_call_details, request)
168 if exception:
--> 169 self._handle_grpc_failure(response)
170 else:

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/google/ads/google_ads/interceptors/exception_interceptor.py
 
in _handle_grpc_failure(self, response)
140 """
--> 141 raise self._get_error_from_response(response)
142 

/Library/Frameworks

Re: Recommendation Type Enum Doesn't Match Results

2021-03-02 Thread Scott Vaillancourt
Thank you. After looking at the links you sent and digging into it a bit 
more, it appears to be a version problem. I downloaded the most current 
edition of google-ads (which I should have done straight away), at that has 
resolved the issue.

Scott

On Tuesday, March 2, 2021 at 3:05:55 PM UTC-6 adsapiforumadvisor wrote:

> Hi Scott,
>
> Thank you for reaching out. The RESPONSIVE_SEARCH_AD type actually exists 
> in these client libraries. If you are using the Python client library, you 
> could refer to this line of code 
> 
> .
>
>
>
> Thanks and regards,
> Xiaoming, Google Ads API Team
>  
>
> [image: Google Logo] 
> Xiaoming 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q2DKDQc:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/9b20fc81-25fa-4c7e-863e-df9dc9c7b69en%40googlegroups.com.


Re: Recommendation Type Enum Doesn't Match Results

2021-03-02 Thread Scott Vaillancourt
Hi Xiaoming,

Thanks for your reply. I believe I am accessing the correct enum, but it 
doesn't appear to contain the value 18. Please see the code below. Thanks.

Scott

In [50]: rte = client.get_type("RecommendationTypeEnum", version="v6") 

...: rtype = zip(rte.RecommendationType.values(), 
rte.RecommendationType.keys()) 

...: for r in rtype: 

...: print(r)   

 

(0, 'UNSPECIFIED')

(1, 'UNKNOWN')

(2, 'CAMPAIGN_BUDGET')

(3, 'KEYWORD')

(4, 'TEXT_AD')

(5, 'TARGET_CPA_OPT_IN')

(6, 'MAXIMIZE_CONVERSIONS_OPT_IN')

(7, 'ENHANCED_CPC_OPT_IN')

(8, 'SEARCH_PARTNERS_OPT_IN')

(9, 'MAXIMIZE_CLICKS_OPT_IN')

(10, 'OPTIMIZE_AD_ROTATION')

(11, 'CALLOUT_EXTENSION')

(12, 'SITELINK_EXTENSION')

(13, 'CALL_EXTENSION')

(14, 'KEYWORD_MATCH_TYPE')

(15, 'MOVE_UNUSED_BUDGET')

(16, 'FORECASTING_CAMPAIGN_BUDGET')

(17, 'TARGET_ROAS_OPT_IN')

On Tuesday, March 2, 2021 at 1:52:28 PM UTC-6 adsapiforumadvisor wrote:

> Hi Scott,
>
> Thank you for reaching out. Please look into the v6 
> 
>  
> RecommendationTypeEnum. You would be able to see the number 18 
> 
>  
> represents RESPONSIVE_SEARCH_AD.
>
> Thanks and regards,
> Xiaoming, Google Ads API Team
>  
>
> [image: Google Logo] 
> Xiaoming 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q2DKDQc:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/c21357ad-0bcb-4a41-8a38-a0d242523c8an%40googlegroups.com.


Re: Recommendation Type Enum Doesn't Match Results

2021-03-01 Thread Scott Vaillancourt
Quick update: I also encountered this issue with the 
ChangeEventResourceType enum.

Scott

On Monday, March 1, 2021 at 5:39:02 PM UTC-6 Scott Vaillancourt wrote:

> It looks like a new recommendation type has been added but not yet 
> reflected in the Enum. Specifically, the value 18 (RESPONSIVE_SEARCH_AD?) 
> is being returned from a query but isn't part of the Enum. However, it does 
> appear in the documentation (
> https://developers.google.com/google-ads/api/reference/rpc/v6/RecommendationTypeEnum.RecommendationType
> ). 
>
> I've pasted in some code/results below that illustrate the issue. Thanks.
>
> Scott
>
> In [22]: rtenum = client.get_type("RecommendationTypeEnum", version="v6")  
> 
>
>
> In [23]: rtenum.RecommendationType.values()
> 
>
>
> Out[23]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
>
> In [24]: rtenum.RecommendationType.keys()  
> 
>
>
> Out[24]: 
>
> ['UNSPECIFIED',
>
>  'UNKNOWN',
>
>  'CAMPAIGN_BUDGET',
>
>  'KEYWORD',
>
>  'TEXT_AD',
>
>  'TARGET_CPA_OPT_IN',
>
>  'MAXIMIZE_CONVERSIONS_OPT_IN',
>
>  'ENHANCED_CPC_OPT_IN',
>
>  'SEARCH_PARTNERS_OPT_IN',
>
>  'MAXIMIZE_CLICKS_OPT_IN',
>
>  'OPTIMIZE_AD_ROTATION',
>
>  'CALLOUT_EXTENSION',
>
>  'SITELINK_EXTENSION',
>
>  'CALL_EXTENSION',
>
>  'KEYWORD_MATCH_TYPE',
>
>  'MOVE_UNUSED_BUDGET',
>
>  'FORECASTING_CAMPAIGN_BUDGET',
>
>  'TARGET_ROAS_OPT_IN']
>
> In [25]: query = ''' 
>
> ...: SELECT 
>
> ...: recommendation.type 
>
> ...: FROM recommendation'''
> 
>
>
> In [26]: gas = client.get_service('GoogleAdsService', version='v6')
> 
>   
>
> In [27]: resp = gas.search(cid, query) 
> 
>
>
> In [28]: rtypes = []   
> 
>
>
> In [29]: for row in resp: 
>
> ...: rtypes.append(row.recommendation.type)   
> 
>
>
> In [30]: rtypes
> 
>   
>
> Out[30]: [2, 12, 12, 13, 13, 13, 5, 18, 18, 18, 18, 18, 18, 18, 18, 18, 
> 18, 18, 18]
>
>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/ee6a69e7-bad7-48ca-8d9a-986754508935n%40googlegroups.com.


Recommendation Type Enum Doesn't Match Results

2021-03-01 Thread Scott Vaillancourt
It looks like a new recommendation type has been added but not yet 
reflected in the Enum. Specifically, the value 18 (RESPONSIVE_SEARCH_AD?) 
is being returned from a query but isn't part of the Enum. However, it does 
appear in the documentation 
(https://developers.google.com/google-ads/api/reference/rpc/v6/RecommendationTypeEnum.RecommendationType).
 

I've pasted in some code/results below that illustrate the issue. Thanks.

Scott

In [22]: rtenum = client.get_type("RecommendationTypeEnum", version="v6")  

   

In [23]: rtenum.RecommendationType.values()

   

Out[23]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]

In [24]: rtenum.RecommendationType.keys()  

   

Out[24]: 

['UNSPECIFIED',

 'UNKNOWN',

 'CAMPAIGN_BUDGET',

 'KEYWORD',

 'TEXT_AD',

 'TARGET_CPA_OPT_IN',

 'MAXIMIZE_CONVERSIONS_OPT_IN',

 'ENHANCED_CPC_OPT_IN',

 'SEARCH_PARTNERS_OPT_IN',

 'MAXIMIZE_CLICKS_OPT_IN',

 'OPTIMIZE_AD_ROTATION',

 'CALLOUT_EXTENSION',

 'SITELINK_EXTENSION',

 'CALL_EXTENSION',

 'KEYWORD_MATCH_TYPE',

 'MOVE_UNUSED_BUDGET',

 'FORECASTING_CAMPAIGN_BUDGET',

 'TARGET_ROAS_OPT_IN']

In [25]: query = ''' 

...: SELECT 

...: recommendation.type 

...: FROM recommendation'''

   

In [26]: gas = client.get_service('GoogleAdsService', version='v6')

  

In [27]: resp = gas.search(cid, query) 

   

In [28]: rtypes = []   

   

In [29]: for row in resp: 

...: rtypes.append(row.recommendation.type) 

 

In [30]: rtypes

  

Out[30]: [2, 12, 12, 13, 13, 13, 5, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 
18, 18]


-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/bbcb7c58-aad9-47ce-b20b-a4d067c90350n%40googlegroups.com.


Re: API Recommendations Don't Match Ads Console

2020-12-07 Thread Scott Vaillancourt
I just sent the documentation you requested. 

Scott

On Wednesday, December 2, 2020 at 3:34:28 AM UTC-6 adsapiforumadvisor wrote:

> Hi Scott,
>
> Thank you for the clarification.
>
> To further investigate, please provide the requested details on this email 
> address googleadsa...@google.com instead for privacy purposes.
>
>
> Regards,
> [image: Google Logo] 
> Ernie John Blanca Tacata 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q27wbmU:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/6e7428da-45a0-420e-9af7-da0945c32af8n%40googlegroups.com.


Re: API Recommendations Don't Match Ads Console

2020-11-27 Thread Scott Vaillancourt
Forgot to mention that I don't have permission to *Reply privately to 
author, *so if you require additional information I'll need to send it via 
a different channel.

On Friday, November 27, 2020 at 1:54:36 PM UTC-6 Scott Vaillancourt wrote:

> The console I'm referring to is the account-specific Overview page at 
> ads.google.com, not the reporting UI. Specifically, the recommendations 
> cards don't match what I'm able to retrieve via the API.
>
> Scott
>
> On Thursday, November 26, 2020 at 2:44:32 AM UTC-6 adsapiforumadvisor 
> wrote:
>
>> Hi Scott,
>>
>> Thanks for posting your concern.
>>
>> Could you confirm if what you mean for the Google Ads console is specific 
>> UI where the data is not matched with the result of recommendation 
>> <https://developers.google.com/google-ads/api/fields/v6/recommendation> 
>> report? If yes, then you may refer to this guide 
>> <https://developers.google.com/google-ads/api/docs/reporting/uireports> to 
>> know the correct mapping of this report in the UI.
>>
>> If the data discrepancies are observed between the generated report and 
>> UI, then you can provide the following details via *Reply privately to 
>> author* option to investigate further: 
>>
>>- complete request and response logs with request ID 
>>- customer ID 
>>- screenshot of the whole UI where the same filters are applied as 
>>set in the report 
>>
>>
>> Regards,
>> [image: Google Logo] 
>> Ernie John Blanca Tacata 
>> Google Ads API Team 
>>   
>>
>> ref:_00D1U1174p._5004Q27wbmU:ref
>>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/a89494c3-cce7-4691-8ad0-88ed94a6704fn%40googlegroups.com.


Re: API Recommendations Don't Match Ads Console

2020-11-27 Thread Scott Vaillancourt
The console I'm referring to is the account-specific Overview page at 
ads.google.com, not the reporting UI. Specifically, the recommendations 
cards don't match what I'm able to retrieve via the API.

Scott

On Thursday, November 26, 2020 at 2:44:32 AM UTC-6 adsapiforumadvisor wrote:

> Hi Scott,
>
> Thanks for posting your concern.
>
> Could you confirm if what you mean for the Google Ads console is specific 
> UI where the data is not matched with the result of recommendation 
>  
> report? If yes, then you may refer to this guide 
>  to 
> know the correct mapping of this report in the UI.
>
> If the data discrepancies are observed between the generated report and 
> UI, then you can provide the following details via *Reply privately to 
> author* option to investigate further: 
>
>- complete request and response logs with request ID 
>- customer ID 
>- screenshot of the whole UI where the same filters are applied as set 
>in the report 
>
>
> Regards,
> [image: Google Logo] 
> Ernie John Blanca Tacata 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q27wbmU:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/4d28f807-5131-414b-bcd7-baeff83974d8n%40googlegroups.com.


API Recommendations Don't Match Ads Console

2020-11-25 Thread Scott Vaillancourt
I'm using the GoogleAdsService API to pull recommendations. However, the 
returned data doesn't match what I see when I look at the Recommendations 
screen in the Google Ads console. There are far fewer recommendations 
returned via the API. The code below yields 5 records, which 
is significantly less than I can access via the console. I'm happy to 
provide customer information via a private channel. Thanks.

Scott

gas = client.get_service('GoogleAdsService', version='v6')
rte = client.get_type('RecommendationTypeEnum', version='v6')

query = '''
SELECT
  recommendation.type,
  recommendation.campaign
FROM recommendation'''

resp = gas.search(cid, query)
rl = list(resp)
for r in rl:
 print(rte.RecommendationType.Name(r.recommendation.type))

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/6132297d-22cb-42a8-8438-19f25c7e6c95n%40googlegroups.com.


Re: Different campaign report results when using location

2020-11-10 Thread Scott Vaillancourt
Hi Peter,

I don't have permission to '*Reply privately to author' *and would need 
some other mechanism to send you the information you're requesting. Also, 
I'm not sure where I'd capture the response log or request ID. Thanks.

Scott

On Tuesday, November 10, 2020 at 12:52:24 AM UTC-6 adsapiforumadvisor wrote:

> Hi Scott,
>
> Thank you for reaching out.
>
> Could you also share your customer ID, and the complete request and 
> response logs with the request ID, when you generated the reports?
>
> You may send the requested details using the *Reply privately to author* 
> option.
>
> Best regards,
>
> [image: Google Logo] 
> Peter Laurence Napa Oliquino 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q278Ghw:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/42049d50-0f2d-40b2-8c2f-b197de6e45dfn%40googlegroups.com.


Different campaign report results when using location

2020-11-09 Thread Scott Vaillancourt
I'm trying to produce a report using the Google Ads API that includes 
totals for impressions, clicks and cost at the campaign/metro area level. I 
understand that if geographic information isn't available then data won't 
be returned from the geographic_view. In order to get all data for a 
campaign, I'm retrieving campaign-level data and comparing that to totals 
at the metro area level. I would expect that the campaign level data would 
always be greater than or equal to the geographic data since geographic 
data may sometimes be missing. However, what I've found is a case where 
totals for geographic-level data are greater than what the campaign is 
showing.


I'm trying to understand why the two results would differ in this manner 
and which one is accurate. Thanks.

Scott

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/08751cc4-bf26-4ebb-a548-a2b2c84cad72n%40googlegroups.com.


Re: geographic_view doesn't return data when segments.geo_target_metro is empty

2020-11-05 Thread Scott Vaillancourt
I have this question as well. When I pull a report using the AdWords API 
for a campaign, all of the data returned includes occurrences where no 
metro area is attached. However, when I use the geographic_view in the new 
Ads API, no data is returned if the metro area is blank, causing the 
metrics to be underreported. If I use the campaign view then all of the 
metrics are accurate.

Scott

On Tuesday, November 3, 2020 at 5:27:58 AM UTC-6 e.bar...@gmail.com wrote:

> Hi,
> I was contacting with Google Ads Support and I've got the following reply:
>
> >>>
> Hi Ela,
> thanks for your E-Mail.
> I have double-checked with my Manager and I can't assist you with your 
> Inquiry. This is a Case for the API Team. Therefor I kindly ask you to 
> E-Mail googleadsa...@google.com, and they will happily help you with your 
> inquiry.
> In case you have any further questions, please do not hesitate to contact 
> me. Until then, I wish you a lovely day and stay safe.
>
> Sincerely,
> Jessica
> 
>
> I sent also the email to googleadsa...@google.com, but for now no 
> response. Please let me know, if you can somehow help me with this problem, 
> as it seems like nobody feels responsible for this area.
>
> Thank you!
>
> Regards,
> Ela
> On Friday, 30 October 2020 at 20:25:36 UTC+1 adsapiforumadvisor wrote:
>
>> Hi Ela,
>>
>> Since this behavior is not limited to the API, it doesn't appear to be 
>> API related. I would advise reaching out to the product team to see why 
>> this data is broken down this way. You can contact them though here 
>> .
>>
>>
>> Regards,
>> Anthony
>> Google Ads API Team
>>
>> [image: Google Logo] 
>> Anthony Madrigal 
>> Google Ads API Team 
>>
>>  
>>
>> ref:_00D1U1174p._5004Q275Y42:ref
>>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/33839de3-863b-4ad5-a766-0edc5a8faa67n%40googlegroups.com.


Re: Resource Exhausted Using get_geo_target_constant

2020-10-28 Thread Scott Vaillancourt
Hi Peter,

Thanks for the info. I don't have adequate permissions to reply to author, 
so I'll send you what I can via this post. Shown below is the code I'm 
using to execute the request. The error message I get back is '429 Resource 
has been exhausted (e.g., check quota)'. I'm pretty certain the limit 
that's being exceeded is because of the call to get_geo_target_constant. If 
I run the code without this it works fine. I think what I'm trying to 
figure out is how to resolve resource names without a 'get' call. This 
applies to other items such as campaign_budget. Hope this helps. Thanks.

Scott

***
from google.ads.google_ads.client import GoogleAdsClient

client = GoogleAdsClient.load_from_storage('/users/google-ads.yaml')
gas = client.get_service('GoogleAdsService', version='v5')

query = '''
SELECT
campaign.name,
campaign.advertising_channel_type,
campaign.campaign_budget,
metrics.impressions,
metrics.clicks,
metrics.cost_micros,
segments.geo_target_metro,
segments.date
FROM geographic_view
WHERE
segments.date BETWEEN "2020-10-01" AND "2020-10-20"
ORDER BY campaign.name ASC
LIMIT 1000'''

cid = 
resp = gas.search_stream(cid, query)
report = []

for batch in resp:
for row in batch.results:
cdate = row.segments.date
camp = row.campaign.name
metro = 
gts.get_geo_target_constant(row.segments.geo_target_metro).name
impr = row.metrics.impressions
clicks = row.metrics.clicks
cost = row.metrics.cost_micros / 100
channel = row.campaign.advertising_channel_type
budget = row.campaign.campaign_budget
report.append([cdate, camp, metro, impr, clicks, cost, channel, 
budget])
***


On Wednesday, October 28, 2020 at 1:15:04 AM UTC-5 adsapiforumadvisor wrote:

> Hi Scott,
>
> Thank you for reaching our to out API support team.
>
> The GoogleAdsService (Search and SearchStream) is also subject to limits 
> 
>  
> which you can find out more via this guide 
> . 
> Regardless of access level, customers would indeed only be able to make up 
> to 1,000 get requests per day.
>
> For the error you are encountering, could you provide more details on how 
> exactly you are encountering this? Could you provide your customer ID and 
> the complete request and response logs containing the error message you 
> received? 
>
> You may send the requested information using the *Reply privately to 
> author* option.
>
> Best regards,
>
> [image: Google Logo] 
> Peter Laurence Napa Oliquino 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q275C0l:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/544f71a3-5b7c-4ff6-a3e7-257fdd428d05n%40googlegroups.com.


Resource Exhausted Using get_geo_target_constant

2020-10-27 Thread Scott Vaillancourt
I running a report using the search_stream method within GoogleAdsService. 
One of the fields I'm pulling back is geo_target_metro, which returns 
resource name such as 'geoTargetConstants/200819'. I'm trying to get the 
name associated with each location. However, when I use 
get_geo_target_constant(Resource Name).name, I get an error saying I've 
exhausted my resources, which I assume are the 1000 gets. (Note: I can run 
the exact same code without calling get_geo_target_constant and not have 
any problems. How can I get the name associated with geo_target_metro 
without running out of resources? Thanks.

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/4b824414-a23a-4b5c-9bfe-a008fc1ee5c9n%40googlegroups.com.


Campaign Report With Location (geo_target_metro)

2020-10-26 Thread Scott Vaillancourt
I'm using the search method of the GoogleAdsService to create a 
campaign-level report. I'd like to use the campaign view since this has the 
fields I'm looking for (e.g., impressions, cost, clicks). However, I also 
want this information broken out by metro area for each campaign, but I'm 
unable to apply this segment when I specify 'campaign' in the FROM clause. 
Is there a way to work around this? Thanks.

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/4412b11a-b8ac-497c-aa7c-9a676cd55790n%40googlegroups.com.


Re: Can You Use The AdWords API To Access The Ad Preview & Diagnosis Tool?

2020-08-24 Thread Scott Vaillancourt
We're currently using the Ad Preview and Diagnosis tool to understand where 
ads are showing and look for opportunities to expand keywords. Does this 
functionality exist with any other API's? If not, is there any estimate of 
when the feature request might be released?

Thanks. 

On Tuesday, June 2, 2020 at 9:52:52 AM UTC-5 adsapiforumadvisor wrote:

> Hi Rohan,
>
> Unfortunately, we don't have any examples but we have heard of users who 
> generate HTML from an ad's content to render it in a manner that looks 
> similar to the ad preview in the Google Ads UI. 
>
> Fortunately, there is a feature request to put this in the API. You can 
> follow our blog  for updates.
>
> Regards,
> Anthony
> Google Ads API Team
>
> ref:_00D1U1174p._5004Q1ztGf4:ref
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/86391400-9fce-4b69-8ef6-6b124643e78cn%40googlegroups.com.


Negative Keyword List

2020-08-18 Thread Scott Vaillancourt
I'm trying to get a negative keyword list via the Campaign Negative 
Keywords Performance Report API in Python. However, I'm not able to get the 
actual keyword for which I'm retrieving information (e.g., match type). It 
looks as though I might be able to get the keyword via the  
NegativeCampaignCriterion 

 object, 
but I've not been able to make that work. How can I access the attributes 
within this object when I'm creating the report? Thanks.

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/7527a29c-2224-465b-b83d-bb0fcd8479a0n%40googlegroups.com.