Skip to content

Commit 51468cb

Browse files
committed
Merge branch 'main' of https://github.com/googleads/google-ads-python into googleads-main
2 parents 0b9c9a8 + 2a1d606 commit 51468cb

2,525 files changed

Lines changed: 220033 additions & 155591 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: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
1+
* 14.1.0
2+
- Google Ads API v9_0 release
3+
- Update gRPC transport logic to replace "gapic" user-agent with "gccl"
4+
- Update examples to support v9 changes
5+
- Add new Performance Max examples
6+
advanced_operations/add_performance_max_campaign.py and
7+
shopping_ads/add_performance_max_retail_campaign.py
8+
9+
* 14.0.1
10+
- Pin protobuf to < 3.18.0
11+
- Add examples add_bidding_data_exclusion, add_bidding_seasonality_adjustment
12+
- Style updates for examples that use search_stream
13+
- Fix hardcoded URLs for media in various examples
14+
15+
* 14.0.0
16+
- New required configuration value to specify protobuf message types, see:
17+
https://developers.google.com/google-ads/api/docs/client-libs/python/protobuf-messages
18+
- Google Ads API v8_1 release.
19+
- Remove support for Google Ads API v6.
20+
121
* 13.0.0
222
- Bump the minimum Python version requirement to 3.7+
323
- Fix package name in base transport files

README.rst

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,19 @@ For Python 3.6 Users
3232
--------------------
3333
Version `12.0.0`_ of this library is the last version that is compatible with
3434
Python 3.6. It contains support for `v6`_, `v7`_, and `v8`_ of the Google Ads
35-
API. The newest API version, `v8`_, will be supported until the Spring of 2022.
36-
Given that the `EOL`_ for Python 3.6 is December 23, 2021, we encourage our
37-
users to upgrade to Python 3.7 or above as soon as possible to avoid issues.
38-
Users who cannot upgrade can continue to safely use version `12.0.0`_ until
39-
`v8`_ of the Google Ads API is deprecated. Please follow the
40-
`Google Ads Developer Blog`_ for announcements of the specific deprecation
41-
dates for the above API versions.
35+
API. The latest API version supported by version `12.0.0`_, `v8`_, will be
36+
supported until the Spring of 2022, so Python 3.6 users can access the Google
37+
Ads API until then. Given that the `EOL`_ for Python 3.6 is December 23, 2021,
38+
we encourage our users to upgrade to Python 3.7 or above as soon as possible to
39+
avoid issues. Please follow the `Google Ads Developer Blog`_ for announcements
40+
of the specific deprecation dates for the above API versions.
41+
42+
Protobuf Messages
43+
-----------------
44+
Version `14.0.0`_ of this library introduced the **required** `use_proto_plus`
45+
configuration option that specifies which type of protobuf message to use. For
46+
information on why this flag is important and what the differences are between
47+
the two message types, see the `Protobuf Messages`_ guide.
4248

4349
Miscellaneous
4450
-------------
@@ -67,8 +73,10 @@ Authors
6773
.. _Andrew Burke: https://github.com/AndrewMBurke
6874
.. _Laura Chevalier: https://github.com/laurachevalier4
6975
.. _12.0.0: https://pypi.org/project/google-ads/12.0.0/
76+
.. _14.0.0: https://pypi.org/project/google-ads/14.0.0/
7077
.. _v6: https://developers.google.com/google-ads/api/reference/rpc/v6/overview
7178
.. _v7: https://developers.google.com/google-ads/api/reference/rpc/v7/overview
7279
.. _v8: https://developers.google.com/google-ads/api/reference/rpc/v8/overview
7380
.. _EOL: https://endoflife.date/python
7481
.. _Google Ads Developer Blog: https://ads-developers.googleblog.com/
82+
.. _Protobuf Messages: https://developers.google.com/google-ads/api/docs/client-libs/python/protobuf-messages

