Skip to content

Commit 25b43aa

Browse files
authored
Changes for Google Ads API v2_0. (googleads#143)
1 parent afbfda7 commit 25b43aa

1,468 files changed

Lines changed: 178845 additions & 236 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ChangeLog

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
* 3.0.0:
2+
- Google Ads v2_0 release
3+
14
* 2.4.1:
25
- Fix bug preventing login_customer_id to be loaded as an int
36

README.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,16 +157,17 @@ With the release of Google Ads API v1_0 it's now possible to specify an API
157157
version when getting services and types. The ``get_service`` and ``get_type``
158158
client methods accept a second named parameter, ``version`` that refers to a
159159
valid API version. For example, to request an instance of the
160-
``GoogleAdsService`` that uses Google Ads API version ``v1`` use the
160+
``GoogleAdsService`` that uses Google Ads API version ``v2`` use the
161161
following:
162162

163163
.. code-block:: python
164164
165-
google_ads_service = client.get_service('GoogleAdsService', version='v1')
165+
google_ads_service = client.get_service('GoogleAdsService', version='v2')
166166
167167
The currently available list of versions is:
168168

169169
* ``'v1'``
170+
* ``'v2'``
170171

171172
Enabling and Configuring logging
172173
################################

examples/account_management/create_customer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131

3232

3333
def main(client, manager_customer_id):
34-
customer_service = client.get_service('CustomerService', version='v1')
35-
customer = client.get_type('Customer', version='v1')
34+
customer_service = client.get_service('CustomerService', version='v2')
35+
customer = client.get_type('Customer', version='v2')
3636
today = datetime.today().strftime('%Y%m%d %H:%M:%S')
3737
customer.descriptive_name.value = ('Account created with '
3838
'CustomerService on %s' % today)

examples/account_management/get_account_changes.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def resource_name_for_resource_type(resource_type, row):
5858

5959

6060
def main(client, customer_id):
61-
ads_service = client.get_service('GoogleAdsService', version='v1')
61+
ads_service = client.get_service('GoogleAdsService', version='v2')
6262
query = ('SELECT change_status.resource_name, '
6363
'change_status.last_change_date_time, '
6464
'change_status.resource_type, '
@@ -76,9 +76,9 @@ def main(client, customer_id):
7676
page_size=ADS_PAGE_SIZE)
7777

7878
resource_type_enum = (client.get_type(
79-
'ChangeStatusResourceTypeEnum', version='v1').ChangeStatusResourceType)
79+
'ChangeStatusResourceTypeEnum', version='v2').ChangeStatusResourceType)
8080
change_status_operation_enum = (client.get_type(
81-
'ChangeStatusOperationEnum', version='v1').ChangeStatusOperation)
81+
'ChangeStatusOperationEnum', version='v2').ChangeStatusOperation)
8282

8383
try:
8484
for row in response:

examples/account_management/get_account_information.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828

2929
def main(client, customer_id):
30-
customer_service = client.get_service('CustomerService', version='v1')
30+
customer_service = client.get_service('CustomerService', version='v2')
3131

3232
resource_name = customer_service.customer_path(customer_id)
3333

examples/account_management/link_manager_to_client.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ def main(client, customer_id, manager_customer_id):
3737

3838
# Extend an invitation to the client while authenticating as the manager.
3939
client_link_operation = client.get_type(
40-
'CustomerClientLinkOperation', version='v1')
40+
'CustomerClientLinkOperation', version='v2')
4141
client_link = client_link_operation.create
4242
client_link.client_customer.value = 'customers/{}'.format(customer_id)
4343
client_link.status = client.get_type(
4444
'ManagerLinkStatusEnum').PENDING
4545

