5.4.0
- Added support and examples for v201806.

5.3.0
- Removed examples and support for v201705 and v201708.
For future sunset dates, see
https://developers.google.com/adwords/api/docs/sunset-dates
- Fixed https://github.com/googleads/googleads-perl-lib/issues/25.

5.2.0
- Added support and examples for v201802.
- Added new example add_shopping_dynamic_remarketing_campaign.pl showing how to
add a display campaign linked to a merchant account and a remarketing list.
- Updated the add_universal_app_campaign.pl example to include appVendor.
- Updated add_audience.pl and add_conversion_trackers.pl to use gtag instead
of a snippet.
- Updated the create_account.pl example to show whitelisted users how to use
inviteeEmail and inviteeRole.
- Updated add_crm_based_user_list.pl example to demonstrate that a whitelist
is no longer needed for AddressInfo and that uploadKeyType is now required.
- Updated get_keyword_bid_simulations.pl to include new fields.
- Updated upload_offline_data.pl example to use new partial error handling.

5.1.0
- Removed examples and support for v201702. For future sunset dates, see
https://developers.google.com/adwords/api/docs/sunset-dates
- Added the ReportQueryBuilder utility for building AWQL queries for reporting.
An example of using this utility can be found in
download_criteria_report_with_awql.pl.
- Added the ServiceQueryBuilder utility for building AWQL queries for services.
An example of using this utility can be found in
get_campaigns_with_awql.pl.
- Updated the upload_offline_data.pl example to show both third party and first
party uploads.

5.0.0
- Replaced XML::XPath with XML::LibXML, which resulted in a significant
  improvement in memory usage and performance.
  See https://github.com/googleads/googleads-perl-lib/wiki/SOAP-Dependencies
  for details.
- Fixed https://github.com/googleads/googleads-perl-lib/issues/20.
- Update examples with the latest features including add_ad_groups.pl,
  update_ad_group.pl, and upload_offline_data.pl.

4.18.0
- Added support and examples for v201710.
- Added a new upload_offline_data.pl example for whitelisted API users
who upload store sales transactions.
- Added a new example add_customer_neagtive_criteria.pl, shwoing how
to add negative criteria at the customer level.
- Updated the add_conversion_trackers.pl example by removing no longer
supported fields.
- Updated examples related to ad disapprovals with the new
policyTopicHelpCenterUrl and evidenceText fields.
- Updated examples to configure ad rotations at the ad group level
instead of the campaign level.

4.17.0
- Removed examples and support for v201609. For future sunset dates, see
https://developers.google.com/adwords/api/docs/sunset-dates

4.16.0
- Added support and examples for v201708.
- Updated the add_responsive_display_ad.pl example to demonstrate
  new features.

4.15.0
- Removed examples and support for v201607. For future sunset dates, see
https://developers.google.com/adwords/api/docs/sunset-dates
- Logging was updated so that failed SOAP and summary messages are logged
as INFO while successful SOAP and summary messages are logged as DEBUG.
A request will now be logged at the same time as a response.
- Added 'use strict' and 'use warnings' to various modules and fixed
POD issues in non-generated code in order to improve the quality of
the library.

4.14.0
- Added support and examples for v201705.
- Updated add_shopping_campaign.pl to include an option of creating an
optional default partition.
- Updated add_crm_based_user_list.pl to include an example of uploading
address info and uploading members.
- Added add_campaign_groups_and_performance_targets.pl to show how
to use the new CamapignGroup and CampaignGroupPerformanceTarget services.

4.13.0
- Removed examples and support for v201605. For future sunset dates, see
https://developers.google.com/adwords/api/docs/sunset-dates
- Updated summary and SOAP logging to include more detailed messages.
- Updated add_site_links_using_feeds examples to use field and constant names
that are consistent with the field names of SiteLinkFeedItem.

