Re: Weird behaviors in our Google Sandbox account

2018-02-02 Thread 'Milind Sankeshware (AdWords API Team)' via AdWords API Forum
Hi Han,

Yes, you can only have 100 accounts in the hierarchy of a test manager 
account. You can perform a ManagedCustomerService.get() 

 request 
for the top-level MCC and check the totalNumEntries 

 to 
get the total number of AdWords accounts in this hierarchy. Could you 
please confirm you have unlink the account successfully? You could use 
ManagedCustomerService.mutateLink() 

 method 
and set the LinkStatus 

 to 
INACTIVE to unlink an account. Please check this guide 

 for 
more information.

Thanks,
Milind, 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/53c02e39-bac4-4876-a544-de957d484553%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Some keywords get no results from TargetingIdeaService

2018-02-02 Thread 'Nadine Sundquist (AdWords API Team)' via AdWords API Forum
Greetings AdWordsians,

I have wonderful news! Things should now be working as expected where the 
results from the UI should now match the results from the API. If you 
experience any more issue with this, please get back to me.

Thanks,
Nadine, AdWords API Team

On Thursday, January 11, 2018 at 9:37:17 AM UTC-5, Nadine Sundquist 
(AdWords API Team) wrote:
>
> Hello AdWordsians,
>
> My apologies for not posting back here on the progress. This is a general 
> ongoing issue where there are words or phrases that are returning stats in 
> the UI, but not through the API. There appears to be a stricter filter that 
> causes certain phrases to not show up in the API. I am actively working 
> with the rest of my team in trying to find the exact source of the issue 
> that is causing this. I'll post back here when we have more information. 
>
> Regards,
> Nadine, AdWords API Team
>
> On Thursday, January 11, 2018 at 2:41:51 AM UTC-5, Aviv Oron wrote:
>>
>> Nope :(
>> Im still waiting for an update from adwords API team, i was told the 
>> issue was passed to engineering...
>>
>> On Thursday, January 11, 2018 at 12:55:25 AM UTC+2, Andres Tobar wrote:
>>>
>>> Hi Aviv,
>>>
>>> Were you able to get this issue resolved? I'm having the same exact 
>>> issue with my setup at the moment.
>>>
>>> Thanks,
>>> Andres
>>>
>>> On Thursday, December 28, 2017 at 12:32:19 PM UTC-5, Aviv Oron wrote:

 Hey, 

 Im trying to get keyword stats data using TargetingIdeaService.
 For some keywords, the response is empty! (totalNumEntries=0)
 For example, for the keyword "bullfight" ill get an empty page, and for 
 keyword "catfight" ill get proper results.
 Those keywords I'm failing to get results for, DO have data when I'm 
 querying the web client!

 This is how i build the selector:

 selector = {
 'searchParameters': [
 {
 'xsi_type': 'RelatedToQuerySearchParameter',
 'queries': ['bullfight']
 },
 {
 'xsi_type': 'NetworkSearchParameter',
 'networkSetting': {
 'targetGoogleSearch': True,
 'targetSearchNetwork': False,
 'targetContentNetwork': False,
 'targetPartnerSearchNetwork': False
 }
 }
 ],
 'ideaType': 'KEYWORD',
 'requestType': 'STATS',
 'requestedAttributeTypes': [
 'COMPETITION', 'AVERAGE_CPC', 'KEYWORD_TEXT', 'SEARCH_VOLUME'
 ],
 'paging': {
 'startIndex': '0',
 'numberResults': '100'
 }
 }



 Hope someone can help with this issue :)
 Thanks!
 Aviv

>>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/6cac3475-e1af-4ae2-abdc-51cd6ea93d67%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 
> 
>  
> 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() 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 

Re: AuthenticationError.NOT_ADS_USER

2018-02-02 Thread 'Dhanya Sundararaju (AdWords API Team)' via AdWords API Forum
Hi Travis,

The error that you received 'Client is unauthorized to retrieve access 
tokens using this method' implies that the service account needs to be 
authorized properly. This 

 guide 
will help you setup GSuite authorization for service accounts. However, do 
you actually need service account functionality, or could you simply use 
offline access as described in the alternative to service accounts 
section
 
of the guide. Either way, please let me know if you have further questions.

Regards,
Dhanya, 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/302ee35d-1426-4a91-b827-8ad27b7c1163%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: How to fix error of EntityCountLimitExceeded.ACCOUNT_LIMIT

2018-02-02 Thread 'Sreelakshmi Sasidharan (AdWords API Team)' via AdWords API Forum
Hi, 

It looks like the account against which you are making the mutate call has 
hit the limit on number of feed Items. Please check this guide 
 for more details 
about the AdWords system limits. Could you please share the client customer 
Id on which you are getting this error? If you have the SOAP logs, please 
share that too. You can *reply privately to author* while sharing the logs. 

Thanks,
Sreelakshmi, 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/07714e8c-1a7e-4550-b990-11d28560626a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: adgroup id,adgroup name,campaign id,campaign name in getkeywords api