4646
customer_client_link_service = client.get_service(
47-
'CustomerClientLinkService', version='v1')
47+
'CustomerClientLinkService', version='v2')
4848
response = customer_client_link_service.mutate_customer_client_link(
4949
manager_customer_id, client_link_operation)
5050
resource_name = response.results[0].resource_name
@@ -66,7 +66,7 @@ def main(client, customer_id, manager_customer_id):
6666
customer_client_link.resource_name = "{}"
6767
'''.format(resource_name)
6868

69-
ga_service = client.get_service('GoogleAdsService', version='v1')
69+
ga_service = client.get_service('GoogleAdsService', version='v2')
7070
response = ga_service.search(manager_customer_id, query=query)
7171

7272
# Since the google_ads_service.search method returns an iterator we need
@@ -76,18 +76,18 @@ def main(client, customer_id, manager_customer_id):
7676
manager_link_id = row.customer_client_link.manager_link_id
7777

7878
manager_link_operation = client.get_type(
79-
'CustomerManagerLinkOperation', version='v1')
79+
'CustomerManagerLinkOperation', version='v2')
8080
manager_link = manager_link_operation.update
8181
manager_link.resource_name.value = (
8282
'customers/{}/customerManagerLinks/{}~{}'.format(
8383
customer_id, manager_customer_id, manager_link_id))
8484

85-
manager_link.status = client.get_type('ManagerLinkStatusEnum', version='v1')
85+
manager_link.status = client.get_type('ManagerLinkStatusEnum', version='v2')
8686
field_mask = protobuf_helpers.field_mask(None, manager_link)
8787
manager_link_operation.update_mask.CopyFrom(field_mask)
8888

8989
manager_link_service = client.get_service('ManagerLinkService',
90-
version='v1')
90+
version='v2')
9191
response = manager_link_service.mutate_manager_links(
9292
manager_customer_id, [manager_link_operation])
9393
resource_name = response.results[0].resource_name

examples/account_management/list_accessible_customers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929

3030
def main(client):
31-
customer_service = client.get_service('CustomerService', version='v1')
31+
customer_service = client.get_service('CustomerService', version='v2')
3232

3333
try:
3434
accessible_customers = customer_service.list_accessible_customers()

examples/advanced_operations/add_ad_group_bid_modifier.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727

2828

2929
def main(client, customer_id, ad_group_id, bid_modifier_value):
30-
ad_group_service = client.get_service('AdGroupService', version='v1')
30+
ad_group_service = client.get_service('AdGroupService', version='v2')
3131
ad_group_bm_service = client.get_service('AdGroupBidModifierService',
32-
version='v1')
32+
version='v2')
3333

3434
# Create ad group bid modifier for mobile devices with the specified ad
3535
# group ID and bid modifier value.
@@ -46,7 +46,7 @@ def main(client, customer_id, ad_group_id, bid_modifier_value):
4646

4747
# Sets the device.
4848
ad_group_bid_modifier.device.type = client.get_type('DeviceEnum',
49-
version='v1').MOBILE
49+
version='v2').MOBILE
5050

5151
# Add the ad group bid modifier.
5252
try:

examples/advanced_operations/add_dynamic_page_feed.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def main(client, customer_id, campaign_id, ad_group_id):
6666
# Associate the page feed with the campaign.
6767
update_campaign_dsa_setting(client, customer_id, campaign_id,
6868
feed_details)
69-
ad_group_service = client.get_service('AdGroupService', version='v1')
69+
ad_group_service = client.get_service('AdGroupService', version='v2')
7070
ad_group_resource_name = ad_group_service.ad_group_path(customer_id,
7171
ad_group_id)
7272

@@ -96,14 +96,14 @@ def create_feed(client, customer_id):
9696
A FeedDetails instance with information about the newly created feed.
9797
"""
9898
# Retrieve a new feed operation object.
99-
feed_operation = client.get_type('FeedOperation', version='v1')
99+
feed_operation = client.get_type('FeedOperation', version='v2')
100100
# Create a new feed.
101101
feed = feed_operation.create
102102
feed.name.value = 'DSA Feed #{}'.format(uuid.uuid4())
103-
feed.origin = client.get_type('FeedOriginEnum', version='v1').USER
103+
feed.origin = client.get_type('FeedOriginEnum', version='v2').USER
104104

105105
feed_attribute_type_enum = client.get_type('FeedAttributeTypeEnum',
106-
version='v1')
106+
version='v2')
107107

108108
# Create the feed's attributes.
109109
feed_attribute_url = feed.attributes.add()
@@ -115,7 +115,7 @@ def create_feed(client, customer_id):
115115
feed_attribute_label.name.value = 'Label'
116116

117117
# Retrieve the feed service.
118-
feed_service = client.get_service('FeedService', version='v1')
118+
feed_service = client.get_service('FeedService', version='v2')
119119
# Send the feed operation and add the feed.
120120
response = feed_service.mutate_feeds(customer_id, [feed_operation])
121121

@@ -144,7 +144,7 @@ def get_feed_details(client, customer_id, resource_name):
144144
LIMIT 1
145145
'''.format(resource_name)
146146

147-
ga_service = client.get_service('GoogleAdsService', version='v1')
147+
ga_service = client.get_service('GoogleAdsService', version='v2')
148148
response = ga_service.search(customer_id, query=query)
149149

