forked from googleads/googleads-python-lib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
538 lines (466 loc) · 21.9 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
15.0.1 -- 11/16/2018
* Added Smart Shopping ad example (v201809)
15.0.0 -- 11/14/2018
* Added support for v201811.
* Removed support for v201711.
* Removed examples for v201802.
* Remove ContentMetadataKeyHierarchyService
* Added version parameter to PQL utilities to account for statement
differences among API versions. This parameter defaults to the most recent
API version. If you update your Python client library but don't plan on
migrating to the newest API version, you might need to explicitly declare the
version for the PQL utility to use.
14.1.0 -- 09/21/18
* Added support and examples for AdWords v201809.
* Resolved issues:
- Issue 281: https://github.com/googleads/googleads-python-lib/issues/281
14.0.0 -- 08/21/18
* DFP rebranded to Google Ad Manager.
* Google Ad Manager v201808 release.
* Removed support for DFP v201708.
* Removed examples for DFP v201711.
13.0.0 -- 07/25/18
* Removed support for AdWords v201710.
12.2.0 -- 06/18/18
* Fixed some DFP examples that would loop forever with Zeep.
12.1.0 -- 06/06/18
* Added support and examples for AdWords v201806.
* Resolved issues:
- Issue 282: https://github.com/googleads/googleads-python-lib/issues/282
- Issue 288: https://github.com/googleads/googleads-python-lib/issues/288
12.0.0 -- 05/15/18
* Added support and examples for DFP v201805.
* Removed support for DFP v201705.
* Removed examples for DFP v201708.
* Using the wrong cache type will now raise GoogleAdsValueError instead of ValueError.
* Added support for setting custom HTTP headers.
* Resolved issues:
- Issue 246: https://github.com/googleads/googleads-python-lib/issues/246
- Issue 262: https://github.com/googleads/googleads-python-lib/issues/262
- Issue 273: https://github.com/googleads/googleads-python-lib/issues/273
- Issue 250: https://github.com/googleads/googleads-python-lib/issues/250
11.0.1 -- 04/06/18
* Fixed bug related to creating types from services that
contain multiple schemas.
* Fixed bug in README.md related to zeep caching.
11.0.0 -- 03/21/18
* Removed support and examples for AdWords v201705, and v201708.
* The default SOAP backend is now zeep. If you encounter any issues,
please report them and use your googleads.yaml file to revert back
to suds.
- Zeep logs to the googleads.soap channel.
- When using zeep (the default), you no longer need to encode your
image assets to base64, this will be done automatically.
* Sunset oauth2client, replaced with google-auth.
https://google-auth.readthedocs.io/en/latest/
- Updated googleads.yaml to remove service_account_email configurations that
are no longer necessary.
- Removed httplib2 dependency.
- Added google-auth, google-auth-oauthlib, and requests as dependencies.
- AdWords and DFP auth examples have been updated to use new OAuth 2.0
dependencies.
* Fixed a bug in IncrementalUploadHelper where the specified server would be
lost in serialization/deserialization.
* Breaking changes:
* Connection faults are now raised as GoogleAdsSoapTransportError
instances instead of suds errors.
- Soap faults are now raised as GoogleAdsServerFault instances instead of suds
errors.
- GoogleServiceAccountClient no longer supports P12 key files.
- GoogleServiceAccountClient's initializer arguments have been refactored;
`key_file` is now a required positional argument, `client_email` and
`private_key_password` have been removed.
- Removed Proxy from common.py. When creating a ProxyConfig, you must now
provide the full URI for http_proxy and https_proxy rather than a Proxy
instance. For an example of what these would look like, see:
http://docs.python-requests.org/en/master/user/advanced/#proxies
- The proxy_config used in googleads.yaml has been updated to better resemble
proxy configuration for the underlying HTTP library. The http_proxy and
https_proxy configurations have been removed, and replaced with http and
https. These take the full proxy URI as their value.
- Removed proxy_info attribute from ProxyConfig.
- Refactored proxy_option attribute in ProxyConfig, renamed to proxies.
* Resolved issues:
- Issue 251: https://github.com/googleads/googleads-python-lib/issues/251
- Issue 254: https://github.com/googleads/googleads-python-lib/issues/254
10.1.1 -- 03/16/18
* Accepted PR #222, to improve AdWords App Engine sample.
10.1.0 -- 03/01/18
* Added support and examples for AdWords v201802.
* Added new BuildOpener utility method to ProxyConfig, which returns an
OpenerDirector instance configured for the ProxyConfig settings.
10.0.0 -- 02/13/18
* Added support and examples for DFP v201802.
* Removed support and examples for AdWords v201702.
* Resolved issues:
- Issue 229: https://github.com/googleads/googleads-python-lib/issues/229
- Issue 236: https://github.com/googleads/googleads-python-lib/issues/236
9.0.1 -- 12/22/17
* Improved Python 3 compatibility of library and tests.
* Fixed reported issue with the ProductPartitionHelper utility used in AdWords
shopping examples.
9.0.0 -- 11/14/17
* Added support and examples for DFP v201711
* Removed support and examples for DFP v201611
* DFP PQL queries can now accept simple python dicts for variable substitution.
* Resolved issues:
- Issue 230: https://github.com/googleads/googleads-python-lib/issues/230
8.1.0 -- 10/11/17
* Added support for AdWords v201710.
* Resolved issues:
- Issue 224: https://github.com/googleads/googleads-python-lib/issues/224
- Issue 228: https://github.com/googleads/googleads-python-lib/issues/228
8.0.0 -- 8/22/17
* Removed support and examples for AdWords v201609.
* Resolved issues:
- Issue 219: https://github.com/googleads/googleads-python-lib/issues/219
- Issue 220: https://github.com/googleads/googleads-python-lib/issues/220
7.0.0 -- 8/15/17
* Added support and examples for DFP v201708.
* Removed support and examples for DFP v201608.
6.1.0 -- 8/9/17:
* Added support for AdWords v201708.
6.0.0 -- 6/27/17:
* Removed support for AdWords v201607.
* Improved logging support. Can now specify logging configuration from the
configuration file.
* Added new GoogleAccessTokenClient, a non-refreshable client that only requires
the access token.
* Resolved issues:
- Issue 84: https://github.com/googleads/googleads-python-lib/issues/84
- Issue 171: https://github.com/googleads/googleads-python-lib/issues/171
5.6.0 -- 6/01/17:
* Added support for AdWords v201705.
5.5.0 -- 5/23/17:
* Added more expressive python utility to build DFP PQL statements.
* Support building DFP SOAP entities with native python date/datetime objects.
* Added support and examples for DFP v201705.
* Removed support and examples for DFP v201605.
5.4.0 -- 4/25/17:
* Resolved issues:
- Issue 200: https://github.com/googleads/googleads-python-lib/issues/200
- Issue 196: https://github.com/googleads/googleads-python-lib/issues/196
5.3.0 -- 3/20/17:
* Removed support for AdWords v201605.
* Removed examples for AdWords v201605.
* Added support for the complete set of DFP report download options.
* Resolved issues:
- Issue 169: https://github.com/googleads/googleads-python-lib/issues/169
5.2.0 -- 3/1/17:
* Added support for AdWords v201702.
* Resolved issues:
- Issue 110: https://github.com/googleads/googleads-python-lib/issues/110
- Issue 180: https://github.com/googleads/googleads-python-lib/issues/180
5.1.0 -- 2/13/17:
* Added support for DFP v201702.
* Removed examples for DFP v201605.
* Removed support for DFP v201602.
* Resolved issues:
- Issue 166: https://github.com/googleads/googleads-python-lib/issues/166
- Issue 176: https://github.com/googleads/googleads-python-lib/issues/176
Issue 177: https://github.com/googleads/googleads-python-lib/issues/177
5.0.0 -- 1/13/17:
* BREAKING CHANGE: The underlying suds client now has cache enabled. By default,
suds uses FileCache which requires access to local file system and will break
users using Google App Engine. For more details on how to configure or disable
caching, see the README.
* The library will now automatically apply a monkey patch to the suds-jurko
dependency on initialization that will modify the suds.transport.http module.
The patch modifies HttpTransport's send method such that it can detect and
decompress a gzip encoded SOAP body.
* Added new "enable_compression" optional keyword argument for AdWordsClient and
DfpClient. If set True, the client will request gzip compression and
automatically decompress the SOAP body for you. For more details on this
feature, see:
https://developers.google.com/adwords/api/docs/guides/bestpractices?hl=en#use_compression
* Resolved issues:
Issue 77: https://github.com/googleads/googleads-python-lib/issues/77
Issue 97: https://github.com/googleads/googleads-python-lib/issues/97
* Resolved pull requests:
PR 79: https://github.com/googleads/googleads-python-lib/pull/79
PR 81: https://github.com/googleads/googleads-python-lib/pull/81
PR 91: https://github.com/googleads/googleads-python-lib/pull/91
PR 99: https://github.com/googleads/googleads-python-lib/pull/99
4.8.0 -- 11/29/16:
* Added support for DFP v201611.
* Removed support for DFP v201508 and v201511.
* Removed examples for DFP v201602.
* Resolved issues:
Issue 138: https://github.com/googleads/googleads-python-lib/issues/138
Issue 147: https://github.com/googleads/googleads-python-lib/issues/147
Issue 152: https://github.com/googleads/googleads-python-lib/issues/152
Issue 158: https://github.com/googleads/googleads-python-lib/issues/158
Issue 162: https://github.com/googleads/googleads-python-lib/issues/162
* Resolved Pull Requests:
PR 163: https://github.com/googleads/googleads-python-lib/pull/163
4.7.0 -- 10/25/16:
* Removed support for AdWords v201603.
4.6.1 -- 9/30/16:
* Added support for AdWords v201609.
* The library now automatically applies filters to log output to sanitize its
contents of sensitive data. For more details on how to configure logging or
disable log filtering, see the README.
* The library will now log warnings if it detects that it is being run with
Python versions below 2.7.9.
4.5.1 -- 8/30/2016:
* Resolved issue #148:
https://github.com/googleads/googleads-python-lib/issues/148
4.5.0 -- 8/26/2016
* AdWordsClient's initializer no longer requires the user_agent field. This
field is also now validated to ensure that it only contains ASCII characters.
* Removed support and examples for AdWords v201601.
* Removed upgrade_ad_url example for AdWords v201605 and v201607.
4.4.0 -- 8/23/2016
* Removed support for DFP v201505.
* Added support for DFP v201608.
* Removed examples for DFP v201508 and v201511.
4.3.0 -- 7/29/2016
* Added support for AdWords v201607.
4.2.0 -- 6/13/2016
* Removed support and examples for AdWords v201509.
* The AdWords ReportDownloader now accepts a "client_customer_id" keyword
argument that overrides the default client customer ID.
* For utilities such as the ReportDownloader or BatchJobHelper, data points
about usage are now sent in the user-agent of API requests by default. This
can be disabled with the new include_utilities_in_user_agent configuration in
the googleads.yaml file.
* Added a new parallel_report_download.py example.
* Resolved issues:
Issue #122: https://github.com/googleads/googleads-python-lib/issues/122
Issue #123: https://github.com/googleads/googleads-python-lib/issues/123
4.1.0 -- 5/26/2016
* Added support for AdWords v201605.
* Added new use_raw_enum_values keyword argument to the AdWords ReportDownloader
utility.
4.0.0 -- 5/17/2016
* Add support for DFP v201605.
* Removed examples for DFP v201505.
* Removed support for DFP v201502.
* Improved proxy support.
* BREAKING CHANGE: The googleads.common.LoadFromStorage function has been
updated to accommodate the current proxy support. This will break users with
a proxy configured. Check out the changes in our sample googleads.yaml file
to see the new format.
3.15.0 -- 4/11/2016
* Removed support for AdWords v201506.
* Resolved issues:
Issue #108: https://github.com/googleads/googleads-python-lib/issues/108
Issue #111: https://github.com/googleads/googleads-python-lib/issues/111
3.14.0 -- 3/25/2016
* Added support for AdWords v201603.
* Resolved Issues:
Issue #105: https://github.com/googleads/googleads-python-lib/issues/105
Issue #106: https://github.com/googleads/googleads-python-lib/issues/106
3.13.0 -- 2/23/2016
* Added support for DFP v201602.
* Removed support for DFP v201411.
* Removed examples for DFP v201502.
* The library now applies a temporary patch to the suds-jurko dependency that
resolves multiple issues. This patch will be removed when the suds-jurko
library publicly exposes its 0.7 release. Thanks to GitHub user adiharush for
suggesting the patch!
* The LoadFromStorage function can now load credentials for either the
installed application or service account (.p12 files only) OAuth2 flows.
* The googleads.yaml configuration file has been updated to reflect the changes
to the LoadFromStorage function.
* Resolved Issues:
Issue #58: https://github.com/googleads/googleads-python-lib/issues/58
Issue #62: https://github.com/googleads/googleads-python-lib/issues/62
Issue #63: https://github.com/googleads/googleads-python-lib/issues/63
Issue #68: https://github.com/googleads/googleads-python-lib/issues/68
Issue #78: https://github.com/googleads/googleads-python-lib/issues/78
3.12.0 -- 02/01/2016
* Removed DoubleClick Ad Exchange content. This API has been sunset.
* Added support for AdWords v201601.
* Updated the AdWords account_management get_account_hierarchy.py example to
properly handle the case where ManagedCustomerService.get returns multiple
pages of results.
* Refactored AdWords upload_offline_conversions.py example, moved to
remarketing.
* Refactored AdWords add_complete_campaigns_using_batch_job.py example, moved to
campaign_management.
* The AdWords BatchJobHelper and IncrementalUploadHelper utilities now
initialize URLs for v201601 and up.
* The AdWords IncrementalUploadHelper is now serializable.
3.11.0 -- 11/24/2015
* Removed support for AdWords v201502.
* Added incremental upload support to BatchJobHelper.
* Added the add_keywords_using_incremental_batch_job.py to advanced_operations
examples.
* Moved add_complete_campaigns_using_batch_job.py to advanced_operations.
* The BatchJobHelper can now be used to parse the BatchJob response. Examples
have been updated to demonstrate this.
* The xmltodict library has been added as a new dependency.
* Added option to set additional scopes in generate_refresh_token.py for
AdWords and DFP.
3.10.0 - 11/17/2015
* Removed support for DFP v201405 and v201408.
* Removed examples for v201411.
* Added support for DFP v201511.
3.9.0 - 10/23/2015
* The AdWords BatchJobHelper has been updated and added to the core library.
* Updates to add_complete_campaigns_using_batch_job.py example.
* Fixed issue #85.
3.8.1 - 10/19/2015
* Added BatchJobService example for AdWords v201509.
* Removed GeoLocationService from AdWords v201509 because it isn't available
in this version.
3.8.0 - 10/7/2015
* Removed DFA from GoogleAds SOAP Client Library.
* Added support for AdWords v201509.
* Replaced references to MCC accounts with AdWords manager accounts.
* Added upload_media_bundle as a new misc example for AdWords v201509.
* Added add_html5_ad as a new advanced_operations example for AdWords v201509.
* Added add_crm_based_user_list as a new remarketing example for AdWords
v201509.
3.7.1 - 9/4/2015
* Fixed issue #68.
* Updated the get_keywords AdWords sample.
3.7.0 - 8/20/2015
* Update ServiceAccount constructor to open p12 file in binary mode.
* Added support for v201508 for the Doubleclick for Publishers Client Library.
* Removed support for v201403 for the Doubleclick for Publishers Client Library.
3.6.0 - 7/31/2015
* Removed support for AdWords v201409.
* Removed examples for AdWords v201409.
3.5.0 - 6/26/2015
* Added support for v201506 of the AdWords Client Library.
* Reporting parameters in ReportDownloader utility now in **kwargs.
* Added new "include_zero_impressions" reporting parameter as keyword argument
for ReportDownloader utility methods.
3.4.1 - 5/22/2015
* Fixed issue #55
* Fixed issue #57
3.4.0 - 5/19/2015
* Added support for DFP v201505.
* Removed examples for DFP v201405.
3.3.0 - 3/25/2015
* Fixed issue #47.
* Removed support for AdWords v201406.
* Removed examples for AdWords v201406.
3.2.0 - 3/12/2015
* Added support for v201502 of the AdWords Client Library.
* Removed CampaignAdExtensionService (from v201502).
* Added AccountLabelService (to v201502)
* Added hard feed types examples, moved to new "extensions" examples.
* Added example for shared sets.
* Minor fixes to reporting examples.
* Updated some existing samples for new API version.
* DFP clients now require you to set an application name.
3.1.1 - 2/25/2015
* Added new example for migrating to Upgraded URLS.
* Updated examples to reference final URLs.
3.1.0 - 2/17/2015
* Added support for v201502 for the DoubleClick for Publishers Client Library.
* Removing support for v201311, v201308, and v201306.
* Removed examples for v201403.
* Updated ForecastService examples.
* Added PackageService, ProductPackageService, and ProductPackageItemService.
* Fixed comments and settings for targetAll in add_ad_groups.py examples.
3.0.1 - 1/21/2015
* Push with updated PyDocs.
3.0.0 - 1/5/2015
* Three new dependencies have been added: httplib2, oauth2client, and pysocks.
* One dependency has been removed: oauthlib
* BREAKING CHANGE: Python3 versions < 3.3 are no longer supported.
* BREAKING CHANGE: The https_proxy argument for the GoogleRefreshTokenClient has
been deprecated. It has been replaced by proxy_info, which is an optional
argument taking an httplib2.ProxyInfo instance.
* PYTHON2 ONLY: You may now authorize with Service Accounts using the new
GoogleServiceAccountClient. As of this release, it will only work with
Python2.
* Added new Service Account authorization examples for AdWords, DFA, and DFP.
* The googleads.yaml file has been refactored to reflect the changes to proxy
support.
* WARNING: As of this release, you must set disable_ssl_certificate_validation
to False when using Python3.
* Added new examples for DFP Sales Manager: PremiumRateService, BaseRateService,
ExchangeRateService, RateCardService, WorkflowRequestService, ProductService,
ProductTemplateService.
2.3.0 - 12/05/2014
* Removed v201402 support.
* The return_money_in_micros argument has been removed from the AdWords
ReportDownloader.
* Fixed issue #33: Bad output generated by get_keyword_ideas.py.33
* Fixed issue #37: https_proxy wouldn't work for AdWords ReportDownloader.
* Fixed issue #39: AdWords ReportDownloader couldn't download report via
BytesIO.
* Fixed issue #41: estimate_keyword_traffic couldn't handle case where
clicksPerDay or impressionsPerDay were 0.
* Accepted Pull Request #45: Added manual refresh option to
GoogleRefreshTokenClient.
2.2.0 - 11/11/2014
* Added support for v201411 of the DoubleClick for Publishers Client
Library.
* Added SharedAdUnitService and AdExclusionRuleService.
* Fixed issue for float support as 'not iterable' (Fixed issue #36).
* Added App Engine AdWords example.
2.1.0 - 10/09/2014
* Added support for v201409 of the AdWords/DoubleClick Ad Exchange Client
Library.
* Added convenience method for setting Client Customer Id to AdWordsClient.
* Added ReportDownloader convenience methods.
* Fixed upload_offline_conversions example. (Fixed issue #24)
* Fixed issue creating complex types. (Fixed issue #18)
2.0.2 - 09/03/2014
=================
* Added Ad Customizer example for AdWords.
* Extend timeout on SUDs to correspond to access token expiry.
2.0.1 - 08/20/2014
=================
* Added support for v201408 for DFP client library.
* Removed RateCardCustomizationService and RateCardCustomizationGroupService,
replaced with PremiumRateService.
* Changed OAuth2 scope to https://www.googleapis.com/auth/dfp/
* Changed DFP endpoint to https://ads.google.com/
2.0.0 - 07/22/2014
=================
* AdGroups/Campaigns no longer renamed on remove/delete in examples, obsolete.
* GoogleAdsValueError now thrown when returnMoneyInMicros is sent with v201406.
1.0.7 - 07/7/2014
=================
* Added support for v201406 of the AdWords/DoubleClick Ad Exchange Client
Library.
* Added CampaignSharedSetService, LabelService, SharedCriterionService, and
SharedSetService for AdWords.
* Updated AdWords OAuth2 scope.
See: https://developers.google.com/adwords/api/docs/guides/authentication.
1.0.6 - 05/29/2014
==================
* Add support for v201405 for DFP client library.
1.0.5 - 05/07/2014
==================
* Fixed an issue where PQL fields weren't encoding properly / not handling None
responses correctly. This resolves issue #9.
* Fixed an issue where the AdWords ReportDownloader would fail when downloading
gzipped reports. Now better documents the need to use binary files in this
case. This resolves issue #6.
* Fixed an artifact from issue #5, ReportDownloader now sets https_proxy before
retrieving the WSDL.
1.0.4 - 04/22/2014
==================
* Fixed a bug where https_proxy wasn't set for retrieving the API WSDL. This
resolves issue #5.
1.0.3 - 04/02/2014
==================
* The common module's LoadFromStorage method now parses the yaml file with
safe_load rather than load.
* Fixed a typo in examples/dfa/authentication/create_dfa_client_without_yaml.py
(the service was 'CampaignService' instead of 'campaign'). This resolves
issue #4.
* Changed examples/dfa/authentication/create_dfa_client_without_yaml.py to run
against the DFA test environment in order to match all other DFA examples.
* Changed common._PackForSuds to force suds to serialize empty objects into XML.
There are many use cases for this in Google's Ads APIs, such as passing empty
search criteria into DFA search methods in order to select everything.
1.0.2 - 03/20/2014
==================
* Fixed a typo in examples/dfp/authentication/generate_refresh_token.py (there
was a trailing comma after the scope).
1.0.1 - 03/13/2014
==================
* Fixed a bug with the AdWords ReportDownloader failing to decode unicode
characters in reports. This resolves issue #1.
1.0.0 - 03/05/2014
==================
Initial version of the googleads Python library.