4.12.0
- Added support and examples for v201702.
- Added example add_shopping_campaign_for_showcase_ads.pl for showing how to
add shopping campaigns with Showcase ads.
- Updated ErrorUtils.pm, handle_partial_failures.pl, and
handle_policy_violation_error.pl to use the new FieldPathElement.pm to
discover the index of an error.
- Renamed download_criteria_report.pl to
download_criteria_report_with_selector.pl.
- Changed the 'approval_prmopt' parameter to 'prompt' in the
OAuth autorization flow to match newer standards.

4.11.0
- Removed examples and support for v201603. For future sunset dates, see
https://developers.google.com/adwords/api/docs/sunset-dates
- The includeZeroImpressions field in ReportDefinition is no longer available
as it is no longer supported by the AdWords API in any supported versions.
Either set the reporting.includeZeroImpressions property in adwords.properties
or set includeZeroImpressions in ReportingConfig.
- Updated BatchJobHandlerError and ReportDownloadError to have STRINGIFY.
- Added the example accept_service_link.pl that accepts a pending invitation
to link your AdWords account to a Google Merchant Center account.

4.10.0
- Added support and examples for v201609.
- Added add_universal_app_campaign.pl example.

4.9.0
- Removed examples and support for v201601. Note that MutateJobService is no
longer available; please use BatchJobService.
- In previous versions, the adwords.properties userAgent would default to your
script's name e.g. $0. Now, the value will default to 'unknown'. This value
can no longer be non-ASCII.

4.8.0
- Added examples and support for v201607. The examples include:
 - The addition of a landscapeImage in add_click_to_download.pl.
 - The addition of a geoTargetingRestriction in add_site_links.pl and
   add_site_links_using_feeds.pl.
 - The addition of add_prices.pl showing how to add price extension
   using CustomerExtensionSettingService.

4.7.1
- In OAuth2 service account authentication, added JSON keyfile support.
In the adwords.properties file, there is now a new property called
oAuth2ServiceAccountJSONFile. Change over from PEM keyfiles to JSON keyfiles
as PEM keyfiles are now deprecated.

4.7.0
- Removed examples and support for v201509.
- Added parallel_report_download.pl example to show downloading multiple
reports.

4.6.0
- Added examples and support for v201605. The examples include:
 - The addition and retrieval of expanded text ads.
 - The addition of responsive ads for display.
 - A new reporting.useRawEnumValues property in adwords.properties that
   provides the option of returning enum values rather than display values for
   enum fields.
 - The retrieval of platform stats in estimate_keyword_traffic.pl.

4.5.0
- Removed examples and support for v201506. For future sunset dates, see
https://developers.google.com/adwords/api/docs/sunset-dates

4.4.0
- Added examples and support for v201603.
- The default version is now v201603.
- The MutateJobService no longer exists for v201603.
- The DraftService, DraftAsyncErrorService, TrialService, and
TrialAsyncErrorService with examples have been added.
- Added the authenticate_with_web_flow.pl example to demonstrate how to set
up OAuth2 web flow in a Perl application that uses this library.
- adwords.properties has a new header.userAgent.includeUtilities property that
controls sending utility usage in the header's user agent. By default, this is
set to 1 (true).
- Removed deprecated method Google::Ads::Common::ReportUtils->download_report.
To replace this in your code, call 'get_report_handler' on ReportUtils, which
returns a Google::Ads::Common::ReportDownloadHandler. Then, call 'save' on
the returned Google::Ads::Common::ReportDownloadHandler.
- The includeZeroImpressions option in the ReportDefinition is no longer
available for v201603 and later and has been deprecated. Either set the
reporting.includeZeroImpressions property in adwords.properties or set
includeZeroImpressions in ReportingConfig.
- In bidding, the phrase 'Shared' has been changed to 'portfolio' and
'non-shared (anonymous)' has been changed to 'standard'.

4.3.0
- Added examples and support for v201601.
- BatchJobHanlder was modified to return a BatchJobHanlderStatus
when uploading operations. This BatchJobHandlerStatus needs to
now be created before uploading incremental operations.
- Added paging to the get_account_hierarchy.pl example.
- Updated the PageProcessor to include the new method is_end_of_page.

