* 29.2.0
- Google Ads API v23_1 release.
- Update Google Ads API v20, v21, and v22 to include EU political advertising changes.
- Add upload_video example.
- Add text guidelines to performance max example.

* 29.1.0
- Add configurable metadata header for ads api assistant.

* 29.1.0
- Add configurable metadata header for ads api assistant.

* 29.0.0
- Google Ads API v23_0 release.
- Remove Google Ads API v19.

* 28.4.1
-  Fix issues with async functionality per issue #1045.

* 28.4.0
-  Update GoogleAdsClient.get_services method to expose async service clients.

* 28.3.0
- Add support for Application Default Credentials (ADC) functionality.
- Add annotations to google/ads/googleads/*.py files.
- Add minor unit test improvements.

* 28.2.0
- Add support for Python 3.14.

* 28.1.1
- Upgrade minimum version of nox so it's compatible with the "uv" backend.

* 28.1.0
- Google Ads API v22_0 release.

* 28.0.0
- Google Ads API v21_0 release.
- Updated to Google Ads API v19_0 and v20_0 to include EU political advertising changes.
- Remove Google Ads API v18.
- Add deprecation warnings for Python 3.9 users.
- Add type annotations to all examples.
- Add unit tests covering some examples.

* 27.0.0
- Google Ads API v20_0 release.
- Remove Google Ads API v17.
- Add example for generating audience insights.
- Add example for creating demand gen campaign.

* 26.1.0
- Google Ads API v19_1 release.
- Add two new examples for budget recommendations.
- Fix bug in normalize_and_hash function in enhanced conversions examples.
- Update enhanced conversions for leads example to include session attributes.

* 26.0.1
- Rename constraints file to resolve install issues on Windows
- Update add_customer_match_user_list.py to remove mention of unlimited list expiry (#921)
- Fix issue importing types defined in service protos

* 26.0.0
- Migrate to default GAPIC templates
- Migrate from setup.py to pyproject.toml
- Remove Google Ads API v16
- Add support for Python 3.13
- Remove support for Python 3.8

* 25.2.0
- Google Ads API v19 release.

* 25.1.0
- Google Ads API v18 release.

* 25.0.0
- Google Ads API v17_1 release.
- Remove support for Google Ads API v15.
- Add support for protobuf version 5
- Add deprecation warning for Python 3.8 and below.

* 24.1.0
- Google Ads API v17 release.
- Remove page_size parameter from Search requests in all examples.

* 24.0.0
- Google Ads API v16_1 release.
- Remove support for Google Ads API v14.
- Remove the following obsolete examples:
  - account_management/approve_merchant_center_link.py
  - account_management/reject_merchant_center_link.py
  - remarketing/add_flights_feed.py
  - remarketing/add_real_estate_feed.py
- Added example account_management/verify_advertiser_identity.py.
- Update example remarketing/upload_conversion_adjustment.py to use order ID.
- Update all examples to initialize client after CLI argument validation.

* 23.1.0
- Google Ads API v16 release.
- Use native `open` function to load README in setup.py.
- Remove `namespace_packages` parameter in call to `setup` in setup.py.
- Remove `upload_image` and `upload_media_bundle` examples.
- Combine detect and apply recommendations examples.
- Update extensions-related examples to use assets instead.

* 23.0.0
- Remove support for Python 3.7
- Add support for Python 3.11 and 3.12
- Remove support for Google Ads API v13
- Add Docker support for unit tests
- Switch to a native/implicit namespace package
- Remove usage of pkg_resources

* 22.1.0
- Google Ads API v15 release.
- Add configuration option allowing developer token to be ignored.
- Make "impersonation_email" an optional configuration for service accounts.
- Redact PII fields from new LocalServicesLead and LocalServicesLeadConversation in logs.
- Add DMA consent to conversions and Customer Match examples.
- Update enhanced conversions examples to fit with for-leads and for-web workflows.
- Update usage of ProductBiddingCategoryConstant to ProductCategoryConstant in examples.

* 22.0.0
- Remove support for Google Ads API v12.

* 21.3.0
- Google Ads API v14_1 release.
- Increase maximum version for proto-plus and google-api-core dependencies.
- Remove add_keyword_plan example.
- Add generate_forecast_metrics and generate_historical_metrics examples.
- Add deprecation warning for Python 3.7.

* 21.2.0
- Google Ads API v14 release.
- Lower minimum version requirement for dependencies:
  - google-api-core
  - googleapis-common-protos
  - proto-plus
  - protobuf.
- Update unit tests to run with lowest-supported Google-maintained dependencies.
- Update upload_conversion_enhancement example with recommended placeholder names.
- Update place_id field to place_ids in add_performance_max_for_travel_goals_campaign example.
- Add add_things_to_do_ad example.
- Remove examples:
  - generate_forecast_metrics
  - generate_historical_metrics
  - get_campaign_criterion_bid_modifier_simulations

* 21.1.0
- Google Ads API v13_1 release.
- Add Python versions 3.8, 3.9, and 3.10 to list of classifiers.
- Remove restatement functionality from upload_conversion_enhancement example.
- Move examples/hotel_ads to examples/travel
- Update metadata_interceptor tests to dynamically retrieve Python version.

* 21.0.0
- Remove support for Google Ads API v11.
- Update examples to use recommended example PII.
- Increase maximum support version of google-auth-oauthlib to < 2.0.0.
- Fix bug in add_customer_match_user_list example.
- Add add_dynamic_page_feed_asset example.
- Add add_performance_max_for_travel_goals_campaign example.
- Update create_experiment example to get campaign ID from experiment arm response.

* 20.0.0
- Remove support for Google Ads API v10.
- Google Ads API v13 release.
- Extend version range for proto-plus and google-api-core
- Update add_customer_match_user_list example with more complex user identifiers
- Remove add_expression_rule_user_list example
- Update remarketing examples to use flexible rule user lists
- Update get_ad_group_bid_modifiers example to remove preferred content criteria

* 19.0.0
- Google Ads API v12 release.
- Bump proto-plus to 1.22.1.
- Remove example for Add Dynamic Page Feed.
- Remove example for Add Smart Display Ad.
- Remove example for Add Local Campaign.
- Remove usage of GenerateProductMixes in Forecast Reach example.
- Update example Create Experiment to rename ExperimentArm.trial to ExperimentArm.experiment.
- Update example Add Smart Campaign to support KeywordThemeSuggestion changes.

* 18.1.0
- Google Ads API v11_1 release.
- Bump protobuf dependency to version 4.21.5.
- Bump proto-plus dependency to version 1.22.0.
- Update examples to remove references to expanded text ads.
- Fix bug preventing https protocol in proxy URLs.
- Various example updates.

* 18.0.0
- Remove support for Google Ads API v9.
- Added "pb" user agent key/value pair.
- Change validate_text_ad example to use an RSA instead of ETA.
- Rename get_artifact_metadata example to search_for_google_ads_fields.
- Fix various issues in create_experiment example.

* 17.0.0
- Google Ads API v11_0 release.
- Added example create_experiment.
- Added example detect_and_apply_recommendations
- Updated example add_smart_campaign

* 16.0.0
- Add support for fog Google Ads API v10_1.
- Remove support for Google Ads API v8.
- Replace authentication examples with one file generate_user_credentials.py.

* 15.1.1
- Bump protobuf dependency to 3.20.0 excluding 3.18.* and 3.19.*.
- Remove duplicate google-api-core dependency.

* 15.1.0
- Fix issue preventing streaming responses from being logged.
- Expose logging utilities for external interceptor logic.
- Various example updates and improvements.

* 15.0.0
- Google Ads API v10_0 release.
- Remove all "get" methods from services.
- Remove services that only contained "get" methods.
- Remove support got Google Ads API v7_0.

* 14.1.0
- Google Ads API v9_0 release
- Update gRPC transport logic to replace "gapic" user-agent with "gccl"
- Update examples to support v9 changes
- Add new Performance Max examples
  advanced_operations/add_performance_max_campaign.py and
  shopping_ads/add_performance_max_retail_campaign.py

* 14.0.1
- Pin protobuf to < 3.18.0
- Add examples add_bidding_data_exclusion, add_bidding_seasonality_adjustment
- Style updates for examples that use search_stream
- Fix hardcoded URLs for media in various examples

* 14.0.0
- New required configuration value to specify protobuf message types, see:
  https://developers.google.com/google-ads/api/docs/client-libs/python/protobuf-messages
- Google Ads API v8_1 release.
- Remove support for Google Ads API v6.

* 13.0.0
- Bump the minimum Python version requirement to 3.7+
- Fix package name in base transport files
- Update examples to new "client.enums" syntax
- Move CSV reporting example to migration directory
- Various minor updates to examples and documentation.

* 12.0.0
- Google Ads API v8_0 release.
- Deprecate Google Ads API v5_0.
- *NOTE* This will be the last release to support Python 3.6.

* 11.0.2
- Update dataclasses dependency so it's only installed when using Python < 3.7

* 11.0.1
- Fix bug breaking Python 3.6 compatibility.
- Update unit test framework to Nox and add test coverage.
- Various updates to examples and GitHub issue templates.

* 11.0.0
- Google Ads API v7_0 release.
- Deprecate Google Ads API v4_0.
- Add http proxy support.

* 10.0.0
- Revamp of protobuf message interface to improve usability. See:
https://developers.google.com/google-ads/api/docs/client-libs/python/library-version-10
- Remove ResourceName utility
- Add ability to specify API version at client level, which overrides setting
  at service or type level.
- GoogleAdsClient.get_type is now an instance, not class, level method
- Add copy_from helper method to GoogleAdsClient.
- Add "enums" attribute to GoogleAdsClient for easier Enum accessing.
- Various updates to all examples

* 9.0.0
- Google Ads v6_1 release
- Deprecate v3_0
- Add log masking for CustomerUserAccessInvitation.email_address field.
- Update examples to reflect changes to resource name helper methods.

* 8.2.0
- Added new client configuration environment variables.
- Added ability to configure YAML file location via environment variable.
- Added support for linked-customer-id header.

* 8.1.0
- Added support for Python 3.6 via PEP562 (Thanks @infectious!)

* 8.0.0
- Google Ads v6_0 release
- Deprecate v2_0
- Update all examples to support migration from wrapper types to primitives.
- Add masking logic to prevent PII in requests/responses from being logged.

* 7.0.0
- Google Ads v5_0 release
- Updates to examples to support addition of field presence on certain
  resources, changing from accessing wrapper types to accessing primitives.

* 6.0.0
- Google Ads v4_0 release
- Deprecate v1_0
- Updates to various examples to standardize param names and make
  changes to support v4.

* 5.1.0
- Google Ads v3_1 release
- Add add_campaign_labels example
- Fixed issues in services/enum.py in v2 and v3

* 5.0.4
- Enable logging interceptor to retrieve customer ID from resource_name.
- Fix bugs in services/enums.py files in v2 and v3.

* 5.0.3
- Fix bug in generated init files preventing import *.

* 5.0.2
- Remove response error caching in streaming interceptors.

* 5.0.1
- Defer loading of error_pb2 until failed response is encountered.

* 5.0.0
- Google Ads v3_0 release

* 4.1.1:
- Fix for types.py to include classes of dependent modules

* 4.1.0:
- Performance improvements
- Updated dependencies for more recent versions
- Bumped Python version to 3.7+

* 4.0.0:
- Removing support for Python 2

* 3.3.0:
- Google ads v2_2 release

* 3.2.0:
- Google ads v2_1 release
- Fix formatting typo in README
- Add AdWords -> Google Ads migration examples

* 3.1.2:
-  Update signature for customer_service.create_customer_client method to
   give default values to optional parameters.

* 3.1.1:
- Refactor GoogleAdsClient to isolate interceptors into individual modules
- Update partial failure example so it can be parsed for documentation
- Add get_campaigns_by_label example
- Add set_ad_parameters example

* 3.1.0:
- Add load_from_dict method to the GoogleAdsClient
- Update add_expanded_text_ads example to add multiple ads
- Add build status badge to README

* 3.0.0:
- Google Ads v2_0 release

* 2.4.1:
- Fix bug preventing login_customer_id to be loaded as an int

* 2.4.0:
- Add utf-8 encoding declaration in generated proto files
- Add Service Account support
- Increase default gRPC message and metadata sizes

* 2.3.0:
- Allow loading client configuration from environment variables

* 2.2.0:
- Update service-level timeout and idempotency configurations
- Add link_manager_to_client example
- Add add_dsa_campaign example
- Add dynamic page feed example
- Add add_gmail_ad example
- Add create_campaign_experiment example
- Add wiki link to README

* 2.1.0:
- Google Ads v1_3 release

* 2.0.0:
- Google Ads v1_2 release
- Update example file names
- Remove support for v0

* 1.3.1:
- Add new planning examples add_keyword_plan and generate_forecast_metrics
- Add new example generate_keyword_ideas
- Update README to link to the Google Ads API Support page

* 1.3.0:
- Update payment_mode enum with fields for v1_1
- Update PyYAML dependency to latest stable version
- Add utility for formatting composite resource names

* 1.2.0:
- Google Ads v1_1 release
- Add add_sitelink example

* 1.1.1:
- Fix bidding source proto adding missing fields from API v1.

* 1.1.0:
- Install googleapis-common-protos to expose google.longrunning for LRO
support.

* 1.0.1:
- Fix bug in import path from issues #45 and #44.

* 1.0.0:
- Google Ads v1_0 release.
- Move examples out of v0 directory.
- Add dismiss_recommendations example.
- Add get_hotel_ads_performance example.

* 0.7.0:
- Google Ads v0_7 release.
- Address inconsistent exception handling in Exception and Logging
interceptors.
- Pin `google-api-core` and `grpcio` dependencies.

* 0.6.0:
- Add configurable logging functionality.

* 0.5.2:
- Updated PyYAML dependencies to >=4.2b1 for https://nvd.nist.gov/vuln/detail/CVE-2017-18342

* 0.5.1:
- Fix bug related to usage of private grpc._interceptor._ClientCallDetails class

* 0.5.0:
- Google Ads v0_6 release.
- Updating add_campaign_targeting_criteria.py example to add
  create proximity operation
- Updating apply_recommendation.py example to pass required parameter
  partial_failure=False
- Updating get_geo_target_constant_by_names.py example to add
  new required country_code parameter
- Updating client.py to accept a login_customer_id
- Fixing bug in ExceptionInterceptor to improve error logging. Resolves GitHub
  issue #8: https://github.com/googleads/google-ads-python/issues/8

* 0.4.0:
- Google Ads v0_5 release.
- Adding remarketing/add_conversion_action.py example.

* 0.3.0:
- Google Ads v0_4 release.
- Resolving GitHub issue #3:
  https://github.com/googleads/google-ads-python/issues/3

* 0.2.0:
- Google Ads v0_3 release.

* 0.1.0:
- Initial release with support for Google Ads API v0.
