Re: V8 : CALL_AD : display_url VALUE_MUST_BE_UNSET

2021-07-15 Thread Pete Lavetsky (AdWords API Guru)
Anash,

Thanks for the full explanation ... I appreciate the communication.

Pete

On Thursday, July 8, 2021 at 6:20:00 PM UTC-4 adsapi wrote:

> Hi Pete,
>
> I read through the whole thread, the blog and the Java GitHub bug. 
> Unfortunately in this case, the "fix" you provided in the GitHub bug is the 
> right fix. The explanation is a bit long though.
>
> 1. In v8, for CALL_ADS, you should *set* final_urls. You should also 
> *clear* display_url in the process. 
>
> I believe the thought process here was that whenever anyone sets a 
> CALL_AD, Google will also force them to clear the display_url, thus 
> upgrading from CallOnlyAd  to CallAd.
>
> 2. Since display_url has to be cleared, the right way to do this is to:
>
> a) Do not set display_url field.
> b) Add a display_url to the FieldMask.
>
> This is why the following code works: 
>
> final FieldMask.Builder fieldMaskBuilder = FieldMasks.allSetFieldsOf( ad 
> ).toBuilder();
> *if( ad.hasCallAd() ) {
>   fieldMaskBuilder.addPaths( "display_url" );
> }
> *
>
> 3) If you set display_url = "", then that is interpreted by the server as 
> "trying to set display_url to an empty string", which is why you get the 
> VALUE_MUST_BE_UNSET error. Normally, this should be the same thing as 
> "clearing display_url", but the servers don't interpret it this way, 
> because we published display_url as an optional field (
> https://github.com/googleapis/googleapis/blob/master/google/ads/googleads/v8/resources/ad.proto#L86),
>  
> which is a way of saying that "" and unset values have different 
> meanings. I can file a request to interpret both errors the same way, but 
> your "fix" is just as valid in this case.
>
> 4) Setting the display_url as null is shouldn't throw an NPE, that should 
> be a bug with the Java client library team. However, that won't fix your 
> issue due to point (3).
>
> Apologies for the long thread. I've copied Nick so you don't have to file 
> yet another bug on the Java client library repo. Hopefully in a few months, 
> the migration will be complete, v7 will be sunset, and this workaround is 
> no longer needed.
>
> Cheers
> Anash
>
>
> ref:_00D1U1174p._5004Q2IxmDo: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/13632883-00db-4269-b3de-0781b1e809ebn%40googlegroups.com.


Re: V8 : CALL_AD : display_url VALUE_MUST_BE_UNSET

2021-07-08 Thread Google Ads API Forum Advisor
Hi Pete,

I read through the whole thread, the blog and the Java GitHub bug. 
Unfortunately in this case, the "fix" you provided in the GitHub bug is the 
right fix. The explanation is a bit long though.

1. In v8, for CALL_ADS, you should set final_urls. You should also clear 
display_url in the process.

I believe the thought process here was that whenever anyone sets a CALL_AD, 
Google will also force them to clear the display_url, thus upgrading from 
CallOnlyAd  to CallAd.

2. Since display_url has to be cleared, the right way to do this is to:

a) Do not set display_url field.
b) Add a display_url to the FieldMask.

This is why the following code works:

final FieldMask.Builder fieldMaskBuilder = FieldMasks.allSetFieldsOf( ad 
).toBuilder(); if( ad.hasCallAd() ) { fieldMaskBuilder.addPaths( "display_url" 
); }

3) If you set display_url = "", then that is interpreted by the server as 
"trying to set display_url to an empty string", which is why you get the 
VALUE_MUST_BE_UNSET error. Normally, this should be the same thing as "clearing 
display_url", but the servers don't interpret it this way, because we published 
display_url as an optional field 
(https://github.com/googleapis/googleapis/blob/master/google/ads/googleads/v8/resources/ad.proto#L86),
 which is a way of saying that "" and unset values have different meanings. I 
can file a request to interpret both errors the same way, but your "fix" is 
just as valid in this case.

4) Setting the display_url as null is shouldn't throw an NPE, that should be a 
bug with the Java client library team. However, that won't fix your issue due 
to point (3).

Apologies for the long thread. I've copied Nick so you don't have to file yet 
another bug on the Java client library repo. Hopefully in a few months, the 
migration will be complete, v7 will be sunset, and this workaround is no longer 
needed.

Cheers
Anash
ref:_00D1U1174p._5004Q2IxmDo: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/-KZSi0QVY60U00LtwfesbeS322QAz8MIYM3A%40sfdc.net.


Re: V8 : CALL_AD : display_url VALUE_MUST_BE_UNSET

2021-07-06 Thread Pete Lavetsky (AdWords API Guru)
The only thing it contained was the request-Id ... everything else was 
REDACTED ... what was sensitive about it?

Pete

On Sunday, July 4, 2021 at 10:43:08 PM UTC-4 adsapi wrote:

> Hi Pete,
>
> I had to delete your recent response as it contained your logs. You may 
> instead use the *Reply privately to author* option or send the logs 
> directly to our googleadsa...@google.com alias.
>
> Moving forward, I have taken note of the information of your deleted logs, 
> and allow me now to raise this once more to the rest of our team so we can 
> discuss and investigate further. We'll reach back to you once we have 
> updates.
>
>
> Best regards,
>
> [image: Google Logo] 
> Peter Laurence Napa Oliquino 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q2IxmDo: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/0c752f70-cae5-417c-8ea0-54faa96a10c3n%40googlegroups.com.


Re: V8 : CALL_AD : display_url VALUE_MUST_BE_UNSET

2021-07-04 Thread Google Ads API Forum Advisor
Hi Pete,