4.2.0
- Removed support for v201502.
- Added an example for streaming reports.

4.1.0
- Added examples and support for v201509.
- The default version is now v201509.
- Added a new utility called BatchJobHandler for uploading multiple
operations at the same time. This utility is used in conjunction with
BatchJobService. For example, campaigns, ad groups, and criterion can all
be added in one batch job.
- Added a new property to adwords.properties (oAuth2AdditionalScopes) providing
the ability to configure additional OAuth 2.0 scopes.
- Fixed issue on GitHub. See
https://github.com/googleads/googleads-perl-lib/issues/12

4.0.1
- Updated documentation in the comments.
- Updated generating offline credentials to take input from adwords.properties.

4.0.0
- This library now supports a minimum of Perl version 5.14. The version of
  Perl needed to be updated to stay current with newer versions of the
  SOAP library and newer versions of Perl.
- Removed support for v201409.

3.5.0
- Added examples and support for v201506.
- Added a new paging utility for iterating over pages called PageProcessor.pm.
- Introduced new ReportDownloadHandler type and corresponding method
  ReportUtils->get_report_handler to allow for greater flexibility when
  processing report responses. The ReportDownloadHandler provides subroutines
  for downloading a report as a file, a string, or a stream.
  ReportUtils->download_report is now deprecated.
- Added support includeZeroImpressions in the HTTP headers of reports.

3.4.0
- Removed support for v201406.
- Added support in the reporting utilities to skip column headers.
- Rewrote the add_ad_customizers.pl example to use extension setting services.
- Modfied the ad_site_links_using_feeds.pl example to use a function string.
- Updated the migrate_to_extension_settings.pl example to support matching functions.

3.3.0
- Added examples and support for v201502.
- Renamed add_site_links.pl to add_site_links_using_feeds.pl, and added new
  add_site_links.pl and migrate_to_extension_settings.pl examples that use
  the new extension settings services.
- Moved all extensions-related examples to the extensions folder.

3.2.1
- Fix github issue #5:
  https://github.com/googleads/googleads-perl-lib/issues/5
  Log report requests and responses.
- Fix github issue #9:
  https://github.com/googleads/googleads-perl-lib/issues/9
  Properly handle missing values in the estimate_keyword_traffic.pl examples.
- Improved targetAll comments in add_ad_groups.pl examples.
- Added upgrade_ad_url example.
- Updated multiple examples to use upgraded URLs. See
  https://developers.google.com/adwords/api/docs/guides/upgraded-urls.

3.2.0
- Removed support for v201402.
- Fix github issue #3:
  https://github.com/googleads/googleads-perl-lib/issues/3
  Perform a logical comparison of actual vs. expected XML output, ignoring
  the order of elements.

