Batch Jobs Google Ads API

2019-06-14 Thread Costantin
Hello,

I need to regularly upload one campaign with a few hundred ad groups in it 
and few hundred keyword in each ad group.
I constantly hit the API limits. It's there a way to upload everything like 
there was with the AdWords API via batch jobs?

What's the best practice to accomplish this?

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/89133448-d7f0-47ad-8228-8cab364b0599%40googlegroups.com.


How are API calls counted?

2019-05-13 Thread Costantin
If I want to create 100 ad groups, something like this:

# Create ad group.
all_adgroups = []
for x in range(200):

ad_group_operation = client.get_type('AdGroupOperation', 
version=google_ads_version)
ad_group = ad_group_operation.create
ad_group.name.value = 'Earth to Mars cruises %s' % uuid.uuid4()
ad_group.status = client.get_type('AdGroupStatusEnum', 
version=google_ads_version).ENABLED
ad_group.campaign.value = campaign_service.campaign_path(customer_id, 
campaign_id)
ad_group.type = client.get_type('AdGroupTypeEnum', 
version=google_ads_version).SEARCH_STANDARD
ad_group.cpc_bid_micros.value = 1000
all_adgroups.append(ad_group_operation)

# Add the ad groups.
try:
ad_group_response = ad_group_service.mutate_ad_groups(customer_id, 
all_adgroups[:2])
except google.ads.google_ads.errors.GoogleAdsException as ex:
abort(400, "ERROR")

Does this count as 1 API call or 200 ones?

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/7d459b79-f8b1-4d3a-bcf6-7209d056ed94%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Feature suggestion: When wrong country code is given the API should return an error, not setup Afghanistan

2019-05-10 Thread Costantin
Right now when I make an API call to set a country code for a call only ad 
and I use for example gb instead of GB the api doesn't return an error but 
simply sets the country code as Afghanistan. This can easily lead to 
mistakes and errors. The API should return an error like: "invalid country 
code"

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/fc210b6d-9ac1-4fed-aed9-d8f6e90b92b1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Add a campaign without a shared budget

2019-05-09 Thread Costantin
Hi, 

Is it possible to create a new campaign with a fixed daily budget just for 
that campaign instead of attaching to it a shared budget like in the 
example:
https://github.com/googleads/google-ads-python/blob/master/examples/basic_operations/add_campaigns.py

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.
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/18d7f4d1-7fd7-4cc3-b1cf-76ef560df7ab%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Add list of keywords to an ad group (NEW API)

2019-05-09 Thread Costantin
Hello,

I'm trying to add a list of keywords to a specific ad group. From the 
exaples it seems that I have to make an API call for each keyword, but that 
seems unlikely because I would need to make 1000s of API calls just to make 
one ad group. Is it possible to add several keywords to an ad group with 
just one API call?

The example I'm referring to is this one: 
https://github.com/googleads/google-ads-python/blob/master/examples/basic_operations/add_keywords.py

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/65ea1796-4c48-4ad0-8a6f-0038acc08c98%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Google Ads new API Get CPC for list of keywords

2019-05-07 Thread Costantin
Hello, I'm trying to get CPC for a list of keywords. I'm using the 
KeywordPlanIdeaService however I can get only new keyword ideas with their 
competition and avg monthly search. I can't get the Avg. CPC for those 
keywords. Is this available somehow?

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/5ec245f9-74bb-47b2-a7c0-96c21cb0c026%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: ListAccessibleCustomers Google Ads API

2019-04-26 Thread Costantin
Hello, I'm having the same issue. I need to do an extra API call for each 
account to extract the name, if it's test and all that info. With large 
accounts this becomes quickly impossible.
Is there a plan to update the ListAccessibleCustomers method and return 
more info like the account name? If it's MCC etc

Thanks



On Wednesday, March 13, 2019 at 2:54:46 PM UTC+1, cv wrote:
>
> Hi,
>
> ListAccessibleCustomers example for PHP lib for Google Ads API is not 
> giving all the Managed customers for the MCC.
>
> Is there anything need to be done to get All the Accounts?
>
> 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.
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/480b8c3a-c60a-4292-a64f-11d9aa86394f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Cannot add beta API to Google Developer Console project