examples/account_management/approve_merchant_center_link.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def _update_merchant_center_link_status(
125125
if __name__ == "__main__":
126126
# GoogleAdsClient will read the google-ads.yaml configuration file in the
127127
# home directory if none is specified.
128-
googleads_client = GoogleAdsClient.load_from_storage(version="v8")
128+
googleads_client = GoogleAdsClient.load_from_storage(version="v9")
129129

130130
parser = argparse.ArgumentParser(
131131
description=("Approves a Merchant Center link request.")

examples/account_management/create_customer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def main(client, manager_customer_id):
5858
if __name__ == "__main__":
5959
# GoogleAdsClient will read the google-ads.yaml configuration file in the
6060
# home directory if none is specified.
61-
googleads_client = GoogleAdsClient.load_from_storage(version="v8")
61+
googleads_client = GoogleAdsClient.load_from_storage(version="v9")
6262

6363
parser = argparse.ArgumentParser(
6464
description=("Creates a new client under the given manager.")

examples/account_management/get_account_hierarchy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def _print_account_hierarchy(
179179
if __name__ == "__main__":
180180
# GoogleAdsClient will read the google-ads.yaml configuration file in the
181181
# home directory if none is specified.
182-
googleads_client = GoogleAdsClient.load_from_storage(version="v8")
182+
googleads_client = GoogleAdsClient.load_from_storage(version="v9")
183183

184184
parser = argparse.ArgumentParser(
185185
description="This example gets the account hierarchy of the specified "

examples/account_management/get_account_information.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ def main(client, customer_id):
4242
if __name__ == "__main__":
4343
# GoogleAdsClient will read the google-ads.yaml configuration file in the
4444
# home directory if none is specified.
45-
googleads_client = GoogleAdsClient.load_from_storage(version="v8")
45+
googleads_client = GoogleAdsClient.load_from_storage(version="v9")
4646

4747
parser = argparse.ArgumentParser(
4848
description=(

examples/account_management/get_change_details.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ def main(client, customer_id):
177177
if __name__ == "__main__":
178178
# GoogleAdsClient will read the google-ads.yaml configuration file in the
179179
# home directory if none is specified.
180-
googleads_client = GoogleAdsClient.load_from_storage(version="v8")
180+
googleads_client = GoogleAdsClient.load_from_storage(version="v9")
181181

182182
parser = argparse.ArgumentParser(
183183
description="This example gets specific details about the most recent "

examples/account_management/get_change_summary.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ def main(client, customer_id):
8585
if __name__ == "__main__":
8686
# GoogleAdsClient will read a google-ads.yaml configuration file in the
8787
# home directory if none is specified.
88-
googleads_client = GoogleAdsClient.load_from_storage(version="v8")
88+
googleads_client = GoogleAdsClient.load_from_storage(version="v9")
8989

9090
parser = argparse.ArgumentParser(
9191
description=(

examples/account_management/get_pending_invitations.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@ def main(client, customer_id):
4444
FROM customer_user_access_invitation
4545
WHERE customer_user_access_invitation.invitation_status = PENDING"""
4646

47-
response = googleads_service.search_stream(
47+
stream = googleads_service.search_stream(
4848
customer_id=customer_id, query=query
4949
)
50-
for batch in response:
50+
for batch in stream:
5151
for row in batch.results:
5252
invite = row.customer_user_access_invitation
5353
print(
@@ -65,7 +65,7 @@ def main(client, customer_id):
6565
if __name__ == "__main__":
6666
# GoogleAdsClient will read the google-ads.yaml configuration file in the
6767
# home directory if none is specified.
68-
googleads_client = GoogleAdsClient.load_from_storage(version="v8")
68+
googleads_client = GoogleAdsClient.load_from_storage(version="v9")
6969

7070
parser = argparse.ArgumentParser(
7171
description=("Retrieves pending invitations for a customer account.")

examples/account_management/invite_user_with_access_role.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ def main(client, customer_id, email_address, access_role):
5959
if __name__ == "__main__":
6060
# GoogleAdsClient will read the google-ads.yaml configuration file in the
6161
# home directory if none is specified.
62-
googleads_client = GoogleAdsClient.load_from_storage(version="v8")
62+
googleads_client = GoogleAdsClient.load_from_storage(version="v9")
6363

6464
parser = argparse.ArgumentParser(
6565
description=(

0 commit comments

Comments
 (0)