=== Advanced Ads – Ad Manager & AdSense ===
Contributors: webzunft, advancedads
Tags: ads, ad manager, ad rotation, adsense, banner
Requires at least: 4.9
Tested up to: 5.7
Requires PHP: 5.6
Stable tag: 1.25.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Manage and optimize all ad types. Support for Google AdSense Auto ads, Amazon, image banners, HTML, page builder, ad widget, ad rotations, ads.txt

== Description ==

Are you looking for a simple ad manager plugin? These are the top arguments to use Advanced Ads:

* approved in 10 years of Publishing and Ad Optimization
* works with all ad types and networks, including Google AdSense, Google Ad Manager (DFP), Amazon ads, or media.net
* Google AdSense Partner
* most features to test and optimize ads
* unlimited ad units
* ads.txt support
* dedicated Gutenberg block for ads
* the only solution with *Ad Health* integration and Google AdSense violation checks
* best rated [free support](https://wordpress.org/support/plugin/advanced-ads)

This is what our users are saying about Advanced Ads:

> We use this plugin to deliver rotating ads on a community news site, and it’s great. Both feature-rich and reliable, your imagination is the limit when it comes to the product you want to create for your users. We’ve delivered over a million ad impressions since we launched less than a year ago, using a combination of sidebar, top, sticky and in-content placements — both HTML5 and images. Advanced Ads makes it easy for our small team to deliver a good experience to our users and our advertisers.
> mytown304 on wp.org

Would you like to know if there is a certain feature, what the optimized setup would be, or how to implement your client’s demands? Just [open a thread in the forum](https://wordpress.org/support/plugin/advanced-ads#new-post)!

Advanced Ads allowed us to grow from 0 to 100 MM monthly ad impressions. Benefit from our experience as a publisher and monetize your website today!

[Full Feature List](https://wpadvancedads.com/features/).

= ad management =

* create and display **unlimited** ad units
* rotate ads
* schedule ads and set start time and expiration date
* target ads by content and user groups
* inject ads into posts and pages automatically without coding
* sell ads on your website automatically with the [Selling Ads add-on](https://wpadvancedads.com/add-ons/selling-ads/)

= ad types =

choose between different ad types that enable you to:

* insert ads content and banners from all ad and affiliate networks (e.g., Google AdSense, Amazon, BuySellAds, Google Ad Manager, DoubleClick (DFP), Ezoic, media.net, Booking.com, Tradedoubler, Awin, Getyourguide, The Moneytizer...)
* dedicated support for all types of Google AdSense ads, including text and diplay ads, native ads (In-article, In-feed, matched content), link units (standard and responsive), Auto ads, and Auto ads for AMP
* display images and image banners
* create content-rich ads with the WordPress TinyMCE editor
* create Amazon ads with the Rich Content ad type and the [Amazon Associates Link Builder](https://wordpress.org/plugins/amazon-associates-link-builder/) or insert contextual Amazon Native Shopping Ads
* inject HTML, CSS, Javascript or PHP code
* use shortcodes within ads (to also deliver advertisements from another ad plugin like Ad Inserter, AdRotate, Quick AdSense, WP Bannerize, or the Google AdSense Plugin WP QUADS)

= display ads for WP =

* use functions to display ads in template files
* use shortcodes to place them manually in post content
* show ads in the sidebar and in widgets
* disable all ads on specific pages
* display multiple ads (ad blocks)
* display a customizable ad label, e.g., “Advertisements” above each banner ad

= display conditions =

show ads based on conditions like:

* individual posts, pages, and other post types
* posts by category, tags, taxonomies, author, and age
* archive pages by category, tags, taxonomies
* special page types like 404, attachment and front page
* hide ads on secondary queries (e.g., posts in sidebars)
* display or hide banners within the post feed
* hide all ads from specific page types, e.g., 404 pages, feed
* hide ads from bots and web crawlers

= visitor conditions =

serve ads by conditions based on the visitor. [List of all visitor conditions](https://wpadvancedads.com/manual/visitor-conditions/)

* display or hide a banner by device: mobile and tablet or desktop
* display or hide a banner by role and for logged-in visitors
* advanced visitor conditions: previously visited URL (referrer), user capability, browser language, browser and device, URL parameters included in [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/)
* display ads by geolocation with the [Geo Targeting add-on](https://wpadvancedads.com/add-ons/geo-targeting/)
* display ads by browser width with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)

> **Fantastic plugin and outstanding support**
> I tried at least three other ad plugins for WordPress and ‘Advanced Ads’ is by and far the best one. Last but not least in the support. The first port of call are a number of excellent tutorials. And finally the hands on support. I don’t quite know how he does it but the speed and depth of responses are absolutely amazing.
> djsawyer on wp.org

= ad injection | placements =

Placements to insert ads in pre-defined positions in your theme and content. [List of all placements](https://wpadvancedads.com/manual/placements/)

* ads after any given paragraph, headline, image, or other HTML element
* ads at the top or bottom of the post content
* ads before closing `</head>` tag
* ads in the footer
* test placements against each other with [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/)
* many more ad positions with [add-ons](https://wpadvancedads.com/add-ons/)
* automatic insertion of any kind of code into header or footer, not only advertising

= mobile devices =

* display ads on mobile and tablets or desktop only
* display responsive image ads
* ads for specific browser sizes only using [Responsive Ads](https://wpadvancedads.com/add-ons/responsive-ads/)
* inserting ads on AMP pages with [Responsive Ads](https://wpadvancedads.com/add-ons/responsive-ads/)

= Google AdSense =

Amazing features of the most powerful and easy Google AdSense plugin.

* unlimited Google AdSense ads banners
* pull ad units directly from your Google AdSense account
* show AdSense revenue in WP Admin
* change settings of your Google AdSense ads directly from your WordPress backend
* supports all Google AdSense ad types, including Google AdSense display ads, link units, native ads like In-feed ads, In-article ads, matched content ads, Google AdSense Auto ads, and Google AdSense Auto ads for AMP
* change type and sizes of an ad without going into your Google AdSense account
* hide Google AdSense advertisements on 404 pages by default (to comply with Google AdSense terms)
* insert Google AdSense code for verification and AdSense Auto Ads (previously called Page-Level ads and QuickStart)
* enable AdSense Auto ads on AMP
* easy Ad Health integration and Google AdSense violation checks
* option to make the Google AdSense background transparent
* place Google AdSense In-feed ads using the also free [In-feed add-on](https://wordpress.org/plugins/advanced-ads-adsense-in-feed/)
* assistant for exact sizes of responsive Google AdSense code with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
* convert Google AdSense ads into AMP ads automatically with the [Responsive add-on](https://wpadvancedads.com/add-ons/responsive-ads/)
* ads.txt generated with the correct AdSense information automatically
* works along Google Site Kit or can replace if it you want to [control your ad placements](https://wpadvancedads.com/place-adsense-ad-unit-manually/)

Like j4ckson185, there are thousands of happy AdSense users:

> Your app is awesome, congratulations! Google Adsense suggests using your app on its official website, it’s incredible!

= ads.txt =

* generates ads.txt with custom content
* adds the content for AdSense to the ads.txt automatically

https://vimeo.com/299410390

= ad blocker =

* basic features to prevent ad units from being removed by AdBlock and others
* prevent ad blockers from breaking sites where plugin scripts are running
* ad blocking detection: show alternative content to ad block users with [Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/) and improve the monetization of your website

Learn more on the [plugin homepage](https://wpadvancedads.com).

Thank you for motivating us with your [positive review](https://wordpress.org/support/plugin/advanced-ads/reviews/?rate=5#new-post).

Localizations: Arabic, Chinese, Czech, Dutch, English, French, German, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Russian, Slovak, Spanish, Turkish, Vietnamese

> <strong>Add-Ons</strong>
>
> * all add-ons include priority email support
> * [Advanced Ads Pro](https://wpadvancedads.com/add-ons/advanced-ads-pro/) – powerful tools for ad optimizations: cache-busting, more placements, lazy load, ad blocker module, click fraud, and more
> * [Tracking](https://wpadvancedads.com/add-ons/tracking/) – ad tracking and statistics
> * [Responsive Ads](https://wpadvancedads.com/add-ons/responsive-ads/) – create mobile ads or ads for specific browser sizes and ads on AMP
> * [Google Ad Manager Integration](https://wpadvancedads.com/add-ons/google-ad-manager/) – a quick and error-free way to load ad units from GAM / DFP account without touching any ad codes
> * [Geo Targeting](https://wpadvancedads.com/add-ons/geo-targeting/) – display ads based on geo location of the visitor
> * [Sticky Ads](https://wpadvancedads.com/add-ons/sticky-ads/) – increase click rates with fixed, sticky, and anchor ads
> * [PopUp and Layer Ads](https://wpadvancedads.com/add-ons/popup-and-layer-ads/) – display ads and other content in layers and popups
> * [Selling Ads](https://wpadvancedads.com/add-ons/selling-ads/) - allows you to sell ads on your website fully automated, including payments and advertiser profiles.
> * [Slider](https://wpadvancedads.com/add-ons/slider/) – create a simple slider from your ads

If you have problems with Advanced Ads, please reach out to [our support](https://wordpress.org/support/plugin/advanced-ads).

= Integrations =

Advanced Ads integrates with plenty of other plugins:

- MailPoet - [How to integrate Advanced Ads in MailPoet Newsletters](https://wpadvancedads.com/mailpoet-newsletters/)
- WPML – [Showing different ads per language with WPML](https://wpadvancedads.com/translating-ads-wpml/)
- WPBakery Page Builder – [Displaying Ads with WPBakery Page Builder (formerly Visual Composer)](https://wpadvancedads.com/visual-composer-ads/)
- Genesis – [Genesis Ads add-on](https://wpadvancedads.com/add-ons/genesis-ads/)
- BuddyPress & BuddyBoss – [How to add ads on BuddyPress pages](https://wpadvancedads.com/ads-on-buddypress-pages/)
- bbPress – [How to show ads on bbPress pages?](https://wpadvancedads.com/ads-in-bbpress/)
- Cookie Consent, Borlabs Cookies, Complianz and other content manager – [How to show ads based on visitors’ consent](https://wpadvancedads.com/manual/ad-cookie-consent/)
- Paid Memberships Pro – [How to manage ads on membership sites running Paid Memberships Pro](https://wpadvancedads.com/paid-memberships-pro/)
- IAB TCF 2.0 consent – hide ads until users give their consent. Integrating with any CMP, Quantcast Choices, iubenda, Google Funding Choices, cookiebot, etc.

== Installation ==

How to install the plugin and get it working?

= Using The WordPress Dashboard =

1. Navigate to the 'Add New' in the plugins dashboard
2. Search for 'advanced ads'
3. Click 'Install Now'
4. Activate Advanced Ads on the Plugin dashboard

= Uploading in WordPress Dashboard =

1. Navigate to the 'Add New' in the plugins dashboard
2. Navigate to the 'Upload' area
3. Select `advanced-ads.zip` from your computer
4. Click 'Install Now'
5. Activate Advanced Ads in the Plugin dashboard

= Using FTP =

1. Download `advanced-ads.zip`
2. Extract the `advanced-ads` directory to your computer
3. Upload the `advanced-ads` directory to the `/wp-content/plugins/` directory
4. Activate Advanced Ads in the Plugin dashboard

== Frequently Asked Questions ==

= How to put ads on WordPress? =

You can use Advanced Ads to insert ads into your WordPress site without any coding.

To get started, just take a look at

* the [general first ad tutorial](https://wpadvancedads.com/manual/first-ad/)
* using [AdSense Auto ads](https://wpadvancedads.com/adsense-auto-ads-wordpress/) in WordPress
* the [AdSense overview page](https://wpadvancedads.com/adsense-ads).
* Ads not showing up? Take a look [here](https://wpadvancedads.com/manual/ads-not-showing-up).

= What about my users’ privacy and GDPR? =

The plugin comes with Privacy settings that help you gather consent from users before showing ads to them. The feature works for any ads managed with the plugin, including AdSense Auto ads.

Once you enable one of the Privacy options, Advanced Ads blocks ads that need consent until it is given. You can disable that check for individual ads as well (e.g., for image ads).
You can also deliver non-personalized AdSense ads when that is legally allowed in your area.

- [Cookie consent integration](https://wpadvancedads.com/manual/ad-cookie-consent/).
- [IAB TCF 2.0 integration](https://wpadvancedads.com/manual/tcf-consent-wordpress/).

Advanced Ads itself does neither save personal information (e.g., an IP address) in your database nor cookies in the visitor’s browser.

You can learn more about how Advanced Ads and its add-ons handles data and privacy of your visitors [on this page](https://wpadvancedads.com/manual/privacy-information-for-users/).

= Which ad networks are supported? =

Advanced Ads is compatible with all ad networks and banners from affiliate programs like Google AdSense, Chitika, Clickbank, Amazon, and also Google Ad Manager (Google Double Click, DFP), media.net.

You can also use it to insert additional ad network tags into header or footer of your site without coding.

AdSense has even a dedicated ad type leveling the specific options this ad network provides.

= PHP functions and shortcodes =

You can use functions and shortcodes to display ads and ad groups.

The integers in this example are the IDs of the elements.

Use these shortcodes to insert an ad or group into your post/page.

`[the_ad id="24"]`
`[the_ad_group id="5"]`

Use these functions to insert an ad or ad group into your template file.

`<?php the_ad(24); ?>`
`<?php the_ad_group(5); ?>`

In addition to directly displaying ads and groups you can define ad placements and assign either an ad or group to them.

`[the_ad_placement id="header-left"]`
`<?php the_ad_placement('header-left'); ?>`

= Is there a revenue share? =

There is no revenue share. Advanced Ads doesn’t alter your ad codes in a way that you earn less than you would directly including the ad code in your template.

= Can I place ads directly in my theme files? =

Yes. I would add a "Manual" placement into your theme files. It would allow you to change the displayed ads or groups later without changing your code again.

= Does it work with other ad plugins? =

Yes. Advanced Ads can be combined with other ad plugins.
Just use their shortcodes in our "Rich Media" ad type to combine both features.
Works with AdRotate, Ad Inserter, Ad Injection, Quick AdSense, Quick AdSense Reloaded (WPQUADS), Simple Ads Manager, and other plugins.
Advanced Ads can be used along Google Site Kit or replace it if you need more control over your ad setup.

= Is the plugin compatible with page builders? =

Yes. It works out of the box with all site builders that allow shortcodes or widgets, like Elementor, SiteOrigin, Beaver Builder, WPBakery Page Builder (formerly Visual Composer), [Nimble Page Builder](https://wordpress.org/plugins/nimble-builder/), and others.
There is also a [free add-on to support the WPBakery Page Builder (formerly Visual Composer)](https://wordpress.org/plugins/ads-for-visual-composer/).

= Will ads show up for ad block users? =

Visitors who have any ad blocker (e.g., AdBlock Plus) enabled won’t see ads from known external sources (e.g., AdSense).
You can still monetize those spots with custom content.

Read more about ad blockers and the features Advanced Ads has to deal with them [on this page](https://wpadvancedads.com/manual/ad-blockers/).

= Does the plugin support an ads.txt? =

Google AdSense and some other networks ask you to provide an ads.txt.
Advanced Ads can create that file automatically with the correct information for AdSense, when you enable the ads.txt feature in Advanced Ads > Settings > General > ads.txt and enter your AdSense publisher ID in Advanced Ads > Settings > AdSense.

= I am a developer. Can I customize the plugin? =

Yes. You can use plenty of [hooks](https://wpadvancedads.com/codex/) to customize Advanced Ads.

== Screenshots ==

1. Placements that let you inject ads anywhere into your site without coding (7 in Advanced Ads + 14 through add-ons).
2. Support for all kinds of ad types, including dedicated AdSense type. AMP is included in the Responsive add-on.
3. Flexible ad input with the Plain Text ad type and code highlighting.
4. Align your ads within the content.
5. Dynamically change AdSense ad options in your WordPress backend.
6. Choose where to display your ads using many conditions.
7. Use various conditions to choose who should see ads (basic plugin and more in add-ons).
8. See AdSense earnings in your WP Backend
9. Track impressions and clicks (Tracking add-on).
10. Convert AdSense ads into AMP automatically (Responsive add-on)

== Changelog ==

= 1.25.0 =

- show ad label event when ad wrapper is now shown
- add filter `advanced-ads-ajax-ad-select-arguments` to modify arguments of AJAX ad selection
- display ads on BuddyPress pages when no ads allowed on 404 pages
- Ad blocker fix: do not copy assets from "vendor" and "lib" folders
- Ad blocker fix: compare assets based on `filemtime` instead of `filesize`
- bump minimal require WP core version to 4.9
- allow to add a replacement for AdSense page-level code

= 1.24.2 =

- fix authenticated (i.e. logged-in) DOM-based XSS vulnerability while creating jQuery object from user input in Safari and IE

= 1.24.1 =

- fix compatibilty with WP prior to 5.0

= 1.24.0 =

- AdSense deprecated Link Units and might no longer fill them. So we removed them when creating new ads. [Learn more](https://wpadvancedads.com/adsense-link-units/)
- enable AdSense Auto ads on AMP pages
- interpret WP blocks in the plain text ad type
- remove MailPoet warning since they are not retiring custom shortcodes after all
- convert jQuery shorthand functions to `.on()` and `.trigger()`
- made shortcode button work with WordPress 4.9
- allow to exclude conditions from the "new display condition" dropdown
- prevent AdSense earnings box from appearing on non AdSense ad page when AdSense connection is lost

= 1.23.2 =

- reverted erroneously removing plugin author index

= 1.23.1 =

- removed warning about iThemes Security since it is no longer causing the reported issue
- added correct icon to Advanced Ads block
- fixed escaping for AdSense Auto ads codes that use the deprecated "Disable Top Level" option
- fixed TinyMCE warning in dev console
- replaced `intval()` and `floatval()` with type-casting

= 1.23.0 =

- MailPoet is going to deprecate custom shortcodes. See [this section](https://wpadvancedads.com/mailpoet-newsletters/#Enable_MailPoet_support_in_Advanced_Ads) in case you are using Advanced Ads ads in your newsletters
- updated Google AdSense API to use web application verification
- prevent accidental public ad URLs. See [Making the Ads post type public](https://wpadvancedads.com/manual/making-the-ad-post-type-public/) if you want to query ads via a dedicated URL
- allow to reserve only width or height for plain, rich content and group ad types

= 1.22.2 =

- fix shortcode button within Classic editor and Classic editor block

= 1.22.1 =

- removed "Disable shortcode button" setting after it became obsolete in 1.22.0
- added the `advanced-ads-disable-shortcode-button` filter to disable the shortcode button
- removed ads.txt-related warnings when the option is disabled
- fixed issue with loading of shortcode button in editors that disabled custom buttons, e.g., Elementor
- fixed JavaScript warnings in Elementor editor

= 1.22.0 =

- made dashboard layout compatible with WordPress 5.6
- removed irrelevant AdSense warnings
- allow filtering of data-attributes for encoded ads if privacy module is enabled
- added `advanced-ads-ad-edit-show-placement-injection` filter to allow removing the placement-injection box on the ad edit screen
- added `advanced-ads-unhide-meta-boxes` filter to allow adding of meta box ids that should always be visible on ad edit pages
- added `advanced-ads-ad-option-{$field}` filter for ad options
- added action hooks for ad status changes: `advanced-ads-ad-status-published`, `advanced-ads-ad-status-unpublished`, `advanced-ads-ad-status-{$old_status}-to-{$new_status}`
- removed public URLs for single ads on some installations
- fixed old icon in the menu
- fixed Internet Explorer 11 incompatibility
- fixed possible error in TinyMCE editor caused by ad blockers

= 1.21.1 =

- fixed pagination on the ad list page
- fix Google AdSense non-personalized ads

= 1.21.0 =

- enable Position options for Sidebar placements
- increased default weight for ads imported to a group from 1 to 5 which is mostly relevant when selling ads to existing placements
- Ad Health: added body classes that explain plugin behavior at given moment
- ads.txt: prevented converting special characters into HTML entities
- show ad overview list even if all ads were moved to trash
- fixed error when specific ACF function does not exist
- fixed option to disable ads also on the "Posts page" as set in the WordPress Reading settings

= 1.20.3 =

- whitelist field groups created by Advanced Custom Fields on the ad edit page
- prevent including AdSense Auto ads code when the Borlabs Cookie is already adding it
- prevented adding unneeded escape characters to ads.txt file
- added compatibility with Funding Choices when consent is not needed

= 1.20.2 =

- fixed displaying image ads if privacy method is set to custom cookie
- fixed scroll to last edited placement with non-English letters
- fixed minor UI issues

= 1.20.1 =

- don't escape top anchor ads code as a whole, user input has already been escaped

= 1.20.0 =

- integrate with TCF 2.0 compatible consent management platforms, e.g., Quantcast Choices
- improve timezone methods `Advanced_Ads_Utils::get_wp_timezone()` and `Advanced_Ads_Utils::get_timezone_name()`
- Divi theme: made content injection work with the "Unlimited ad injection" setting disabled
- added missing spaces to image ad tags to fix Cache-Busting issue
- made ad centering work when right and left margin are set
- add ad health check if __tcfapi responds but the privacy module is either not enabled or not set to TCF 2.0
- remove duplicate lines from the ads.txt file
- fixed layout issues that happens due to the JNews theme

= 1.19.1 =

- apply WordPress lazy loading for images to images in ad content
- layout fixes for WordPress 5.5

= 1.19.0 =

- placements are now ordered by type on the Placements page. You can still choose ordering by name
- the "custom" option of the Content placement now comes with a picker to select the position in the frontend
- WPML: placements pages show ads according to the selected language
- WPML: display the ad in the original language if a translated ad is missing unless the publisher chooses to hide it instead
- prevented injection of ads into captions of "image" blocks
- improved bot check
- fixed layout of expiry data fields
- fixed broken check for the Responsive add-on

= 1.18.0 =

* inject ads automatically based on div, table, quotes, iframe, and other HTML tags
* define your own injection rules using the new "custom" option for the Content placement
* hide Shortcode button in TinyMCE editor by default for new users
* added `advanced-ads-options` filter for main plugin options
* prevent automatic ad injection into paragraphs within blockquotes
* hide placement options after publishing an ad translated with WPML
* disallowed ad insertion into the header of the WP File Manager's admin page

= 1.17.12 =

* set default name for ads where none was given
* fixed issue where long option markup could break the group page
* made placements of type other than "Header Code" work with "Thrive Theme Builder" theme

= 1.17.11 =

* added Datanyze and Ecosia to bots list
* linked to [Google Ad Manager Integration](https://wpadvancedads.com/add-ons/google-ad-manager/)
* fixed Layout Key field for AdSense ads not saving new values
* fixed error that broke the wizard when the URL field of image ads contained a wrong value
* fixed links to manuals
* fixed unneeded notification shown when ads are disabled on 404 pages

= 1.17.10 =

* fixed escaped HTML tag in Ad Planning column
* fixed possible JavaScript error caused by Ad Health checks
* fixed possible third-party conflict causing the ad group filter to throw an exception
* removed unneeded notification shown when ads are disabled on 404 pages

= 1.17.9 =

* fixed warning about missing `the_content` filter in WordPress 5.4
* fixed public warning if the WordPres `widget` function is called with wrong parameters
* fixed wrong usage of get_current_user

= 1.17.8 =

* WPML: placements now deliver also ads translated with WPML when only one of the language versions was assigned to them
* fixed delete option in placement form

= 1.17.7 =

* fixed index value of content placements not showing up in the form while saved and working correctly
* recovered compatibility with the "Render Blocking JS" option of the WP Fastest Cache plugin

= 1.17.6 =

* improved coding style in backend templates
* prepared for option to allow minimum number of words between ads in Advanced Ads Pro
* hide notice that warns if the "Disable ads in REST API" option was selected
* Renad theme: fixed a bug that caused menu item to point to incorrect url instead of theme options

= 1.17.5 =

* fixed ads being injected multiple times when using the Newspaper theme or multiple the_content filters

= 1.17.4 =

* added option and Display Condition to disable ads in content served through the REST API
* made error notices less obstrusive
* code style optimizations
* fixed ad groups form on ad edit page
* fixed potential conflict with autoloader

= 1.17.3 =

* prevented content injection into specific elements where ads cause issues
* assign `advads-stop-injection` class to any element into which you don’t want to automatically inject ads
* fixed possible cURL error when checking existing ads.txt file locally

= 1.17.2 =

* replaced autoloader
* fixed an issue where an expired ad removed HTML in the ad code

= 1.17.1 =

* fixed failing upload of new image ads
* fixed Google Ad Manager debug link also showing up when other Google Publisher Tags are used

= 1.17 =

* improved AdSense ad unit list coming from the AdSense API
* improved "highlight ads" option in Ad Health
* show notice if AJAX calls are broken
* added `com.pl` as exception for placing ads.txt files in subdomains
* removed placeholder for AdSense ads in the Customizer and Elementor editor
* fix for WP Smush lazy load preventing image ads from showing at all

= 1.16.1 =

* fixed JavaScript that broke privacy module check in the frontend
* allow to change size of AdSense ads loaded from the AdSense account

= 1.16 =

* moved all users to the new content injection logic and removed opt-out option
* use new Auto ads code for everyone who didn’t enable the "Disable top anchor ads" option
* hide "Disable top anchor ads" option to users who didn’t enable it
* the Ad Admin user role can now also save the plugin settings
* hide Wizard for existing ads
* removed warning about WP Autoterms plugin after a fix by the plugin authors
* some work for Conditions to improve compatibility with an upcoming Pro feature
* fixed multiple wrappers occurred as result of using nested ads
* fixed missing index issue on 404 pages for logged-in admins
* fixed AJAX/PHP error 403 on Settings page
* fixed layout issue that happened when "If>So Dynamic Content" plugin was active
* prevented Ad label from taking height of fixed sized AdSense ads
