Re: Ads API Metrics unavailable at Geo level- TopImpressionPercentage, AbsoluteTopImpressionPercentage

2022-04-01 Thread Jean-Fabrice Rabaute
Thanks for keeping us posted on this.

One question about the deprecation of the old Google Adwords API. It is 
scheduled for April 27. Will the v10.1 be available before this date?
That is blocking our migration to the new Google Ads API right now.

Thank you.

Le vendredi 1 avril 2022 à 12:43:49 UTC-7, adsapi a écrit :

> Hi Jean-Fabrice,
>
> Thanks for your patience on this. This feature is tentatively planned for 
> the 10.1 release. When that version is released, you should be able to use 
> the two mentioned metrics on the *customer* resource.
>
>
> Regards,
> Matt
> Google Ads API Team
>
> [image: Google Logo] 
> Matt 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q2QF11C: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/d257f398-5ca9-44d8-a23d-25dc386bdcbfn%40googlegroups.com.


Re: Ads API Metrics unavailable at Geo level- TopImpressionPercentage, AbsoluteTopImpressionPercentage

2021-12-19 Thread Jean-Fabrice Rabaute
Thank you!

Le mardi 14 décembre 2021 à 07:00:56 UTC-8, adsapi a écrit :

> Hi Jean-Fabrice,
>
> These two metrics are not supported in *customer *at the moment, but 
> please allow me to make a feature request on your behalf. You can find 
> relevant updates on the Ads Developer blog 
> <https://ads-developers.googleblog.com/search/label/google_ads_api>.
>
> Regards,
> Matt
> Google Ads API Team
>
>
> Reminder: Share your feedback about the Google Ads (AdWords) API! Take the 
> 2021 
> Google Ads API and AdWords API Annual Survey 
> <https://google.qualtrics.com/jfe/form/SV_eQbOpf4VxRyyqqO?source=so>
>   
> [image: Google Logo] 
> Matt 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q2QF11C: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/0953ff8a-befd-47fd-958e-8a4f7f61a306n%40googlegroups.com.


Re: Ads API Metrics unavailable at Geo level- TopImpressionPercentage, AbsoluteTopImpressionPercentage

2021-12-13 Thread Jean-Fabrice Rabaute
Hi,

I'm also migrating the metrics TopImpressionPercentage and 
AbsoluteTopImpressionPercentage from an AWQL query using the 
table ACCOUNT_PERFORMANCE_REPORT.
It fails because the new fields are not allowed with "customer".
Is it something that is going to be migrated as well before the Adwords API 
is removed?

Thank you.


Le mercredi 27 octobre 2021 à 00:19:17 UTC-7, adsapi a écrit :

> Hi Akshay,
>
> Thank you for providing more details to your concern. I am also a member 
> of the Google Ads API team and let me provide support to your concern.
>
> I am afraid that our team doesn't have a definite timeline on 
> when segmenting of the said metrics at geo level will be supported in the 
> Google Ads API. With this, I would suggest to keep an eye on our blog 
>  as we 
> will post there relevant updates when become supported.
>
> As for your question if there is another alternative to pull similar 
> report in an automated way, I would suggest to reach out to the product 
> team via this link  to 
> know if there is another way except in Google Ads API.
>
> Regards,
> [image: Google Logo] 
> Ernie John Blanca Tacata 
> Google Ads API Team 
>   
>
> ref:_00D1U1174p._5004Q2QF11C: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/845eeb56-1fc5-471d-94d8-673b22f74b86n%40googlegroups.com.


Re: Get a list of all the accounts that is accessible by the MCC account which my user has access to.

2019-06-12 Thread Jean-Fabrice Rabaute
Sorry, to make it a bit more explicit, this still generates N queries 
instead of one. In the previous API, one query was returning everything.
Here, one query per customer is needed, and when there are 1000 accounts 
under an MCC account, it takes several minutes to get back all the 
information, and it was taking several seconds only using the old API.