2019-04-04 Thread Costantin

>
> Hello everyone,
>

The issue in *NOT browser related*. It's related to your ad blocker. Pause 
your adblocker extension and you will be able to activate everything 
without problems!

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/81b8fc71-2769-4fbe-91e2-efd09cbe7165%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: Integer or Float with Customizer

2018-12-05 Thread Costantin
Hi Dannison,

Sorry but I still don't get it.
The name field should be the column name, for type STRING, I can pass any 
random name and the column gets appropriately labeled with that name on 
Google Ads.
I'm pretty sure that the same is supposed to happen also with type FLOAT or 
other types. Why I would want to name a column with an integer name? The 
value, however, must be an integer if I set the type as INT64, that does 
make sense.

As a very minimal example you could try to make this request:

ad_customizer_feed_service = client.GetService("AdCustomizerFeedService", 
version='v201809')
customizer_feed = { 
'feedName': 'feed name xyz', 
'feedAttributes': [{'type': 'STRING', 'name': 'this is 
the column name'}]} 
feed_service_operation = {'operator': 'ADD', 'operand': customizer_feed} 
response = ad_customizer_feed_service.mutate([feed_service_operation]) 


if response and 'value' in response: r = "VALID: {}".format(response)  
else: r = "NOT VALID: {}".format(response) 


return r




This correctly returns:
VALID: { 'ListReturnValue.Type': 'AdCustomizerFeedReturnValue', 'value': [ 
{ 'feedId': 85X, 'feedName': 'feed name xyz', 'feedStatus': 'ENABLED', 
'feedAttributes': [ { 'id': 1, 'name': 'this is the column name', 'type': 
'STRING' } ] } ] }

*Now if I try to submit a column with type INT64:*

 ad_customizer_feed_service = client.GetService("AdCustomizerFeedService", 
version='v201809')
 customizer_feed = {
 'feedName': 'feed name xyz 2',
 'feedAttributes': [{'type': 'INT64', 'name': 'this is the column name 2'}]
}
 feed_service_operation = {'operator': 'ADD', 'operand': customizer_feed}
 response = ad_customizer_feed_service.mutate([feed_service_operation])


 if response and 'value' in response: r = "VALID: {}".format(response)
 else: r = "NOT VALID: {}".format(response)


 print(r)
 return r

This gives me the following error:
googleads.errors.GoogleAdsServerFault: [RequiredError.REQUIRED @ operations[
0].operand.feedAttributes[0].type]


I've tried to use an integer as the name but that also didn't work. I'm 
pretty sure that the request above is supposed to work just like that. 
Could someone try to make the same request and see why is not working? I 
would really need this to work.

This is the full SOAP logs of the failed (the second) request:


[2018-12-05 12:39:41,601 - googleads.soap - INFO] Request made: Service: 
"AdCustomizerFeedService" Method: "mutate" URL: 
"https://adwords.google.com/api/adwords/cm/v201809/AdCustomizerFeedService;

 

[2018-12-05 12:39:41,601 - googleads.soap - DEBUG] Outgoing request: {
'SOAPAction': '""', 'Content-Type': 'text/xml; charset=utf-8', 
'authorization': 'REDACTED'} 

http://schemas.xmlsoap.org/soap/envelope/;> 

   

https://adwords.google.com/api/adwords/cm/v201809;> 

  197XX 

  REDACTED 

  unknown (AwApi-Python, googleads/15.0.0, Python/3.6.3, 
zeep) 

  false 

  false 

 

   

   

https://adwords.google.com/api/adwords/cm/v201809;> 

   

ADD 

 

  feed name xyz 2 

   

this is the column name 2 

INT64 

   

 

   

 

   

 


 

[2018-12-05 12:39:42,717 - googleads.soap - DEBUG] Incoming response:  

b'http://schemas.xmlsoap.org/soap/envelope/;>\n 
 \nhttps://adwords.google.com/api/adwords/cm/v201809;>\n 
 00057c43ffeXXX\n 
 AdCustomizerFeedService\n 
 mutate\n  1\n 
 520\n\n 
 \n  \n\n 
 soap:Client\n 
 [RequiredError.REQUIRED @ 
operations[0].operand.feedAttributes[0].type]\n 
 \nhttps://adwords.google.com/api/adwords/cm/v201809;>\n 
 [RequiredError.REQUIRED @ 
operations[0].operand.feedAttributes[0].type]\n 
 ApiException\n 
 http://www.w3.org/2001/XMLSchema-instance; 
xsi:type="RequiredError">\n   
 operations[0].operand.feedAttributes[0].type\n 
   \n  operations\n   
   0\n\n   
 \n  operand\n   
 \n\n 
 feedAttributes\n  0\n   
 \n\n 
 type\n\n   
 \n   
 RequiredError.REQUIRED\n   
 RequiredError\n   
 REQUIRED\n  \n   
 \n  \n\n 
 \n\n' 

[2018-12-05 12:39:42,718 - googleads.soap - WARNING] Error summary: {
'faultMessage': '[RequiredError.REQUIRED @ 
operations[0].operand.feedAttributes[0].type]', 'requestId': 
'00057c43ffe9XXX', 'serviceName': 'AdCustomizerFeedService', 
'methodName': 'mutate', 'operations': '1', 'responseTime': '520'}



-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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 

Re: Increase bid by X%

2018-09-13 Thread Costantin Bignoli

Fantastic, exactly what I was looking for. Thank you!

On Thu, Sep 13, 2018 at 11:16, Thorsten Merz  wrote:
Adding 50% bid modifier values will increase the bids on each of the 
devices by 50%, yes.


That means if your bid is 1 $ then all devices will receive 1,50 $
--

On Thursday, September 13, 2018 at 10:13:41 AM UTC+2, cos...@gmail.com 
wrote: Does anyone know if adding 3 bid modifiers (Computer, tablet, and 
mobile) all to the same value, e.g. +50% would work? Would all my bids be 
increased by 50% automatically?


On Thursday, September 13, 2018 at 11:00:07 AM UTC+3, cos...@gmail.com 
wrote: Hello, I use Python 3.X and the Google official libraries (adwords & 
Google Ads)
I would like to increase and reduce bids by X% programmatically. In other 
words, apply a bid modifier globally and not only for a particular device 
or CALLS.

Is this somehow possible?
I'm using the new beta google ads api, but if needed I can also use the 
google adwords api to achieve this. I tried hard to find an example online 
without luck. My thinking is that I should do something like this:
## 1 - Get current campaign. ## 2 - Get current campaign Budget. ## 3 - 
Edit current Budget. ## 4 - Save current Budget.

Is this right? Any example doc?

--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog:
https://googleadsdeveloper.blogspot.com/ 
[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 
[http://groups.google.com/group/adwords-api?hl=en]

---
You received this message because you are subscribed to a topic in the 
Google Groups "AdWords API and Google Ads API Forum" group.
To unsubscribe from this topic, visit 
https://groups.google.com/d/topic/adwords-api/lO-2kOWeMFA/unsubscribe 
[https://groups.google.com/d/topic/adwords-api/lO-2kOWeMFA/unsubscribe] .
To unsubscribe from this group and all its topics, send an email to 
adwords-api+unsubscr...@googlegroups.com 
[adwords-api+unsubscr...@googlegroups.com] .
Visit this group at https://groups.google.com/group/adwords-api 
[https://groups.google.com/group/adwords-api] .
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/138460e3-146a-42a4-b2b1-f90869b48a36%40googlegroups.com 
[https://groups.google.com/d/msgid/adwords-api/138460e3-146a-42a4-b2b1-f90869b48a36%40googlegroups.com?utm_medium=email_source=footer] 
.
For more options, visit https://groups.google.com/d/optout 
[https://groups.google.com/d/optout] .


--
--
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
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/ab223f58-ee22-4ddb-ac07-c7e10ff1e82e%40gmail.com.
For more options, visit https://groups.google.com/d/optout.