== Changelog ==

= 2.27.0 (September 4, 2024) =

- Improvement: update third-party libraries to prevent deprecation messages in PHP 8.3
- Improvement: add support for Youzify groups
- Fix: resolve a PHP error when `$_SERVER['HTTP_HOST']` is not set

= 2.26.3 (August 6, 2024) =

- Fix: resolve Parallax issues on Safari for iOS mobile

= 2.26.2 (June 27, 2024) =

- Improvement: display enhanced error messages when processing MaxMind database
- Fix: resolve a compatibility issue with the Gravity Forms plugin
- Fix: resolve a PHP warning when using display conditions

= 2.26.1 (March 13, 2024) =

- Improvement: update German, German (Austria), German (Switzerland) and German (formal) translations
- Improvement: show Ad Health notice when ads are disabled for selected post type

= 2.26.0 (January 31, 2024) =

- Improvement: update German and German (formal) translations
- Improvement: display required modules for adblocker fallback item
- Improvement: display required modules for Lazy Loading
- Improvement: allow use of existing MaxMind database files via filters
- Fix: allow "parent page" and "post meta" display conditions to work with AJAX Cache Busting
- Fix: allow Gravity Forms shortcode to work with AJAX Cache Busting
- Fix: avoid storing browser width when `ADVANCED_ADS_RESPONSIVE_DISABLE_BROWSER_WIDTH` is defined

= 2.25.2 (December 6, 2023) =

- Improvement: update Arabic translations
- Improvement: provide vanilla JavaScript instead of jQuery code in the Ad Server usage box
- Improvement: add manual links to pro options on ad edit page
- Fix: remove a deprecation warning when running placement tests

= 2.25.1 (November 14, 2023) =

- Improvement: update Greek and Italian translations
- Improvement: remove split test cronjob, when no test is running
- Fix: prevent Advanced Ads AMP Ads notice from showing infinitely

= 2.25.0 (November 8, 2023) =

- Feature: add Browser Width condition
- Feature: add option to reload ads on screen size change
- Feature: enforce responsive image ads for themes without support
- Fix: remove PHP deprecation notices with PHP 8

= 2.24.2 (November 1, 2023) =

- Fix: replace more deprecated functions

= 2.24.1 (October 26, 2023) =

- Fix: replace deprecated functions

= 2.24.0 (September 13, 2023) =

- Improvement: add a link to enable cache busting on the fly for groups that need a placement with cache busting enabled
- Fix: prevent background placements triggering termination notifications even without changes
- Fix: prevent a PHP warning when passing styles to wp_add_inline_style()

= 2.23.0 (August 30, 2023) =

- Improvement: update Arabic, Danish, French (France), German, German (Austria), German (Switzerland), German (formal), Greek, Italian, Japanese, Polish, Spanish (Argentina), Spanish (Colombia), Spanish (Mexico), Spanish (Spain) and Spanish (Venezuela) translations
- Improvement: make current ad list in admin toolbar scrollable, when the list is longer than the window height
- Fix: update labels and description of the cache busting setting
- Fix: adjust the width of the custom position placement input field
- Fix: replace deprecated `intval()` function with type-casting operator

= 2.22.1 (July 5, 2023) =

- Improvement: update Danish, Turkish and Slovenian translations
- Fix: prevent incorrect or multiple target URLs being opened with rotating background ads

= 2.22.0 (May 31, 2023) =

- Feature: add parallax placement option
- Improvement: update Arabic, Danish, German, Italian translations
- Improvement: add Norwegian, Slovenian, Turkish translations
- Improvement: rename advanced_ads_pro_server_info cookie into advanced_ads_visitor

= 2.21.2 (February 14, 2023) =

- Improvement: update the MaxMind license key and database UI on the settings page
- Fix: show more than two ads in a group if the position option and AJAX cache-busting are used for a placement

= 2.21.1 (January 19, 2023) =

- Fix: prepare cache-busting for changes in device visitor condition

= 2.21.0 (January 10, 2023) =

- Feature: add REST API endpoints
- Improvement: update Arabic, Danish, German, and Italian translations
- Improvement: restrict the ad types assignable to the background placement

= 2.20.0 (December 14, 2022) =

- Improvement: disable the Ads admin toolbar item with the `ADVANCED_ADS_PRO_DISABLE_ADS_TOOLBAR_ITEM` constant
- Fix: improve IP-detection in Geo Module
- Fix: show visitor profile in Geo Location condition and allow users to remove it

= 2.19.2 (November 17, 2022) =