Le mercredi 12 juin 2019 16:11:29 UTC-7, Jean-Fabrice Rabaute a écrit :
>
> A lot of people are asking about the same thing, because the "search" api 
> does not work. The select does not return the information needed by clients 
> usually.
> Data is missing and a subsequent call for each customer is needed to get 
> more details.
> So this "solution" does not work in the real world.
>
> You can see here the list of questions related to this problem: 
> https://groups.google.com/forum/#!searchin/adwords-api/ListAccessibleCustomers|sort:date
>
> I've posted a similar question: 
> https://groups.google.com/forum/#!searchin/adwords-api/ListAccessibleCustomers|sort:date/adwords-api/1jHXnyuwqpE/sTbRy2DLAQAJ
>
> Hopefully the Ads team is solving this problem soon.
>
> Le mercredi 12 juin 2019 14:24:25 UTC-7, John a écrit :
>>
>> Hi cv,
>>
>> You should use search requests instead of get requests to retrieve 
>> information about all individual customers.
>> Search requests are not limited to 1000 requests per day and only count 
>> for the operation limit, which is unlimited for standard access.
>>
>> Search requests are not considered to be the same as get requests, even 
>>> though both are used to retrieve data. Therefore, search requests are only 
>>> subject to daily operation limits.
>>>
>>
>> https://developers.google.com/google-ads/api/docs/best-practices/quotas#search_requests
>>
>> In pseudo-code:
>>
>> accessibleCustomers = Customer.ListAccessibleCustomers()
>> for(customer in accessibleCustomers) {
>>   id = extractIdFromResourceName(customer)
>>   customer_clients = GoogleAdsService.Search(id, 'SELECT 
>> customer_client.client_customer FROM customer_client')
>>   for(customer_client in customer_clients) {
>> client_id = extractIdFromResourceName(customer_client.client_customer)
>> GoogleAdsService.Search(client_id, 'SELECT customer.id, 
>> customer.descriptive_name FROM customer')
>>   }
>> }
>>
>>
>> On Monday, May 27, 2019 at 2:42:14 PM UTC+2, cv wrote:
>>>
>>> Hi Dannison,
>>>
>>> I am doing operations with  Standard Access 
>>> <https://developers.google.com/google-ads/api/docs/access-levels#standard_access>
>>>  developer 
>>> token.
>>> I am doing best practise as well ( I mentioned that I am doing a 
>>> pagination size of 20 records with delay of 5 seconds on each page 
>>> request), but the operation demand requires those limit, which is uncommon.
>>>
>>> We can get all customers Info with 1 API call in Adwords API but here we 
>>> required as many api calls as no of accounts.
>>>
>>> error which I was getting
>>> Status code: 8
>>>
>>> "status": "RESOURCE_EXHAUSTED",
>>>
>>> Details: Quota exceeded for quota metric '
>>> googleads.googleapis.com/get_requests' and limit 
>>> 'GetsPerMinutePerProject' of service 'googleads.googleapis.com' for 
>>> consumer 'project_number:64XX109'.
>>> Failure: {} 
>>>
>>>
>>>
>>> Thanks,
>>>
>>>
>>> On Monday, 27 May 2019 15:15:30 UTC+5:30, adsapiforumadvisor wrote:
>>>>
>>>> Hi,
>>>>
>>>> My apologies for the complications you may be encountering. 
>>>> The RESOURCE_EXHAUSTED error does not provide a retryAfterSeconds value. 
>>>> The reason you are encountering this is when you are hitting the Daily 
>>>> API operation limits 
>>>> <https://developers.google.com/google-ads/api/docs/best-practices/quotas#daily_api_operation_limits>
>>>>  
>>>> or the Get requests 
>>>> <https://developers.google.com/google-ads/api/docs/best-practices/quotas#get_requests>
>>>>  count. 
>>>> You may consider applying for Standard Access 
>>>> <https://developers.google.com/google-ads/api/docs/access-levels#standard_access>
>>>>  
>>>> developer token or implement the best practices 
>>>> <https://developers.google.com/google-ads/api/docs/best-practices/rate-limits#rate_limits>
>>>>  
>>>> to decrease

Re: Get a list of all the accounts that is accessible by the MCC account which my user has access to.

2019-06-12 Thread Jean-Fabrice Rabaute
A lot of people are asking about the same thing, because the "search" api 
does not work. The select does not return the information needed by clients 
usually.
Data is missing and a subsequent call for each customer is needed to get 
more details.
So this "solution" does not work in the real world.

You can see here the list of questions related to this 
problem: 
https://groups.google.com/forum/#!searchin/adwords-api/ListAccessibleCustomers|sort:date

I've posted a similar 
question: 
https://groups.google.com/forum/#!searchin/adwords-api/ListAccessibleCustomers|sort:date/adwords-api/1jHXnyuwqpE/sTbRy2DLAQAJ

Hopefully the Ads team is solving this problem soon.

Le mercredi 12 juin 2019 14:24:25 UTC-7, John a écrit :
>
> Hi cv,
>
> You should use search requests instead of get requests to retrieve 
> information about all individual customers.
> Search requests are not limited to 1000 requests per day and only count 
> for the operation limit, which is unlimited for standard access.
>
> Search requests are not considered to be the same as get requests, even 
>> though both are used to retrieve data. Therefore, search requests are only 
>> subject to daily operation limits.
>>
>
> https://developers.google.com/google-ads/api/docs/best-practices/quotas#search_requests
>
> In pseudo-code:
>
> accessibleCustomers = Customer.ListAccessibleCustomers()
> for(customer in accessibleCustomers) {
>   id = extractIdFromResourceName(customer)
>   customer_clients = GoogleAdsService.Search(id, 'SELECT 
> customer_client.client_customer FROM customer_client')
>   for(customer_client in customer_clients) {
> client_id = extractIdFromResourceName(customer_client.client_customer)
> GoogleAdsService.Search(client_id, 'SELECT customer.id, 
> customer.descriptive_name FROM customer')
>   }
> }
>
>
> On Monday, May 27, 2019 at 2:42:14 PM UTC+2, cv wrote:
>>
>> Hi Dannison,
>>
>> I am doing operations with  Standard Access 
>> 
>>  developer 
>> token.
>> I am doing best practise as well ( I mentioned that I am doing a 
>> pagination size of 20 records with delay of 5 seconds on each page 
>> request), but the operation demand requires those limit, which is uncommon.
>>
>> We can get all customers Info with 1 API call in Adwords API but here we 
>> required as many api calls as no of accounts.
>>
>> error which I was getting
>> Status code: 8
>>
>> "status": "RESOURCE_EXHAUSTED",
>>
>> Details: Quota exceeded for quota metric '
>> googleads.googleapis.com/get_requests' and limit 
>> 'GetsPerMinutePerProject' of service 'googleads.googleapis.com' for 
>> consumer 'project_number:64XX109'.
>> Failure: {} 
>>
>>
>>
>> Thanks,
>>
>>
>> On Monday, 27 May 2019 15:15:30 UTC+5:30, adsapiforumadvisor wrote:
>>>
>>> Hi,
>>>
>>> My apologies for the complications you may be encountering. 
>>> The RESOURCE_EXHAUSTED error does not provide a retryAfterSeconds value. 
>>> The reason you are encountering this is when you are hitting the Daily 
>>> API operation limits 
>>> 
>>>  
>>> or the Get requests 
>>> 
>>>  count. 
>>> You may consider applying for Standard Access 
>>> 
>>>  
>>> developer token or implement the best practices 
>>> 
>>>  
>>> to decrease the chance of encountering this error.
>>>
>>> Regards,
>>> Dannison
>>> Google Ads API Team
>>>
>>> ref:_00D1U1174p._5001UAqiuI: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/08835538-0f73-41eb-ac09-d57ad2cafd2d%40googlegroups.com.


Re: Any plan to fix the MCC accounts request in the new Ads API (=ListAccessibleCustomers+CustomerClient are NOT OK)

2019-05-30 Thread Jean-Fabrice Rabaute
Thank You!

Le jeudi 30 mai 2019 13:19:27 UTC-7, adsapiforumadvisor a écrit :
>
> Hello Jean,
>
> I understand your concern. I have updated my team regarding your concern, 
> I will update you once I have more information.
>
> Regards,
> Sai Teja, Google Ads API Team
>  
>
> ref:_00D1U1174p._5001UBfdL1: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/c59ebfbc-ef17-4168-bad6-fd77aa5db278%40googlegroups.com.


Any plan to fix the MCC accounts request in the new Ads API (=ListAccessibleCustomers+CustomerClient are NOT OK)

2019-05-29 Thread Jean-Fabrice Rabaute
Hi,

As I'm trying to migrate from the old Adwords to the new Google Ads API, 
I'm facing the problem everyone else is facing:

There is no way to get the entire hierarchy of a MCC account directly, in 
one API call, like it was possible with ManagedCustomerService.get() with 
the old Adwords API.

I've read several post already about this problem (here 
 and 
here  
and here 
 and 
here , 
etc).

The answers provided by the google team are not addressing the problem.

There should be a single api call returning the hierarchy of the accounts. 
The customer_client query is NOT adressing this problem, as each entry is 
generating another api call to have some more details for the customer.
As soon as the MCC account is more than 10 account, it's just too slow and 
it's also hitting the rate limits and returning errors.

It's just not manageable from the client side.

Can you please add a new API endpoint, or GRPC method, or 
extend listAccessibleCustomers method, or change some queries, or whatever 
to return the entire hierarchy including the specific fields for each 
account like descriptive name, timezone, etc in only one api call like it 
is possible with the old API?

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/cffb0496-516d-451c-9a24-b3ca8f1e6376%40googlegroups.com.


Re: Huge latency when querying GEO_PERFORMANCE_REPORT

2019-02-03 Thread Jean-Fabrice Rabaute
Hi Bharani,

I sent you a private message with the account ID I've used to generate the 
problem with the awql query. It fails all the time using this query.
I don't think there is more traffic on this account thatn in 2018, so that 
is really strange that it's starting to fail right now.

Please keep the thread posted about your findings.

Thanks.

Le dimanche 3 février 2019 10:43:37 UTC-8, Jean-Fabrice Rabaute a écrit :
>
> Hi,
>
> We are seeing the same high latency errors, started 24 hours ago.
> It seems to happen on the GEO_PERFORMANCE_REPORT table.
>
> I can reproduce the timeout all the time by running this query on some of 
> the accounts I have access to:
>
> --
> select
> CityCriteriaId, Clicks, Impressions, Cost, CountryCriteriaId
> from GEO_PERFORMANCE_REPORT
> during LAST_MONTH
> --
>
> Using LAST_7_DAYS works fine (it takes around 2 seconds to get back the 
> answer).
> Using LAST_30_DAYS works fine (it takes around 2 seconds to get back the 
> answer).
>
> Using LAST_MONTH hangs and returns an error (I'm using the official PHP 
> library).
>
> Using the adwords UI directly, I see the same problem (by selecting last 
> month for the report). It hangs...
>
> (tested with the https://www.awql.me service for the awql queries).
>
> Our code hasn't changed on our side, and all the other queries are working 
> correctly.
>
> Please can you confirm there are problems on your side?
>
> Thank you.
>
> Le dimanche 3 février 2019 04:52:42 UTC-8, Luis a écrit :
>>
>> Hi Bharani,
>>
>> We are sorry to insist, but this is issue has started to damage our 
>> reputation. Many of our customers are complaining about it, and even a 
>> couple of them have decided to switch to a different reporting tool.
>>
>> We decided to set the ReportDownloadedTimeout to 5 minutes, a more than 
>> reasonable value to have a simple query for a short date range completed. 
>> However in the last 2 days we have seen hundreds of timeouts for the 
>> following basic query:
>>
>> https://adwords.google.com/api/adwords/cm/v201809;>
>> 
>> Country/Territory
>> Impressions
>> Clicks
>> Cost
>> 
>> GEO_PERFORMANCE_REPORT
>> GEO_PERFORMANCE_REPORT
>> LAST_MONTH
>> CSV
>> 
>>
>> The strange thing is that this query is just one of many queries in a 
>> report for the same ad account, including multiple levels like account, 
>> campaign, ad group, ads, keywords and some other. For the rest of levels 
>> the queries are served almost instantaneously, and it only gets stuck for 
>> GEO_PERFORMANCE_REPORT, even though in many cases in the result set there 
>> is only one country.
>>
>> We have made some tests in local environments setting the 
>> ReportDownloadedTimeout to 10 minutes, and we kept on receiving timeouts.
>>
>> We are seeing this issue with many ad accounts, including the following 
>> ones: 8288984184,  
>> 7565976286, 1114516196, 3628262848, 8713160172, 5307407306, 5868186930, 
>> 1931259100, 8653251000, 7564793223, 4732128939, 3803450091, 5929009380, 
>> 2655252409, 3617905552, and 4189160692.
>>
>> Hope you can solve this issue very soon, as it is really impacting our 
>> business.
>>
>> Many thanks in advance,
>> Luis
>>
>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/cbeccd87-45e9-4422-ac88-ac65465f0669%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Huge latency when querying GEO_PERFORMANCE_REPORT

2019-02-03 Thread Jean-Fabrice Rabaute
Hi,

We are seeing the same high latency errors, started 24 hours ago.
It seems to happen on the GEO_PERFORMANCE_REPORT table.

I can reproduce the timeout all the time by running this query on some of 
the accounts I have access to:

--
select
CityCriteriaId, Clicks, Impressions, Cost, CountryCriteriaId
from GEO_PERFORMANCE_REPORT
during LAST_MONTH
--

Using LAST_7_DAYS works fine (it takes around 2 seconds to get back the 
answer).
Using LAST_30_DAYS works fine (it takes around 2 seconds to get back the 
answer).

Using LAST_MONTH hangs and returns an error (I'm using the official PHP 
library).

Using the adwords UI directly, I see the same problem (by selecting last 
month for the report). It hangs...

(tested with the https://www.awql.me service for the awql queries).

Our code hasn't changed on our side, and all the other queries are working 
correctly.

Please can you confirm there are problems on your side?

Thank you.

Le dimanche 3 février 2019 04:52:42 UTC-8, Luis a écrit :
>
> Hi Bharani,
>
> We are sorry to insist, but this is issue has started to damage our 
> reputation. Many of our customers are complaining about it, and even a 
> couple of them have decided to switch to a different reporting tool.
>
> We decided to set the ReportDownloadedTimeout to 5 minutes, a more than 
> reasonable value to have a simple query for a short date range completed. 
> However in the last 2 days we have seen hundreds of timeouts for the 
> following basic query:
>
> https://adwords.google.com/api/adwords/cm/v201809
> ">
> 
> Country/Territory
> Impressions
> Clicks
> Cost
> 
> GEO_PERFORMANCE_REPORT
> GEO_PERFORMANCE_REPORT
> LAST_MONTH
> CSV
> 
>
> The strange thing is that this query is just one of many queries in a 
> report for the same ad account, including multiple levels like account, 
> campaign, ad group, ads, keywords and some other. For the rest of levels 
> the queries are served almost instantaneously, and it only gets stuck for 
> GEO_PERFORMANCE_REPORT, even though in many cases in the result set there 
> is only one country.
>
> We have made some tests in local environments setting the 
> ReportDownloadedTimeout to 10 minutes, and we kept on receiving timeouts.
>
> We are seeing this issue with many ad accounts, including the following 
> ones: 8288984184,  
> 7565976286, 1114516196, 3628262848, 8713160172, 5307407306, 5868186930, 
> 1931259100, 8653251000, 7564793223, 4732128939, 3803450091, 5929009380, 
> 2655252409, 3617905552, and 4189160692.
>
> Hope you can solve this issue very soon, as it is really impacting our 
> business.
>
> Many thanks in advance,
> Luis
>
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/882d78d8-c762-4479-a26d-500b8425aafb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Migration version API error cannot use a string pattern on a bytes-like object

2018-06-11 Thread fabrice . boccaccini
Bonjour,

Nous utilisons la version v201710 de l'api Adwords.

Nous souhaitons passer à la version v201802 mais nous rencontrons un 
problème bloquant.

*Nous faisons :*

*service = client.GetService('**CustomerService**', version='v201802')*


*Puis nous faison:*

*accounts = service.getCustomers()*


*Et la nous avons cette erreur:*

*cannot use a string pattern on a bytes-like object'*


Cela fait plusieurs jours que je suis sur ce problème et je n'ai toujours pas 
trouvé de solution.


Dans l'attente de votre retour.


Cordialement.



-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API and Google Ads API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API and Google Ads API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/9379b7a6-5d3f-4802-b7a8-fb3448126b53%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Empty name for AdWords account

2018-02-18 Thread Jean-Fabrice Rabaute
Hi,

I'm using ManagedCustomerService to query account information.
It works well for most of the accounts, except for this one where the 
"name" field returned is null: 3874046656

The api does not return any error and returns the response with all the 
data, except for this "name" field for this particular account.

Any idea what could be wrong with this adwords account?

Thank you.

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords 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 Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/af3d4a69-9a3b-47f9-9f95-630d512d1869%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: PHP pass credentials dynamically (not through adsapi_php.ini)

2018-02-02 Thread Jean-Fabrice Rabaute
>From what I understand this wouldn't work.

I see the following problem with getOrFetchAccessToken in a distributed 
environment:

Let's say I have two servers with the php code answering requests from 
clients, server A and server B.

Those two servers can receive a request at the same time. As they are 
isolated if getOrFetchAccessToken needs to refresh the token, each server 
will refresh the token and get an access_token.
This should not happen and the "refresh token" task should be synced (with 
a distributed lock system like redis/zk/etcd) between servers so only one 
is actually refreshing the token, updating the db or cache and the other 
ones are getting the new value from the updated cache.
This is all app dependent (well, more client infra-dependent stuff) so the 
googleads-php-lib cannot/shouldn't deal with this and it should just 
provide the necessary hooks so the app can take care of this.
This is what I'm doing with the custom FetchAuthTokenInterface 
implementation I have.

Note about "shouldFetchAccessToken". Calling "shouldFetchAccessToken" does 
not help even within the same request.
I can call "shouldFetchAccessToken" and it will return false and the next 
call will return "true".
It means that when calling getOrFetchAccessToken I don't know if the value 
returned is the "cached" one (whatever that means as cache should be done 
by the app anyways) or a refreshed one, so I wouldn't know when to save it 
(well, I could compare with the one I had previously that would work). But 
then, getOrFetchAccessToken has the problem described initially.

I hope it makes sense.

Thanks.

Le vendredi 2 février 2018 10:06:33 UTC-8, Thanet Knack Praneenararat 
(AdWords API Team) a écrit :
>
> Hello,
>
> Looking into this again, isn't the getOrFetchAccessToken 
> <https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2Fgoogleads%2Fgoogleads-php-lib%2Fblob%2F4308d6b03f7ded643fe78b0f2ae0dfa416a62f3e%2Fsrc%2FGoogle%2FAdsApi%2FCommon%2FUtil%2FOAuth2TokenRefresher.php%23L58=D=1=AFQjCNFAao3Ud-4BIWdqSIZl8hebE8X7mA>
>  
> method in OAuth2TokenRefresher similar to what you need?
> It can fetch a new access token when needed but will just return the 
> existing one if it's not expired yet.
>
> Best,
> Thanet, AdWords API Team
>
> On Thursday, February 1, 2018 at 9:05:45 PM UTC-8, Jean-Fabrice Rabaute 
> wrote:
>>
>> Hi,
>>
>> Sorry for the delay.
>>
>> I solved my problem by implementing "FetchAuthTokenInterface" interface 
>> and passing my implementation to 
>> "AdWordsSessionBuilder::withOAuth2Credential".
>> The token refresh is now handled by my object and I can synchronize and 
>> use my custom caching as well the way I want.
>>
>> I don't know if this is the correct way to do it or if there is a more 
>> "official" way to do so.
>>
>> Thanks.
>>
>> Le mardi 9 janvier 2018 07:53:29 UTC-8, Thanet Knack Praneenararat 
>> (AdWords API Team) a écrit :
>>>
>>> Hello Jean,
>>>
>>> Nice to meet you. I'm an owner of the googleads-php-lib.
>>> I'm still following up all your conversation with my colleagues but from 
>>> what you said in this thread,
>>>
>>> The google/google-auth-library-php (which is used by the adwords 
>>>> library) seem to have the same problem (The app is unable to 
>>>> get/cache/manage the access_token in an easy way).
>>>
>>>
>>> Have you confirmed with the owner of that library already?
>>> And as you clearly see through this, as the *googleads-php-lib* depends 
>>> on the *google-auth-library-php* library, if that library really 
>>> doesn't support what you want, I'm afraid our library doesn't support it as 
>>> well.
>>>
>>> I'll come back when I finish following up all the conversations.
>>>
>>> Best,
>>> Thanet, AdWords API Team
>>>
>>> On Monday, January 8, 2018 at 3:44:44 AM UTC+9, Jean-Fabrice Rabaute 
>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I'm working on migrating from the old api to the new one and I don't 
>>>> understand how to reuse the "access_token".
>>>>
>>>> When using OAuth2TokenBuilder and AdWordsSessionBuilder, I can set the 
>>>> "refresh_token" but not the "access_token".
>>>> If I understand correctly, setting only the refresh_token will force to 
>>>> get a new access_token everytime I create a new instance of 
>>>> OAuth2TokenBuilder (which is instantiating a UserRefreshCredentials object 
>>>> when the ->build() m

Re: PHP pass credentials dynamically (not through adsapi_php.ini)

2018-02-01 Thread Jean-Fabrice Rabaute
Hi,

Sorry for the delay.

I solved my problem by implementing "FetchAuthTokenInterface" interface and 
passing my implementation to "AdWordsSessionBuilder::withOAuth2Credential".
The token refresh is now handled by my object and I can synchronize and use 
my custom caching as well the way I want.

I don't know if this is the correct way to do it or if there is a more 
"official" way to do so.

Thanks.

Le mardi 9 janvier 2018 07:53:29 UTC-8, Thanet Knack Praneenararat (AdWords 
API Team) a écrit :
>
> Hello Jean,
>
> Nice to meet you. I'm an owner of the googleads-php-lib.
> I'm still following up all your conversation with my colleagues but from 
> what you said in this thread,
>
> The google/google-auth-library-php (which is used by the adwords library) 
>> seem to have the same problem (The app is unable to get/cache/manage the 
>> access_token in an easy way).
>
>
> Have you confirmed with the owner of that library already?
> And as you clearly see through this, as the *googleads-php-lib* depends 
> on the *google-auth-library-php* library, if that library really doesn't 
> support what you want, I'm afraid our library doesn't support it as well.
>
> I'll come back when I finish following up all the conversations.
>
> Best,
> Thanet, AdWords API Team
>
> On Monday, January 8, 2018 at 3:44:44 AM UTC+9, Jean-Fabrice Rabaute wrote:
>>
>> Hi,
>>
>> I'm working on migrating from the old api to the new one and I don't 
>> understand how to reuse the "access_token".
>>
>> When using OAuth2TokenBuilder and AdWordsSessionBuilder, I can set the 
>> "refresh_token" but not the "access_token".
>> If I understand correctly, setting only the refresh_token will force to 
>> get a new access_token everytime I create a new instance of 
>> OAuth2TokenBuilder (which is instantiating a UserRefreshCredentials object 
>> when the ->build() method is called in my case).
>> This probably works (not sure there might be race condition with multiple 
>> requests in // and then one access_token might be invalid), but this means 
>> that an access_token will be fetched everytime, so two http requests 
>> instead of one.
>> When I have an access_token which is valid for 3600 seconds, I'd like to 
>> be able to reuse it for the valid period, but I can't as there is no method 
>> in OAuth2TokenBuilder nor UserRefreshCredentials to set the "access_token" 
>> when I instantiate my objects on new client http requests.
>>
>> In your response, you say "The first section builds OAuth2 access token 
>> fetchers, which will get access tokens as and when required". But how can 
>> this happen if the access_token is not provided? As it is not provided, a 
>> new http request needs to be done to get one before doing the adwords api 
>> request, right?
>>
>> In the old API, passing the "refresh_token" AND "access_token" was done 
>> when instantiating the AdwordsUser object (here: 
>> https://github.com/googleads/googleads-php-lib/blob/deprecated/src/Google/Api/Ads/AdWords/Lib/AdWordsUser.php#L92
>>  
>> ). It was then possible to reuse an existing and still active 
>> "access_token".
>> Now, I really can't see how to reuse an existing "access_token" with the 
>> new api, only the "refresh_token".
>>
>> Am I missing something?
>>
>> Thank you for any help/feedback.
>>
>> PS: My next problem is to detect that those object are effectively 
>> refreshing the access_token because I'd like to update/save/cache the new 
>> one to be able to reuse it again for the active time period (usually one 
>> hour). That will probably be my next question. The new api seem very weird 
>> in this regard. The google/google-auth-library-php (which is used by the 
>> adwords library) seem to have the same problem (The app is unable to 
>> get/cache/manage the access_token in an easy way).
>>
>> Le lundi 28 août 2017 09:31:27 UTC-7, Shwetha Vastrad (AdWords API Team) 
>> a écrit :
>>>
>>> Hi Tim, 
>>>
>>> You need to use OAuth2TokenBuilder 
>>> <https://github.com/googleads/googleads-php-lib/blob/master/src/Google/AdsApi/Common/OAuth2TokenBuilder.php#L67>
>>>  
>>> and AdWordsSessionBuilder 
>>> <https://github.com/googleads/googleads-php-lib/blob/master/src/Google/AdsApi/AdWords/AdWordsSessionBuilder.php#L104>
>>>  
>>> to pass the values programmatically. 
>>>
>>> $oAuth2Credential = (new OAuth2TokenBuilder())
>>>   ->

Re: PHP pass credentials dynamically (not through adsapi_php.ini)

2018-01-07 Thread Jean-Fabrice Rabaute
Hi Vincent,

Thank you for your answer.
I have added more questions inline.
For info, I'm using the public google adwords php library 
.

Le dimanche 7 janvier 2018 21:00:59 UTC-8, Vincent Racaza (AdWords API 
Team) a écrit :
>
> Hi Jean,
>
> If you are using our client libraries, you don't need to manually set the 
> access token in your request as the library itself is generating an access 
> token in the background using your refresh token. 
>

What does "generating" means here? I've tried, and in my case, it means an 
http request to get a new access token. It means that it's slow because 
almost every query to the adwords api is from a newly instantiated 
AdwordsSessionBuilder so there is no access token. So every time my web app 
is getting a client call and instantiating the object, and querying adwords 
api on behalft of the client, two synchronous calls will be done: one to 
get a valid access token, one for the real query.


 

> If your access token is about to expire or has already expired, the client 
> library will automatically generate a new access token using the refresh 
> token.
>
> About setting or reusing the access token, this is already incorporated in 
> the client libraries, and you don't need to do this manually. 
>

How can the library do this when it does not know anything about the 
environment it's working on? When a system is distributed (having multiple 
instances of the web app running on different machines and load-balanced), 
how can the php library itself share and synchronize a common resource 
between the instances?

The Google Adwords doc is talking about this problem 
here: 
https://developers.google.com/adwords/api/docs/guides/authentication#optimizing_oauth2_requests

It seems pretty clear to me that it's the application responsibility to 
cache/share/synchronize the token on a distributed app design.

Am I missing something? If so, can you point me to the code in the adwords 
php library which takes care of caching the access_token on distributed 
environments?
 

> There is also no method currently that would manually set the access token 
> in your request. If you want to reuse your access token for your separate 
> requests, then you can use the refresh token instead as this is linked to 
> your access token at a time.
>

Yes, that works, but it's means adding a preliminary http request every 
time, which is not optimal.
 

>
> Also, if you are not using our client libraries, you can refer to the 
> generic OAuth2 guide 
> . The guide 
> provides a step by step instructions on how to authenticate via the 
> authentication type of your choice. For example, if you will be 
> authenticating via the "Installed application" type 
> , it 
> provides the whole steps on how to generate the refresh and access tokens 
> and how to call an API method 
> 
>  via 
> HTTP or CURL request.
>
> If you have further clarifications on this, I suggest that you create a 
> new forum thread so we can better track your concern.
>
> Thanks,
>

Thanks.
 

> Vincent
> AdWords API Team
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords 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 Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/f0cf700d-5e78-4c5d-9cc6-9ada6ce4c075%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: PHP pass credentials dynamically (not through adsapi_php.ini)

2018-01-07 Thread Jean-Fabrice Rabaute
This github issue seems related to the problem I 
have: https://github.com/googleads/googleads-php-lib/issues/180

The answer seems to imply that an OAuth2 object should be instantiated and 
not use the OAuth2TokenBuilder (There is a way to set access_token 
with OAuth2 but not with OAuth2TokenBuilder). But still, the app has no way 
to synchronize the access_token refresh part, which is important in a 
distributed system as multiple instances of php on different servers can 
refresh the access token at the same time and I'd like to have a way to 
synchronize the refresh here. (My app was taking care of this before, using 
a redis distributed lock mechanism so I was in control of refreshing and 
updating/saving the new access_token).

I'm wondering if having my own object implementing the 
"FetchAuthTokenInterface" is the solution here. This seems a bit complex 
but maybe this is the way to go?

Thanks.

Le dimanche 7 janvier 2018 10:44:44 UTC-8, Jean-Fabrice Rabaute a écrit :
>
> Hi,
>
> I'm working on migrating from the old api to the new one and I don't 
> understand how to reuse the "access_token".
>
> When using OAuth2TokenBuilder and AdWordsSessionBuilder, I can set the 
> "refresh_token" but not the "access_token".
> If I understand correctly, setting only the refresh_token will force to 
> get a new access_token everytime I create a new instance of 
> OAuth2TokenBuilder (which is instantiating a UserRefreshCredentials object 
> when the ->build() method is called in my case).
> This probably works (not sure there might be race condition with multiple 
> requests in // and then one access_token might be invalid), but this means 
> that an access_token will be fetched everytime, so two http requests 
> instead of one.
> When I have an access_token which is valid for 3600 seconds, I'd like to 
> be able to reuse it for the valid period, but I can't as there is no method 
> in OAuth2TokenBuilder nor UserRefreshCredentials to set the "access_token" 
> when I instantiate my objects on new client http requests.
>
> In your response, you say "The first section builds OAuth2 access token 
> fetchers, which will get access tokens as and when required". But how can 
> this happen if the access_token is not provided? As it is not provided, a 
> new http request needs to be done to get one before doing the adwords api 
> request, right?
>
> In the old API, passing the "refresh_token" AND "access_token" was done 
> when instantiating the AdwordsUser object (here: 
> https://github.com/googleads/googleads-php-lib/blob/deprecated/src/Google/Api/Ads/AdWords/Lib/AdWordsUser.php#L92
>  
> ). It was then possible to reuse an existing and still active 
> "access_token".
> Now, I really can't see how to reuse an existing "access_token" with the 
> new api, only the "refresh_token".
>
> Am I missing something?
>
> Thank you for any help/feedback.
>
> PS: My next problem is to detect that those object are effectively 
> refreshing the access_token because I'd like to update/save/cache the new 
> one to be able to reuse it again for the active time period (usually one 
> hour). That will probably be my next question. The new api seem very weird 
> in this regard. The google/google-auth-library-php (which is used by the 
> adwords library) seem to have the same problem (The app is unable to 
> get/cache/manage the access_token in an easy way).
>
> Le lundi 28 août 2017 09:31:27 UTC-7, Shwetha Vastrad (AdWords API Team) a 
> écrit :
>>
>> Hi Tim, 
>>
>> You need to use OAuth2TokenBuilder 
>> <https://github.com/googleads/googleads-php-lib/blob/master/src/Google/AdsApi/Common/OAuth2TokenBuilder.php#L67>
>>  
>> and AdWordsSessionBuilder 
>> <https://github.com/googleads/googleads-php-lib/blob/master/src/Google/AdsApi/AdWords/AdWordsSessionBuilder.php#L104>
>>  
>> to pass the values programmatically. 
>>
>> $oAuth2Credential = (new OAuth2TokenBuilder())
>>   ->withClientId("OAUTH_2_CLIENT_ID")
>>   ->withClientSecret("OAUTH_2_CLIENT_SECRET")
>>   ->withRefreshToken("REFRESH_TOKEN")
>>   ->build();
>>
>> // Construct an API session configured from the OAuth2 credentials 
>> above.
>> $session = (new AdWordsSessionBuilder())
>> ->withDeveloperToken("DEVELOPER_TOKEN")
>> ->withOAuth2Credential($oAuth2Credential)
>> ->withClientCustomerId("CLIENT_CUSTOMER_ID")
>> ->build();
>>
>>
>> The first section builds OAuth2 access token fetchers, which will get 
>> a

Re: PHP pass credentials dynamically (not through adsapi_php.ini)

2018-01-07 Thread Jean-Fabrice Rabaute
Hi,

I'm working on migrating from the old api to the new one and I don't 
understand how to reuse the "access_token".

When using OAuth2TokenBuilder and AdWordsSessionBuilder, I can set the 
"refresh_token" but not the "access_token".
If I understand correctly, setting only the refresh_token will force to get 
a new access_token everytime I create a new instance of OAuth2TokenBuilder 
(which is instantiating a UserRefreshCredentials object when the ->build() 
method is called in my case).
This probably works (not sure there might be race condition with multiple 
requests in // and then one access_token might be invalid), but this means 
that an access_token will be fetched everytime, so two http requests 
instead of one.
When I have an access_token which is valid for 3600 seconds, I'd like to be 
able to reuse it for the valid period, but I can't as there is no method in 
OAuth2TokenBuilder nor UserRefreshCredentials to set the "access_token" 
when I instantiate my objects on new client http requests.

In your response, you say "The first section builds OAuth2 access token 
fetchers, which will get access tokens as and when required". But how can 
this happen if the access_token is not provided? As it is not provided, a 
new http request needs to be done to get one before doing the adwords api 
request, right?

In the old API, passing the "refresh_token" AND "access_token" was done 
when instantiating the AdwordsUser object 
(here: 
https://github.com/googleads/googleads-php-lib/blob/deprecated/src/Google/Api/Ads/AdWords/Lib/AdWordsUser.php#L92
 
). It was then possible to reuse an existing and still active 
"access_token".
Now, I really can't see how to reuse an existing "access_token" with the 
new api, only the "refresh_token".

Am I missing something?

Thank you for any help/feedback.

PS: My next problem is to detect that those object are effectively 
refreshing the access_token because I'd like to update/save/cache the new 
one to be able to reuse it again for the active time period (usually one 
hour). That will probably be my next question. The new api seem very weird 
in this regard. The google/google-auth-library-php (which is used by the 
adwords library) seem to have the same problem (The app is unable to 
get/cache/manage the access_token in an easy way).

Le lundi 28 août 2017 09:31:27 UTC-7, Shwetha Vastrad (AdWords API Team) a 
écrit :
>
> Hi Tim, 
>
> You need to use OAuth2TokenBuilder 
> 
>  
> and AdWordsSessionBuilder 
> 
>  
> to pass the values programmatically. 
>
> $oAuth2Credential = (new OAuth2TokenBuilder())
>   ->withClientId("OAUTH_2_CLIENT_ID")
>   ->withClientSecret("OAUTH_2_CLIENT_SECRET")
>   ->withRefreshToken("REFRESH_TOKEN")
>   ->build();
>
> // Construct an API session configured from the OAuth2 credentials 
> above.
> $session = (new AdWordsSessionBuilder())
> ->withDeveloperToken("DEVELOPER_TOKEN")
> ->withOAuth2Credential($oAuth2Credential)
> ->withClientCustomerId("CLIENT_CUSTOMER_ID")
> ->build();
>
>
> The first section builds OAuth2 access token fetchers, which will get 
> access tokens as and when required. You need to use the oAuth2Credential 
> object when you build a AdsSession in the PHP client library. I hope this 
> helps. If you have any further questions, I would suggest that you post on 
> the library's issue tracker 
>  so the library 
> owners can help you out. 
>
> Regards,
> Shwetha, AdWords API Team.
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords 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 Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/c5e155e6-6748-421e-8e80-0486e732c701%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: How to recover all accounts MCC?

2017-09-28 Thread fabrice . boccaccini
Hi

I'm not looking to have all accounts linked to an mcc account but to have 
all mcc accounts linked to an adwords account.



I want to have this list . (picture)

Cordially.


Le mercredi 27 septembre 2017 17:10:54 UTC+2, Shwetha Vastrad (AdWords API 
Team) a écrit :
>
> Hi, 
>
> Are you looking to get all the accounts linked to an AdWords MCC account? 
> If so, you need to use ManagedCustomerService.get() 
> 
>  method 
> as shown in the get_account_hierarchy.py 
> 
>  example. 
> Please note that you need to set the clientCustomerId in the request to the 
> AdWords MCC ID. 
>
> Regards,
> Shwetha, AdWords API Team.
>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords 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 Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/0d8a8b92-8a58-4fb9-980b-286031fd152f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


How to recover all accounts MCC?

2017-09-27 Thread fabrice . boccaccini


How to recover all accounts MCC?


I have been looking for a few days on google but I find nothing.

I would like to retrieve all accounts manager from an adwords account.

For the moment I only get the first one.

I have seen : 
https://developers.google.com/adwords/api/docs/samples/python/account-management

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords 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 Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/4f76a426-8fc4-4633-b353-2df77401eb3d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


How to recover all accounts MCC?

2017-09-27 Thread fabrice . boccaccini


How to recover all accounts MCC?


I have been looking for a few days on google but I find nothing.

I would like to retrieve all accounts manager from an adwords account.

For the moment I only get the first one.

I have seen : 
https://developers.google.com/adwords/api/docs/samples/python/account-management

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords 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 Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at https://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/d848b4e2-dd36-4b1f-a9cb-ef6e3da19f1d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: ReportDefinition Cost field format change?

2014-07-07 Thread Jean-Fabrice Rabaute
The money fields are returned in micro starting with v201402 API:

https://developers.google.com/adwords/api/docs/guides/reporting-concepts?hl=lt 
(see section Money fields in reports)

Starting with v201402, fields of type Money are returned in micro currency 
units (micros) by default, e.g.: $1.23 will come back as 123 (1.23 x 
1,000,000). The header value that determines whether money fields are 
returned in micros or whole dollar (1.23) currency units is 
returnMoneyInMicros; setting this to true (default) selects micros. Micro 
amounts always refer to the account's local currency.


Hope this helps.

Cheers.

--
Fabrice.
https://www.sunnyreports.com/

Le samedi 5 juillet 2014 18:59:29 UTC-7, stiggywigget a écrit :

 Cost field is a decimal value 7.44 in XML format for API v201309 (PHP)
 Cost field is a integer value 744 in XML format for API v201402 (PHP)

 I haven't found an explanation for this change.

 TIA.


-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups AdWords 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 Forum group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


AWQL.me, a free tool to write AWQL queries easily

2014-05-14 Thread fabrice
Hi,

A couple of weeks ago, we have released a free tool allowing people to 
write and test very easily AWQL queries.

With AWQL.me, you can now test your queries and see the result in one 
click. AWQL becomes easier with auto completion and contextual help 
messages as you type, giving you information about the AWQL syntax. It's 
also easy to find table and field names.

You just have to type your AWQL request in the console and click. Data is 
retrieved via the API and available in a table. You can sort by columns or 
search.

We quickly added a feature to export the data in CSV or XML.

We recently added an extensive AWQL help that allows to search in all 
tables and fields in a snap.

It's completely free and safe, so have fun with AWQL.me. 

We are eager to hear your feedback at he...@awql.me or 
fabr...@sunnyreports.com. You can send us your AWQL tips and we will share 
them in the help.

Have fun,

Fabrice,
www.AWQL.me

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups AdWords 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 Forum group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.