2018-02-02 Thread 'Milind Sankeshware (AdWords API Team)' via AdWords API Forum
Hi Bhairavi,

The GetKeywords sample uses AdGroupCriterionService 
.
 
You will be able to get adGroup id from the AdGroupCriterionService.get() 

 API 
call. You can then retrieve adGroup name 

, campaign id  

and campaign name 

 using AdGroupService.get() 

 by 
filtering with the AdGroupId. You will need to specify the fields 
that
 
you wish to have in your API response in the selector. 

Let me know if have any further questions.

Thanks,
Milind, 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/5ee6df87-39de-4c5d-9fc2-4b5795fe4007%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 'Thanet Knack Praneenararat (AdWords API Team)' via AdWords API Forum
Hello,

Looking into this again, isn't the getOrFetchAccessToken 

 
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() 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())
   

Re: Some of the Location criteria Id can get but no location attached to same

2018-02-02 Thread 'Bharani Cherukuri (AdWords API Team)' via AdWords API Forum
Hello, 

Thank you for sharing the logs. You're right, we don't have the criterion 
Ids - location name mapping documented for those locations. The geotargeting 
table  
contains 
the criteria Ids of all locations that can be targeted using AdWords. Some 
countries/territories are not targetable in AdWords but may appear in 
reports/services based on the user's area of interest or physical 
location. These Ids could be associated with any of the 
countries/territories as specified here 

. 

Regards,
Bharani, 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/8e8325b4-8479-4fbe-8357-da06c4002dfb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: AuthenticationError.NOT_ADS_USER

2018-02-02 Thread Travis
Damn I've seriously looked through 100 threads related to this and finally 
found one that was helpful. The step I was missing was adding the 
`client_id` from the JSON key to the 'authorized client' list in 
admin.google.com, and also the `oauth2_prn` user to impersonate.

Now I have a new error though... 
`AuthorizationError.USER_PERMISSION_DENIED`. Am I supposed to use the 
global MCC account rather than my test MCC? (My dev token isnt approved 
yet). If I use my master MCC email for `oauth2_prn` I get the above error, 
but if I use my test MCC I made I get this error: `Client is unauthorized 
to retrieve access tokens using this method.`

Here is how I have it set up again:

- **Production** Google developer console (domain-enabled service account 
used for `oauth2_key`, `oauth2_issuer`)
- **Production** GSuite account (enable production service account access 
to `https://www.googleapis.com/auth/adwords`)
- **Production** MCC account (API key used for `developer_token`)
- **Test** MCC account (email for `oauth2_prn`)
- **Test** client account (customer id for `client_customer_id`)

They key takeaway is all this was under the production account. The only 
test stuff I created was MCC/client account (I didnt create a test google 
developer console service or API access or anything like that)

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/ee79149f-5a8e-41a4-ab1d-0137d300c0fb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Weird behaviors in our Google Sandbox account

2018-02-02 Thread Han Vo
Hi there,

We're testing new Account creation using one of our sandbox account (Which 
already had *100* accounts - which is the current limit according to Google 
doc). I believe that why we encoutered *TEST_ACCOUNT_LINK_ERROR* (which 
indicates "Error involving test accounts (mixed types) or too many child 
accounts.") response from your API. After moving around 7 accounts off to 
another sandbox account (through link-unlink process); now we're down to 
*93* accounts in this sandbox account. However we are still getting this 
*TEST_ACCOUNT_LINK_ERROR* error. Further more, I couldn't even create a new 
account though Google UI; and getting this error "*The manager cannot 
create more client accounts*". Please also confirm that *100* accounts is 
still the current limit. What should we be doing here to resolve this 
issue? 

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/08f97033-9880-41fd-9e21-16804422e947%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


adgroup id,adgroup name,campaign id,campaign name in getkeywords api

2018-02-02 Thread Bhairavi
Hi,

Can i get adgroup id,adgroup name,campaign id,campaign name from 
GetKeywords API in php?

Thanks ,
Bhairavi

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/726e8b71-4e07-4fef-b885-dbf4be8d9ec5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


How to fix error of EntityCountLimitExceeded.ACCOUNT_LIMIT

2018-02-02 Thread Vt Dev
Hi All,

I am having a problem with saving extensions for adgroup, Every time I call 
mutate operation by using 
$adgroupExtensionSettingService->mutate($operations); I got the error:

PHP Fatal error:  Uncaught exception 
'Google\AdsApi\AdWords\v201708\cm\ApiException' with message 
'[EntityCountLimitExceeded.ACCOUNT_LIMIT @ operations[0] 
(enclosingId=.., limit=500, 
accountLimitType=FEED_ITEMS_PER_ACCOUNT, existingCount=501)]'

I am using php lib of version v201708

As the error mentions it looks like we have more number of extension than 
google adwords permit so I checked the adwords account but I have less than 
500 like 10% only. So how it is possible that I am getting this error. 
Please provide more details about this issue so I can debug it properly.