I had to delete your recent response as it contained your logs. You may instead 
use the Reply privately to author option or send the logs directly to our 
googleadsapi-supp...@google.com alias.

Moving forward, I have taken note of the information of your deleted logs, and 
allow me now to raise this once more to the rest of our team so we can discuss 
and investigate further. We'll reach back to you once we have updates.

Best regards,

Peter Laurence Napa Oliquino
Google Ads API Team
ref:_00D1U1174p._5004Q2IxmDo: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/WNXQW0QVR3JJ00gvN8QEDEQZ62_m6Mo5Jdzw%40sfdc.net.


Re: V8 : CALL_AD : display_url VALUE_MUST_BE_UNSET

2021-06-30 Thread Pete Lavetsky (AdWords API Guru)
Thanks for the followup Peter.

This is why I originally posted the bug to the Java Client Library forum 
because the solution you state, *which I had tried*, "Therefore, you need 
to explicitly set display_url ( on the Ad resource ) to be an empty 
string", does not work with the Java Client Library:

request_id: "zb-yJMOVAG8IYoU0hOAfQg"

Request
---
MethodName: google.ads.googleads.v8.services.AdService/MutateAds
Endpoint: googleads.googleapis.com:443
Headers: {developer-token=REDACTED, login-customer-id=REDACTED, 
x-goog-api-client=gl-java/1.8.0_161 gapic/ gax/1.65.1 grpc/1.37.0}
Body: customer_id: "REDACTED"
operations {
  update {
type: CALL_AD
resource_name: "customers/REDACTED/ads/REDACTED"
id: REDACTED
final_urls: "REDACTED"
display_url: ""
call_ad {
REDACTED
}
  }
  update_mask {
paths: "resource_name"
paths: "id"
paths: "final_urls"
paths: "display_url"
paths: "type"
paths: "call_ad.country_code"
paths: "call_ad.phone_number"
paths: "call_ad.business_name"
paths: "call_ad.description1"
paths: "call_ad.description2"
paths: "call_ad.call_tracked"
paths: "call_ad.phone_number_verification_url"
  }
}

Response

Headers: 
Metadata(content-type=application/grpc,request-id=zb-yJMOVAG8IYoU0hOAfQg,date=Wed,
 
30 Jun 2021 13:49:21 GMT,alt-svc=h3=":443"; ma=2592000,h3-29=":443"; 
ma=2592000,h3-T051=":443"; ma=2592000,h3-Q050=":443"; 
ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; 
ma=2592000,quic=":443"; ma=2592000; v="46,43")
Body: null
Failure message: errors {
  error_code {
field_error: VALUE_MUST_BE_UNSET
  }
  message: "The field cannot be set."
  location {
field_path_elements {
  field_name: "operations"
  index: 0
}
field_path_elements {
  field_name: "update"
}
field_path_elements {
  field_name: "display_url"
}
  }
}
request_id: "zb-yJMOVAG8IYoU0hOAfQg"

Status: Status{code=INVALID_ARGUMENT, description=Request contains an 
invalid argument., cause=null}.

Should I push this back to the Java Client Library bug board?

Pete
On Wednesday, June 30, 2021 at 2:06:13 AM UTC-4 adsapi wrote:

> Hi Pete,
>
> Relaying the feedback we received from our team :
>
>
>
> *The creative itself, an old call-only ad, already has the display_url 
> set.  Therefore, you need to explicitly set display_url (on the Ad 
> resource) 
> 
>  to 
> be an empty string. This is the new requirement of the call ad, also what 
> VALUE_MUST_BE_UNSET means.*
>
> I hope this helps and let us know if you have additional clarifications.
>
> Best regards,
>
> [image: Google Logo] 
> Peter Laurence Napa Oliquino 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q2IxmDo: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/6690f218-1850-45b8-bca0-4fa0f0b968den%40googlegroups.com.


RE: V8 : CALL_AD : display_url VALUE_MUST_BE_UNSET

2021-06-30 Thread Google Ads API Forum Advisor
Hi Pete,

Relaying the feedback we received from our team :

The creative itself, an old call-only ad, already has the display_url set.

Therefore, you need to explicitly set display_url (on the Ad resource) to be an 
empty string. This is the new requirement of the call ad, also what 
VALUE_MUST_BE_UNSET means.

I hope this helps and let us know if you have additional clarifications.

Best regards,

Peter Laurence Napa Oliquino
Google Ads API Team
ref:_00D1U1174p._5004Q2IxmDo: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/BnPyM0QVI3LW00Zjze_YG4RQu7IdSEoveM-A%40sfdc.net.


RE: V8 : CALL_AD : display_url VALUE_MUST_BE_UNSET

2021-06-24 Thread Google Ads API Forum Advisor
Hi Pete,

Thanks for pointing this out and sharing a detailed summary of the issue. 
Please allow me to share this with our team and we will provide an update on 
the issue shortly.

Regards,
Matt
Google Ads API Team

Matt
Google Ads API Team
ref:_00D1U1174p._5004Q2IxmDo: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/4BySo0QV7VBQ00pH2tpt5hThqSeitbZqwHhQ%40sfdc.net.


V8 : CALL_AD : display_url VALUE_MUST_BE_UNSET

2021-06-22 Thread Pete Lavetsky (AdWords API Guru)
Originally posted in the Java library bug list 
: https://github.com/googleads/google-ads-java/issues/447

Was told to post here.

All request IDs and logs are in the above thread.

We are not passing in display_url to an existing CallAd but on mutation we 
receive an error back that display_url VALUE_MUST_BE_UNSET

Looks like fallout from the CallOnlyAd to CallAd migration

Pete

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/f5e8c95b-8dac-415f-84fa-7c2b444920bcn%40googlegroups.com.