- Improvement: update Greek translations
- Fix: unsure the AddressNotFoundException in the Geo Module gets properly caught
- Fix: resolve a bug that prevents "BuddyPress profile field" visitor condition from working

= 2.19.1 (November 2, 2022) =

- Fix: make "Max. ad clicks" visitor condition work with disabled CFP module

= 2.19.0 (October 25, 2022) =

- Feature: add the Geo Location visitor condition due to integrating the Geo Targeting add-on in Advanced Ads Pro
- Improvement: update French, German, and Italian translations
- Improvement: add Greek translations

= 2.18.0 (September 27, 2022) =

- Improvement: add a link to the pro setting to the refresh interval description when the cache busting module is not enabled.
- Improvement: add support for URL debug parameters
- Improvement: hide ads right after reaching "max ad click" visitor condition limit
- Improvement: show helpful hints about displaying ad groups using cache busting
- Improvement: unify "Manual" link layout with the general UI
- Improvement: update Arabic translations
- Fix: allow to enter profile type title instead of ID in "BuddyBoss profile type" condition
- Fix: honor the target settings for links in background ads
- Fix: improve tracking code in background placement
- Fix: make :eq selector of Custom Position placement accept numbers > 9

= 2.17.4 (July 11, 2022) =

- Improvement: allows other plugins to pass extra data on selecting ad with AJAX cache busting
- Fix: make Tracking add-on track static ads when cache-busting default options is "ajax"

= 2.17.3 (July 7, 2022) =

- Improvement: update German translations
- Fix: consider Weglot country code in Url Parameters Display condition
- Fix: make Linkwise (linkwi.se) ads works together with cache-busting

= 2.17.2 (May 6, 2022) =

- Improvement: unify modules description on the setting tab
- Improvement: add German (Austria/Switzerland) translations
- Improvement: update German and Arabic translations
- Improvement: replace "lazy load" with "Lazy Loading" in admin
- Fix: display the right amount of displayed ads on the ad group page for grid groups
- Fix: make BuddyBoss profile field visitor condition work correctly with multi fields

= 2.17.1 (April 28, 2022) =

- Fix: prevent syntax error in autoloading caused by Composer 2.3.0

= 2.17.0 (April 10, 2022) =

- Improvement: implemented PHP-based "Custom Position" and "Above Headline" placements
- Fix: prevent PHP 8 deprecation notices
- Fix: remove obsolete code for handling groups in cache-busting

= 2.16.1 =

- Improvement: disable cache-busting for Custom Position placements with static ads
- Fix: prevent encoding of cookie values and regular expressions for cookie visitor conditions

= 2.16.0 =

- Feature: add the "post content" display condition
- Improvement: update German and Arabic translations
- Fix: reset page impressions number when the cookie that stores it expires

= 2.15.0 =

- Feature: add GamiPress visitor conditions based on achievements, ranks, and points
- Improvement: add mobile click detection on Auto Ads to the Click fraud protection
- Fix: ensure compatibility with the Flex Mag theme when a custom position placement is used
- Fix: resolve a JS error on the ad edit pages when cache busting is enabled
- Fix: sanitize and verify additional user roles before saving
- Fix: show ads that do not use cache busting in "Ads" menu
- Fix: make it possible to use the Group Refresh feature without placements
- Fix: decode ads for TCF if cache busting is not enabled

= 2.14.1 =

- Fix: resolve a bug that prevents BuddyPress and bbPress modules from working

= 2.14.0 =

- Feature: suggest text for user’s privacy policy under Settings > Privacy > Policy Guide
- Improvement: minify Click Fraud Protection module's JavaScript file
- Improvement: update German and Danish translations
- Fix: correct typo in the handle when enqueuing "advanced-ads-pro.js"
- Fix: consider the `inline` attribute for ads added via shortcode if cache-busting wrapper is needed
- Fix: resolve a bug that prevents blog_id attributes from working

= 2.13.0 =

- Improvement: move JavaScript files that are used for more than cache-busting out of the cache-busting module folder
- Improvement: increase word counter precision of the "Minimum Content Length" feature
- Improvement: move script files to the footer by default to increase performance score
- Improvement: remove cache-busting script files when cache-busting is disabled and no Custom Position placement exists
- Fix: ensure that the Ad Admin role can save options

= 2.12.1 =

- remove `inline-css` filter for passive cache-busting

= 2.12.0 =