Thanks in advance,

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/fb6d4272-4478-4abf-973d-79b47ca42ac5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


AuthenticationError.NOT_ADS_USER

2018-02-02 Thread Travis
I've followed the directions best I could and when I run the following test 
command I get this error:

Fault message: [AuthenticationError.NOT_ADS_USER @ ; trigger:'']

Here is how I'm authenticating (JSON key parsed via `OpenSSL::PKey::RSA`):

json = JSON.parse(Rails.application.secrets.adwords[:oauth2_key])
key = OpenSSL::PKey::RSA.new(json['private_key'])

@client = AdwordsApi::Api.new({
  authentication: {
method: 'OAUTH2_SERVICE_ACCOUNT',
user_agent: 'AdManager/1.0.0',
oauth2_key: key,
oauth2_issuer:  
Rails.application.secrets.adwords[:oauth2_issuer],
developer_token:
Rails.application.secrets.adwords[:developer_token],
client_customer_id: customer_id
  },
  service: {
environment: 'PRODUCTION'
  },
  connection: {
enable_gzip: false
  },
  library: {
log_level: 'INFO'
  }
})

@client.service(:CampaignService, :v201708).get({:fields => ['Id', 
'Name', 'Status']}

Here are the steps I did in order:

1. Log into my MCC AdWords account
2. Visit Google Developer Console
3. Create a new Project
4. Create a Service Account key. Make sure the domain checkbox is checked. 
I use the email address it generates above in `oauth2_issuer`
5. Download the JSON key
6. Get an MCC account (I actually had one I use for live campaigns, so I 
skipped this step)
7. Generate an AdWords API key from within MCC (i used it above in 
`developer_token`).
8. Create a new test manager account.
9. Inside the new test manager account, create a new test client account, 
and take that customer ID and place it above in `client_customer_id.

I'm not sure where I went wrong, from what I can tell I followed the steps 
exactly.

Thanks

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/bc627756-fc81-4d23-a0d3-27adcd965c0c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


AuthenticationError.NOT_ADS_USER

2018-02-02 Thread Travis
I've followed the directions best I could and when I run the following test 
command I get this error:

Fault message: [AuthenticationError.NOT_ADS_USER @ ; trigger:'']

Here is how I'm authenticating (JSON key parsed via `OpenSSL::PKey::RSA`):

json = JSON.parse(Rails.application.secrets.adwords[:oauth2_key])
key = OpenSSL::PKey::RSA.new(json['private_key'])

@client = AdwordsApi::Api.new({
  authentication: {
method: 'OAUTH2_SERVICE_ACCOUNT',
user_agent: 'AdManager/1.0.0',
oauth2_key: key,
oauth2_issuer:  
Rails.application.secrets.adwords[:oauth2_issuer],
developer_token:
Rails.application.secrets.adwords[:developer_token],
client_customer_id: customer_id
  },
  service: {
environment: 'PRODUCTION'
  },
  connection: {
enable_gzip: false
  },
  library: {
log_level: 'INFO'
  }
})

@client.service(:CampaignService, :v201708).get({:fields => ['Id', 
'Name', 'Status']}

Here are the steps I did in order:

1. Log into my MCC AdWords account
2. Visit Google Developer Console
3. Create a new Project
4. Create a Service Account key. Make sure the domain checkbox is checked. 
I use the email address it generates above in `oauth2_issuer`
5. Download the JSON key
6. Get an MCC account (I actually had one I use for live campaigns, so I 
skipped this step)
7. Generate an AdWords API key from within MCC (i used it above in 
`developer_token`).
8. Create a new test manager account.
9. Inside the new test manager account, create a new test client account, 
and take that customer ID and place it above in `client_customer_id`.

I'm not sure where I went wrong, from what I can tell I followed the steps 
exactly.

Thanks

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/94e61de7-598f-4694-b9ab-835deac7c74c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Access to Billed Cost vs. Served Cost

2018-02-02 Thread 'Peter Oliquino' via AdWords API Forum
Hi Colin,

We currently have no information if the billed cost will be included in the 
succeeding version of the AdWords API. You may follow our blog 
 for 
updates or announcements regarding if and when the actual billed cost field 
will be made available.

Thanks and regards,
Peter
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/29949dd1-a8cd-44ed-a975-ca024e2907d2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Access to Billed Cost vs. Served Cost

2018-02-02 Thread Colin Lee
The new adwords interface has introduced the concept of Billed Cost vs. 
Served Cost.

The Served Cost apparently represents the value provided by AdWords while 
the Billed Cost represents the actual amount billed to the account.

The API's "Cost" field appears to be the Served Cost; however, we need 
access to the actual billed cost (the amount that was billed to the 
account).

Is this coming to the API any time soon - hopefully in the Feb release?

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/efd1c015-37b7-4da1-8b2e-2be6d9bd4de1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.