150150
# Maps specific fields in each row in the response to a dict. This would
@@ -169,14 +169,14 @@ def create_feed_mapping(client, customer_id, feed_details):
169169
"""
170170
# Retrieve a new feed mapping operation object.
171171
feed_mapping_operation = client.get_type('FeedMappingOperation',
172-
version='v1')
172+
version='v2')
173173
# Create a new feed mapping.
174174
feed_mapping = feed_mapping_operation.create
175175
feed_mapping.criterion_type = client.get_type(
176-
'FeedMappingCriterionTypeEnum', version='v1').DSA_PAGE_FEED
176+
'FeedMappingCriterionTypeEnum', version='v2').DSA_PAGE_FEED
177177
feed_mapping.feed.value = feed_details.resource_name
178178
dsa_page_feed_field_enum = client.get_type('DsaPageFeedCriterionFieldEnum',
179-
version='v1')
179+
version='v2')
180180

181181
url_field_mapping = feed_mapping.attribute_field_mappings.add()
182182
url_field_mapping.feed_attribute_id.value = feed_details.url_attribute_id
@@ -189,7 +189,7 @@ def create_feed_mapping(client, customer_id, feed_details):
189189

190190
# Retrieve the feed mapping service.
191191
feed_mapping_service = client.get_service('FeedMappingService',
192-
version='v1')
192+
version='v2')
193193
# Submit the feed mapping operation and add the feed mapping.
194194
response = feed_mapping_service.mutate_feed_mappings(
195195
customer_id, [feed_mapping_operation])
@@ -215,7 +215,7 @@ def create_feed_items(client, customer_id, feed_details, label):
215215
"http://www.example.com/discounts/flight-deals"]
216216

217217
def map_feed_urls(url):
218-
feed_item_operation = client.get_type('FeedItemOperation', version='v1')
218+
feed_item_operation = client.get_type('FeedItemOperation', version='v2')
219219
feed_item = feed_item_operation.create
220220
feed_item.feed.value = feed_details.resource_name
221221

@@ -237,7 +237,7 @@ def map_feed_urls(url):
237237
feed_item_operations = list(map(map_feed_urls, urls))
238238

239239
# Retrieve the feed item service.
240-
feed_item_service = client.get_service('FeedItemService', version='v1')
240+
feed_item_service = client.get_service('FeedItemService', version='v2')
241241
# Submit the feed item operations and add the feed items.
242242
response = feed_item_service.mutate_feed_items(customer_id,
243243
feed_item_operations)
@@ -269,7 +269,7 @@ def update_campaign_dsa_setting(client, customer_id, campaign_id, feed_details):
269269
LIMIT 1
270270
'''.format(campaign_id)
271271

272-
ga_service = client.get_service('GoogleAdsService', version='v1')
272+
ga_service = client.get_service('GoogleAdsService', version='v2')
273273
results = ga_service.search(customer_id, query=query)
274274

275275
for row in results:
@@ -284,7 +284,7 @@ def update_campaign_dsa_setting(client, customer_id, campaign_id, feed_details):
284284
campaign_id))
285285

286286
# Retrieve a new campaign operation
287-
campaign_operation = client.get_type('CampaignOperation', version='v1')
287+
campaign_operation = client.get_type('CampaignOperation', version='v2')
288288
# Copy the retrieved campaign onto the new campaign operation.
289289
campaign_operation.update.CopyFrom(campaign)
290290
updated_campaign = campaign_operation.update
@@ -296,7 +296,7 @@ def update_campaign_dsa_setting(client, customer_id, campaign_id, feed_details):
296296
campaign_operation.update_mask.CopyFrom(field_mask)
297297

298298
# Retrieve the campaign service.
299-
campaign_service = client.get_service('CampaignService', version='v1')
299+
campaign_service = client.get_service('CampaignService', version='v2')
300300
# Submit the campaign operation and update the campaign.
301301
response = campaign_service.mutate_campaigns(customer_id,
302302
[campaign_operation])
@@ -317,7 +317,7 @@ def add_dsa_targeting(client, customer_id, ad_group_resource_name, label):
317317
"""
318318
# Retrieve a new ad group criterion operation object.
319319
ad_group_criterion_operation = client.get_type(
320-
'AdGroupCriterionOperation', version='v1')
320+
'AdGroupCriterionOperation', version='v2')
321321
# Create a new ad group criterion.
322322
ad_group_criterion = ad_group_criterion_operation.create
323323
ad_group_criterion.ad_group.value = ad_group_resource_name
@@ -328,11 +328,11 @@ def add_dsa_targeting(client, customer_id, ad_group_resource_name, label):
328328
webpage_criterion_info = ad_group_criterion.webpage.conditions.add()
329329
webpage_criterion_info.argument.value = label
330330
webpage_criterion_info.operand = client.get_type(
331-
'WebpageConditionOperandEnum', version='v1').CUSTOM_LABEL
331+
'WebpageConditionOperandEnum', version='v2').CUSTOM_LABEL
332332

333333
# Retrieve the ad group criterion service.
334334
ad_group_criterion_service = client.get_service('AdGroupCriterionService',
335-
version='v1')
335+
version='v2')
336336
response = ad_group_criterion_service.mutate_ad_group_criteria(
337337
customer_id, [ad_group_criterion_operation])
338338
resource_name = response.results[0].resource_name

0 commit comments

Comments
 (0)