- warn if an Advanced Ads widget does not use cache-busting
- remove `cursor: pointer` for background placements on AMP
- refresh ads on the same spot: hide current and subsequent ads after clicking on close button of Sticky placement
- respect wp_timezone settings when displaying ads on certain days only
- made Click Fraud Protection work for Google AdSense Auto Ads
- further minimized AJAX cache-busting footprint in footer
- BuddyBoss: added BuddyBoss Group display condition
- BuddyBoss placement: made possible to customize activity type
- BuddyBoss placement: made possible to repeat position
- made "url parameters" condition work in AJAX requests initiated by third party plugins
- made possible to import and export options

= 2.11.0 =

- disabled cache-busting when not needed for groups
- removed deprecated Flash module
- replaced deprecated jQuery functions
- fixed passive cache-busting for Specific Days and CFP
- fixed ad label when "Visitor profile" is enabled
- Click Fraud Protection: allow using the same ad multiple times on page
- Click Fraud Protection: remove ad after first click when only one click is allowed
- removed duplicated entries from AJAX cache-busting array in footer


= 2.10.3 =

- send placement tests email from admin email when "SERVER_NAME" is undefined
- added `advanced-ads-output-wrapper-before-content-group` hook used by other add-ons
- fire event after dynamically inserted ads (e.g. lazy-loading, infinite-scroll) have been decoded

= 2.10.2 =

- made Background placement work with AJAX cache-busting
- cache-busting wrappers now have static placement classes

= 2.10.1 =

- decode ads that are loaded with infinite scroll and need consent
- fixed some combinations of cache-busting, tracking, and TCF consent
- fixed "advadsProCfp is not defined" error when clicking on a click-protected ad before the page fully loaded
- fixed compatibility between "Words Between Ads" and the TCF v2.0 integration

= 2.10.0 =

- auto hide all ads after Click Fraud Protection is triggered
- Click Fraud Protection: use module-wide or individual ad click limit, whichever is more strict
- prevented displaying some warnings by amp validator
- integrate with TCF 2.0 compatible consent management platforms

= 2.9 =

- added more string compare options to the Cookie visitor condition
- added BuddyBoss placement to inject ads into the activity stream
- switched element picker for Custom Position placement when using Advanced Ads 1.19
- auto-save placement page after parent element was selected for Custom Position

= 2.8.2 =

- backend UI improvements to module activation and date fields
- prepare for Advanced Ads 1.19
- removed unneeded debug line from Browser Console
- fixing incorrect symbols in numeric fields automatically

= 2.8.1 =

* open ads loaded through the Ad Server automatically in a new window to prevent loading the target page in an iframe
* changed behavior of injection based on img tags to look for any images in the content except within tables
* Cache busting: made possible to use html attributes that contain JSON strings
* fixed error that happened when applying Random Paragraph placement to one-paragraph text
* don't take into account the "Words Between Ads" setting when inserting a first ad

= 2.8 =

* New: Ad Server placement to embed ads on other websites
* New: show Post List placement on archive pages created by the AMP for WP plugin
* made placements of type other than "Header Code" work with "Thrive Theme Builder" theme
* shift ads from bottom when "repeat the position" and "words between ads" settings are in use
* marked Flash module as deprecated. New users can no longer enable it. Find the schedule [here](https://wpadvancedads.com/manual/deprecated-features/#Pro_%3E_Flash_ad_type)
* removed legacy code for URL Parameter visitor conditions since it moved to display conditions in 2016
* removed legacy code for minimum content length option as set before 2016 in the main plugin settings
* disallowed ad insertion into the header of the WP File Manager's admin page

= 2.7.1 =

* Group Refresh feature: prevented impression tracking when it is disabled in the Tracking add-on
* fixed Custom Position placement showing in the footer when selector does not exist
* fixed broken link in the description of the User Agent condition

= 2.7 =

* use Display and Visitor Conditions in placements
* allow content injection based on iframe tag
* set minimum amount of words between ads injected into the content
* show the link to duplicate an ad only when the ad was already saved once
* moved output of "Custom Code" outside the link
* fixed clearfix option of Custom Position placement
* fixed wide 'select' elements in conditions that broke layout
* fixed possible bug that prevented Pro settings from being saved

= 2.6.2 =

* added `advanced_ads_pro_output_custom_code` filter to manipulate the Custom Code option
* prevented returning default language in the WPML plugin when AJAX cache-busting is used
* prevented reset of the "Disable ads for post types" option when saving Pro settings
* fix "Disable ads for post types" option when using AJAX cache-busting
* fixed possible PHP warning

= 2.6.1 =

* fixed a minify-related bug that prevented some Custom Position placement from working

= 2.6 =

* new feature: duplicate ads
* load group name to Cache Busting code as per request by a customer
