5.8.2 - Updating the deserializer to handle one more case. 5.8.1 - Updating unit tests to support new version of Perl. 5.8.0 - Removed examples and support for v201806. For future sunset dates, see https://developers.google.com/adwords/api/docs/sunset-dates 5.7.0 - Removed examples and support for v201802. For future sunset dates, see https://developers.google.com/adwords/api/docs/sunset-dates 5.6.1 - Added Smart Shopping ad example (v201809). 5.6.0 - Added support and examples for v201809. 5.5.0 - Removed examples and support for v201710. For future sunset dates, see https://developers.google.com/adwords/api/docs/sunset-dates 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 . - 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.