3.1.1
- Changed the distribution name to comply with new CPAN/PAUSE naming
  convention rules. Fixes github issue #6
  (https://github.com/googleads/googleads-perl-lib/issues/6).
- Fix github issue #7:
  https://github.com/googleads/googleads-perl-lib/issues/7
  Always ensure that a ReportingConfiguration is set on the
  Client at construction time, and check for a missing
  ReportingConfiguration in ReportUtils.
- Removed examples and tests that created legacy location extensions
  (CampaignAdExtensions).

3.1.0
- Added examples and support for v201409.

3.0.0
- Removed support for ClientLogin.
- Added add_ad_customizers.pl example. See
  https://developers.google.com/adwords/api/docs/guides/ad-customizers for
  details.
- Modified download_criteria_report.pl and download_criteria_report_with_awql.pl
  examples to write output files to the user's home directory.
- Removed unnecessary calls to Class::Std::initialize() that originally caused
  issue #61 (https://code.google.com/p/google-api-adwords-perl/issues/detail?id=61&can=1).

2.17.0
- Removed support for v201309.
- Added validation to ensure that returnMoneyInMicros is not set on
  reporting requests for versions higher than v201402. See
  https://developers.google.com/adwords/api/docs/guides/reporting-concepts#money.

2.16.0
- Added examples and support for v201406.
- Updated OAuth scope. See
  https://developers.google.com/adwords/api/docs/guides/authentication#scope for
  details.
- Fix github issue #4:
  https://github.com/googleads/googleads-perl-lib/issues/4
  Incorrect attribute references and printf statements in
  upload_offline_conversions.pl.

2.15.0
- Removed support for v201306.

2.14.0
- Added examples and support for v201402.

2.13.0
- Removed support for v201302.

2.12.0
- Added examples and support for v201309.
- Removed examples and support for v201209.
- Bug fixes to issues #58, #61.

2.11.0
- Added examples and support for v201306.
- Added package Google::Ads::AdWords::Reports for reporting classes.
- Removed units count from the Client, units are not longer used.

2.10.0
- Added support and examples for AdGroupBidModifierService.
- Created a new migration examples folder and moved set_campaign_enhanced.pl
  into it.
- Added an example for upgrading legacy sitelinks.

2.9.0
- Removed support for OAuth1.0a.
- Added support for OAuth2 Service Accounts.
- Removed support for sunset v201206 version.
- Bug fixes to issues #56, #57, #58.

2.8.1
- Bug fixes to issues #54 and #55.

2.8.0
- Added examples and support for v201302.

2.7.6
- Added examples for supporting enhanced campaigns through forward compatibility
  maps.

2.7.5
- Removed re-definitions of SOAP::WSDL packages. Implemented a cleaner solution
  based on inheritance. No more need to import the Client module before any
  other SOAP::WSDL object.
- Removed unneeded dependency on the CHI module.

2.7.4
- Removed support of versions v201109 and v201109_1.
- Bug fixes to issues #50 and #51.

2.7.3
- Added support for v201209 and code examples.
- Added support to new reports download error format.

2.7.2
- Fixes to issues #46 and #49.
- Changes to the handle_two_factor_authorization_error.pl code example, to
  adopt the latest authorization logic.

2.7.1
- Bumped default version to v201206.
- Fixes to issues #43 and #45.

2.7.0
- Added support for v201206.
- Added support for OAuth2 and complete revamp of the authorization logic.

2.6.1
- Changes to the library user-agent.
- Enabled gzip compression, please refer to the README for more details.
- Added support to ActivePerl v5.14 32bit version in Windows environments.
- Addressing feature request #42.

2.6.0
- Added support, examples, and tests for v201109_1.

2.5.6
- Removed support to BulkOpportunityService, due to its sunset.
- Added API request accounting capabilities (request, operations and units
  count and logging). See README for more details.
- Added checks to ensure the Google::Ads:AdWords::Client is loaded before any
  other library modules. Contribution by Curtis "Ovid" Poe <ovid@cpan.org>.
- Improved code examples to handle multiple entities per request and show the
  use of optional fields.
- Added example to show how to retrieve statistics from services. See
  examples/v201109/reporting/get_campaign_stats.pl

2.5.5
- Added functional tests for most used API services and code examples.
- Added support for captcha challenges.
- Added handle_captcha_challenge.pl example to demonstrate how to
  programmatically deal with captchas.
- Removed support of deprecated versions in preparation for upcoming sunset,
  refer to http://googleadsdeveloper.blogspot.com/2012/01/55-days-until-adwords-api-deprecation.html

2.5.4
- Fixed issue 39.

2.5.3
- v201109 code examples re-organization. No library changes.

2.5.2
- Adding support and example for CreateAccountService.
- Fixes to get_account_hierarchy.pl example to correctly handle Sandbox
  response.
- Fix and test to issue #37.

2.5.1
- Added required developerToken header to reports download.
- Bug fixes on handling report download statuses.
- Fixes to OAuth logic to better handle misconfigurations.
- Better documentation on OAuth example.

2.5.0
- Added support and examples for v201109.
- Added support and example for downloading ad hoc reports.
- Deprecated support for clientEmail in v201109.

2.4.6
- Fixed issue 28.
- Fixed an issue with a broken image used for image ads examples.

2.4.5
- Added OAuth support.
- Added full XPath support, so now XPath queries can be executed over on
  SOAP returned object.

2.4.4
- Fixed issues 25, 26 & 27.
- Fix an issue with incorrect mapping of SOAP faults.

2.4.3
- Fixed issue 24.
- Added support to cross-client reports.
- Added add_mcc_report_definition.pl and download_mcc_report.pl code examples.

2.4.2
- Fixed issues 22 and 23.
- CHANGED the logic on logging initialization, when relying on default
  logging configuration, logs are now created under the user home folder and
  not spuriously on every directory where scripts are executed.
- Added missing auto-generated files for ConversionTrackerService and
  BulkOpportunity service, please discontinue using version 2.4.1 if planning
  to use either of those services.

2.4.1
- Added support to BulkOpportunityService and code examples.
- Added support to ConversionTrackerService and code examples.
- Modified add_user_list.pl code example to demonstrate how to also retrieve
  the associated conversion tracker code snippet.

2.4.0
- Added support to v201101 release.
- Added code examples for v201101 release.
- Added to support to complex SOAP exceptions; SOAP exceptions containing
  objects are correctly mapped and returned as Perl objects.
- Added support to XPath searches on the top returned SOAP Object, see
  get_all_campaign_budgets.pl example.

2.3.0
- Added support to hashes for sending and receiving data to the API.
- Added add_campaign_using_hashes.pl and get_active_campaigns_using_hashes.pl
  code examples for v201008.
- Added support for handlePartialFailures header.
- Added handle_partial_failures.pl code example for v201008.
- Added support for the returnMoneyInMicros header in ReportUtils.

2.2.0
- Added support for v201008 additional services (AlertService,
  CustomerSyncService, UserListService), with examples.
- Added examples on how to query and remove BulkMutateJobs.
- Bug fixes on unit tests (http://goo.gl/USi1, http://goo.gl/HLrQ)

2.1.0
- Added support for v201008, with examples.
- Added ability to reuse authToken without first creating new one.
- Updated ReportUtils error regex.
- Added ability to turn off auth token cache and added a method to manually
  force auth token generation.
- Added support to partial failures.
- Added the ability to change the auth server.
- Added ErrorUtils classes to handle ApiError objects.
- Bug fixes to SOAP:WSDL module to more intelligently manage xsi:type.
- Added more robust unit test for core classes.

2.0.0
- Added support to all services in v201003.
- Added a better logging infrastructure adding support for to Log4perl module.
- Added more examples.
- Removed dependencies on experimental version of the SOAP::WSDL module.
  Instead the module can be installed directly from CPAN and no need to manual
  patch is required.
  IMPORTANT: Due to this change now specific generated API objects, and not
  generic type-maps/hashes are returned on API calls, so access to
  object attributes need to be done via get_/set_{attribute} methods. Refer to
  examples on how to handle these objects.
- Methods to retrieve units and operations information (get_total_unit_count,
  get_last_unit_count, get_total_operation_count, get_last_operation_count,
  get_last_response_time, get_last_request_id, get_last_soap_request,
  get_last_soap_response) have been temporally removed from the Client object.
  Support to those will be added in a future release.

1.3.0
- Added support for the 'cm' services in v200909.

1.2.1
- Added support for the applicationToken header.
- Updated example code to show API unit usage information.

1.2.0
- Removed support for v200902.
- Added support for v200906, both in the Sandbox and Production environments.
- Modified sample code to use v200906.
- AuthToken.pm now uses URI::Escape for encoding its parameters.

1.1.0
- Support for updates to v200902 Sandbox WSDLs.

1.0.0
- Initial release of the Google::AdWords::Client AdWords API client library.
- Support is limited to the AdWords API v200902.
