AdSanity Core - WordPress Plugin
The plugin is a comprehensive solution for managing advertisements in WordPress. With its user-friendly interface and robust features, it offers a seamless experience for organizing and displaying ads on websites. This tool streamlines the ad management process, providing flexibility and control to website owners.

Plugin Features
It empowers users to create and schedule various ad campaigns effortlessly. By offering detailed statistics and analytics, users can track the performance of their ads effectively. The plugin also allows for the easy integration of third-party ad services, enhancing monetization options for website owners. Its customizable templates enable users to design ad placements that align with their websites aesthetics.
One of its standout features is the ability to set ad expiration dates, ensuring timely updates and relevance. The plugins intuitive dashboard simplifies the monitoring of ad performance and facilitates quick adjustments to optimize campaigns. With its responsive design, ads can be displayed seamlessly across different devices, maximizing reach and engagement. Website owners can also establish ad groups for targeted campaigns and precise audience segmentation.
Moreover, AdSanity Core offers advanced targeting options based on factors such as user roles, geolocation, and device types. This level of customization enables users to deliver personalized ad content to specific audience segments. The plugins seamless integration with popular WordPress themes and plugins ensures smooth functionality and compatibility. Its regular updates and dedicated support contribute to a reliable ad management solution for WordPress websites.
Guide to Configuring and Using AdSanity Core
AdSanity Core is best thought of not as just another banner insertion tool, but as a centralized hub for managing ad placements in WordPress. In this guide, we will walk through how to prepare your site, create your first ads, build groups, display ads through blocks, widgets, and shortcodes, review stats, and avoid breaking rotation because of caching or theme behavior.
This guide is written for site owners, editors, webmasters, and developers who need to manage banners, affiliate blocks, ad network code, or HTML5 creatives without scattering ad snippets throughout theme files. It does not cover purchasing or activating a license - it assumes you already have the plugin archive and need to configure it safely.
The basic workflow is straightforward: you create ad units in the admin panel, assign a size, link, display period, and group, and then place them in the right area of the site. The real complexity is not the Publish button itself, but choosing the right ad type, validating click tracking, dealing with cache compatibility, and understanding which features are included in the core plugin versus which ones require add-ons.
How the Plugin's Ad Logic Works
AdSanity Core adds a dedicated ad management section to WordPress. In practice, it feels similar to working with posts: there is an item list, a creation screen, publishing settings, groups, and links for displaying ads on the site. This approach works well for editorial teams because an ad unit no longer lives as a random snippet inside an article or theme file. You can find it, rename it, pause it, group it, and review it through stats.
The plugin's main job is to manage ad units and placement slots. The core version supports several ad types: an image hosted on your site, code from an external ad network, an HTML5 archive, and a text ad built with HTML in the ad code field. For output, it uses editor blocks, widgets, shortcodes, template tags, and integrations with certain page builders if they are available in your installation.
It is important to separate the core plugin from its add-ons. AdSanity Core includes display start and end dates, groups, basic reporting, blocks, widgets, shortcodes, and display settings. Add-ons expand that feature set: for example, they may add impression-based expiration, more advanced rotation, conditional display, advertiser reports, or Google Analytics integration. Before configuring a workflow, first confirm that the core features are enough, and only then add an extension if needed.
What Happens from Creation to Display
The workflow has five stages. First, you create an ad and choose its type. Then you specify its size, link or code, display period, and group. After that, you choose how it will be displayed: as a block in the editor, a widget in a theme area, a shortcode in content, or a template tag in theme code. On the public-facing page, WordPress requests the ad block, and the plugin returns the appropriate ad or group based on the selected parameters.
Verification should follow that same order. First, make sure the ad is published and assigned to the correct group. Then check the display location. Next, open the public page in a context where admin privileges, cache, and browser extensions are not interfering. If the ad is visible, test the link click, and after several test views, review the report in the admin panel.
How AdSanity Core Differs from Manual Ad Insertion
Manually inserting code into a template or article feels faster when you only have a few ad placements. The problem shows up later: old campaigns remain buried in content, banners are hard to replace, stats are fragmented, and editors do not know which code is safe to touch. AdSanity Core gives you a more manageable model: the ad is stored separately, the display slot can be changed, and a group lets you swap advertisers without bulk-editing posts.
That does not make the plugin a full-scale ad server on the level of enterprise platforms. It does not cover the entire advertising lifecycle, including ad sales, creative approval, and billing. What it does well is serve sites where the owner manages ad placements directly and wants to avoid chaos in content, widgets, and theme files.
Who AdSanity Core Fits Best, and When Another Option Makes More Sense
AdSanity Core is especially useful for sites where advertising is an ongoing process rather than a one-time insertion. That includes blogs with affiliate banners, niche media sites, sites with sponsored blocks, directories, local portals, and agency projects where clients need to swap advertisers without involving a developer for every minor change.
The plugin fits naturally into the WordPress editorial workflow. An editor only needs to understand where to create an ad, how to choose a group, and where to verify output. Meanwhile, a developer can prepare placement areas in the theme, set safe styling, and leave the team with a clear structure: for example, one ad block in the sidebar, one after the article intro, and one at the end of long-form content.
When the Plugin Is a Strong Choice
- The site has multiple ad placements that need to be updated regularly.
- You need to display both your own banners and code from external ad networks.
- Ad groups and random rotation of multiple creatives in the same area matter.
- An editor needs a way to place ads without editing theme files.
- You need basic reporting on impressions, clicks, and ad performance.
- You want to start with a lightweight core plugin and only add extensions for specific needs.
When to Look at Alternatives
If you need complex automatic insertion after every second paragraph, CSS selector rules, many URL-based exclusions, AMP support, fine-grained control over code in the <head> and footer, AdSanity Core may feel too straightforward. In those cases, tools in the Ad Inserter category are usually a closer match. If you want a free option with a larger feature set for ads, schedules, and more advanced error checks, AdSanity is worth comparing with AdRotate Banner Manager.
A separate case is self-service ad sales for advertisers. AdSanity Core itself is not an ad marketplace and does not handle payments, creative approval, or a full advertiser dashboard. You can build that workflow through add-ons and third-party forms, but it is better to design that kind of project upfront rather than assume a basic installation will solve it automatically.
Practical takeaway: AdSanity Core works well when you want clear control over ads inside WordPress. If your main goal is programmatic code insertion across dozens of placements with complex rules, compare your use case with more technical insertion managers first.
What to Check Before Installing on a Live Site
There is no need to overcomplicate the install process, but a few checks can save a lot of time. AdSanity Core works like a standard WordPress plugin, but ad placements affect public pages, clicks, caching, theme markup, and sometimes external scripts. It is worth preparing a short checklist and going through it before visitors ever see an ad.
Technical Requirements and Environment
The official requirements specify minimum versions for WordPress, PHP, and MySQL. Do not rely on an admin's memory alone: open the Tools section or the Site Health page, check the PHP version, confirm that WordPress updates are not being blocked, and make sure the hosting account has a backup available. If the site is older, test the plugin on a copy first.
For WordPress.com, the hosting plan matters: the official materials specify compatibility with Business plans and above. If the site is running on the managed WordPress.com platform rather than self-hosted WordPress, confirm that your plan allows third-party plugin installation.
Your Ad Placement Map
Before installing, it helps to sketch out a simple map: where ads will appear, what sizes are needed, who is responsible for creatives, how often they change, and which pages should not be overloaded with ads. This matters especially with AdSanity Core because of groups. If banners of different sizes end up in the same group, rotation may still work technically, but the site's appearance will become unstable.
Prepare at least three values: the placement name, the creative size, and the display method. For example: Sidebar 300x250 via widget, Article Inline 728x90 via block or shortcode, and Footer Sponsor via a widget area. That structure makes group setup and troubleshooting much easier.
Cache, Optimization, and Ad Blockers
Ad rotation depends on how the page is assembled and how often WordPress gets a chance to choose a new block. The official documentation warns that some types of static caching can block server-side requests, while the plugin relies on dynamic ad selection. At the same time, fragment caching and object caching are compatible, and with groups or random widgets, ads may rotate on roughly a minute-based logic.
If the site uses full static caching, a CDN with aggressive HTML caching, or optimization plugins, decide in advance where you will test rotation. Do not judge functionality only from the admin's browser. Open the page in a private window, after clearing cache, and without extensions that may hide ad elements.
Installation and the First Check in the Admin Panel
Installing AdSanity Core is no different from installing a standard ZIP plugin. In the WordPress admin panel, open Plugins, click Add New, choose plugin upload, select the archive, and complete the installation. After activation, an AdSanity section should appear in the left menu. Developers can also install it through FTP or a repository, but the plugin folder must be named adsanity.
After activation, do not immediately start placing ads across the whole site. First, verify that the section opens, the Manage Ads page is accessible, settings can be saved, and the editor can create a test ad. This confirms that the plugin has the necessary permissions, does not conflict with the admin panel, and works in the most basic scenario.
Minimum Test After Activation
- Open
AdSanityin the left WordPress menu and make sure the ad management items are visible. - Go to
Settingsand review the general settings tab without changing any questionable options. - Create a draft test ad with a clear name, such as
Test Sidebar Banner. - Check that the
Manage Adslist shows the name, size, stats columns, and links for copying the shortcode or template tag. - Delete the test ad or leave it unpublished if you are not ready to show it on the site yet.
If you see a permission error, blank page, or admin-side script conflict at this point, do not continue configuring ad placements. First disable any conflicting admin optimization tools, check the browser console, and review the PHP error log. On a new site, that is usually faster than trying to figure out later why a specific widget or group is not working.
Creating Ads: Your Own Banners, Networks, HTML5, and Text Ads
The Create Ad screen is the plugin's main workspace. In AdSanity Core, choosing the right ad type matters because it determines tracking behavior, field content, how you verify the result, and what kind of reporting you can expect. It is not a good idea to force every workflow into a generic HTML block if the plugin offers a more precise option.
Ad Hosted On-Site
This is the most straightforward scenario: the advertiser provides an image, and you upload it to the Media Library or select it while creating the ad. Size matters here. If the placement is built for 300x250, do not upload a long horizontal banner and hope the theme will resize it neatly into the sidebar. Choose the correct ad size, set the image, add the target URL, and define the display period.
For self-hosted banners, AdSanity Core can track basic impressions and clicks. Do not judge the results after a single page load. Check them after several test views and clicks under normal conditions. If clicking the link leads to an error, first verify WordPress permalinks and save the Permalinks settings without changing the structure - that is a safe way to refresh routing rules for the custom post type.
External Ad Network
For an ad network, use the external ad code tab. You choose the size, paste the code, assign an internal name, optionally add notes, and set the display period. The important detail here is that the official documentation states that ads hosted on an external service do not track impressions and clicks inside AdSanity Core. For accurate stats, you need to rely on the network itself or on an analytics integration if one is configured.
Do not paste ad network code into random HTML blocks in the editor if you want to preserve manageability. It is better to keep that code as a separate AdSanity ad, assign it to a group, and display it through a single ad slot. That way, when the network or code changes, you do not have to edit dozens of posts.
HTML5 and Text Ads
HTML5 creatives are uploaded as prepared archives containing the ad assets. Correct sizing and public-side testing are especially important here, because problems inside the archive may show up not as a WordPress error, but simply as an empty space. The official documentation notes that responsive sizes are preferable for HTML5 ads when that fits the creative.
A text ad is built through HTML in the ad code field. The documentation describes using the %link% placeholder for a tracked link: in your HTML, you use <a href="/%link%">..., and the destination is set in the Tracking URL field. This works well for short sponsored notes, but it needs careful testing: the link must be clickable, the text must not break the layout, and styling is usually better handled in the theme's CSS.
What Must Be Filled Out in an Ad Entry
- A clear internal name so the editor can quickly find the campaign.
- A size that matches the actual placement and the creative.
- A target URL for self-hosted and text ads if the ad should be clickable.
- A display period: unlimited or with an end date for temporary campaigns.
- A group, if the ad should participate in rotation or appear alongside others.
- A note about the advertiser, campaign, or display limits if multiple editors are involved.
After publishing, check the Manage Ads list. You should see the size, daily stats, display dates, and links for copying the shortcode or PHP tag. This is a useful checkpoint: if the data looks wrong there, the problem will almost certainly show up on the public page too.
Ad Groups and Rotation Without Size Chaos
Groups are one of the most useful parts of AdSanity Core. They work like a taxonomy for ads: you create a group, assign several ad units to it, and display that group in a single place on the site. When the page loads, or depending on the display method you choose, the visitor sees one or more items from that group.
The main rule for a group is placement consistency. Do not mix sidebar banners, wide horizontal ads, and text-based sponsor blocks in the same group. The group may accept different items technically, but users will end up seeing jumping heights, empty gaps, broken columns, or banners that do not fit the context of the page.
How to Design Groups Before Creating Ads
Start with site placements, not advertisers. For example, the Sidebar 300x250 group should contain only ads that physically fit the sidebar. The Article Top 728x90 group should contain only wide banners for the top of an article. The Partner Text Footer group should contain only short text blocks for the bottom of content. That structure keeps things clear even months later.
If an advertiser has purchased multiple placements, do not create one group named after that advertiser and insert it everywhere. It is better to place that advertiser's ads into different placement-based groups. That way, you retain control over size, frequency, and context. For reporting, use clear ad names and notes.
Rotation and Random Display
A group can display several ads at once or show a random ad from the group. In a shortcode, this is controlled with parameters such as num_ads, num_columns, group_ids, and random. Widgets and blocks use a similar logic through the interface. If you need one random banner from a group, the documentation describes a simple setup: set both the number of ads and the number of columns to one, and enable randomness with the random parameter.
Do not test rotation with a single page refresh. Cache, object caching, and browser behavior can make it seem like nothing is changing. Open the page in a private window, refresh several times with pauses in between, clear the page cache, and compare what you see with the admin preview. If the group never changes, check that it contains more than one published ad and that each ad is currently within its active display period.
Placement on the Site: Blocks, Widgets, Shortcodes, and Template Tags
One of AdSanity Core's strengths is that it does not lock you into one display method. Blocks and shortcodes are more convenient for editors, widgets fit classic themes, and template tags are better for developers. The right choice depends on who will maintain the site and how often the placement changes.
Editor Blocks
For the block editor, AdSanity provides blocks for a group, a random ad, and a single ad. This is a convenient option when the ad placement belongs directly inside a specific post or page. The editor sees the block in the context of the content and can manage it without manually typing a shortcode.
Do not insert blocks manually into every article if the placement is meant to be a system-wide slot. For recurring output across hundreds of posts, it is better to use automatic placement from settings, a theme template, or a unified site-wide placement method. Blocks work best for intentional, targeted insertions: a sponsor block in a specific review, a partner banner on a landing page, or a test ad block before a campaign goes live.
Widgets and Theme Areas
Widgets work well for sidebars, footers, and other areas supported by the theme. AdSanity includes options for a group, a random ad, and a single ad. In the group widget, you can set a title, choose a group, define the number of ads, and specify the number of columns. One important note from the documentation is that some themes require a widget title for the output area to render correctly. If the widget does not appear, check not only the ad itself, but the title as well.
Shortcodes for Controlled Placement
Shortcodes are useful when you need to insert an ad into content, a template block, or any location that does not support widgets. The official docs describe the single-ad shortcode [adsanity], the group shortcode [adsanity_group], and variants for rotation or ordered groups when the relevant add-ons are installed. A single-ad example looks like this:
[adsanity id="107" align="aligncenter" max_width="300"/]
A group uses a different parameter set:
[adsanity_group num_ads="1" align="aligncenter" num_columns="1" group_ids="2" max_width="300" random="1"/]
On a real site, replace id and group_ids with the values from your own admin panel. Do not copy IDs from guides or examples. If the ID is wrong, the shortcode may output nothing, and your troubleshooting will go in the wrong direction.
Template Tags for Developers
Template tags are useful when the ad placement is part of the theme itself: for example, after the post title, inside an archive grid, or in a dedicated area between content blocks. This approach requires access to theme files and careful updates through a child theme or a small custom plugin. It is not something to hand off to an editor, but it gives you a predictable output location and reduces the risk of ads being accidentally removed from content.
Detailed Configuration After Installation
After installation, there is no need to enable everything at once. A good AdSanity Core setup starts with general behavior, tracking, automatic placement, and ads.txt. Your goal is to build the smallest workable setup that is easy to test and easy to roll back. The best first-run AdSanity Core settings are clear groups, careful placement, and enabling only the options your current site actually needs.
ads.txt file.General Settings and Tracking Exclusions
The general settings tab affects how the plugin behaves across the whole site. The official documentation describes options for excluding WordPress roles from tracking. This is useful if administrators and editors open pages frequently and could distort the stats. For a typical site, it makes sense to exclude roles that regularly review content: Administrator, Editor, and, if needed, Author.
The check is simple: save the setting, open a public page as an administrator, then open it again as a regular visitor in a private window. Do not expect lab-grade precision from a couple of views, but do confirm that the stats are not climbing simply because the team is actively working in the admin area.
Automatic Placement in Posts and Pages
The settings include a Display Options mode that allows you to automatically place ad groups inside posts, pages, or both content types. Use it carefully. Automatic display is convenient if the site has a consistent editorial format, but it can interfere with landing pages, legal pages, short news items, or pages that already have a dense commercial layout.
Check After Saving
For the initial setup, choose one ad block and one content type. For example, the Article Inline 728x90 group only for posts. After saving, open several different pieces of content: a short post, a long article, a page without a sidebar, and a post with a non-standard template. If the ad block feels out of place, it is better to disable automatic placement and switch to manual output through blocks or template slots.
ads.txt for Ad Networks
If you work with ad networks, check the Ads.txt field. The official docs explain that this file helps specify which companies are authorized to sell the site's ad inventory. If a network requires a line for ads.txt, paste it into the appropriate field and save the settings. Then open /ads.txt in the browser and make sure the line is publicly accessible without authentication.
Safe Rollback
If the server already has a physical ads.txt file, behavior may depend on the site's configuration. Do not make blind changes: first check the current output, then save a backup of the existing line, and only after that change the content. For sites using multiple networks, keep an internal note of where each line came from.
When to Add Extensions
Add-ons are useful not because they exist, but because a specific workflow is not covered by the core plugin. If you need an ad to expire after a set number of impressions, look at the Impressions add-on. If the site relies heavily on static caching and you need analytics outside the built-in tracking system, review the Google Analytics integration, but keep in mind that different reporting methods do not merge their histories into one data set. If you need to display ads by visitor role or page condition, check the relevant add-ons and their documentation first.
Rollback is simple: disable the questionable add-on, clear cache, and check whether the core behavior returns. Do not install several add-ons at once on a new site. Otherwise, when something goes wrong, it will be unclear which part is affecting display, stats, or the admin panel.
Practical Scenario: A Sidebar Ad Slot and an In-Article Banner
Let us walk through a realistic content-site scenario: you need one random partner banner in the sidebar and one horizontal block inside the article. This is a good fit for AdSanity Core because it combines self-hosted banners, groups, a widget, a shortcode or editor block, and stats validation.
Goal and Preparation
The goal is to create two manageable ad zones: Sidebar 300x250 and Article Inline 728x90. Before starting, prepare two or three banners for each zone, their target URLs, advertiser names, and a test post where you can verify output without risking the homepage. If the theme does not use a sidebar, replace the first slot with a footer area or a block in the post template.
Setup Steps
- Create the
Sidebar 300x250group in theAd Groupssection and add a clear description for the team. - Create the
Article Inline 728x90group for wide in-article banners. - Create several
Ad Hosted On-Siteads with the correct sizes, images, and target URLs. - Assign each ad to the appropriate group, without mixing different sizes in the same group.
- Open
AppearanceandWidgets, add the group widget to the sidebar, and chooseSidebar 300x250. - In the test post, insert the AdSanity Ad Group block or a shortcode for
Article Inline 728x90. - Publish or update the test post, then clear the page cache.
Checking the Result
Open the test post as a regular visitor. A correctly sized banner should appear in the sidebar, and a horizontal block should appear inside the article. Refresh the page several times with pauses in between: if the group contains multiple ads, rotation should become visible. Then click your own test ad and confirm that it goes to the correct URL.
What Counts as a Successful Test
After several views, open the reports. Built-in stats do not need to update like real-time analytics, but you should see that locally hosted ads are receiving impressions and clicks. If you are using external ad networks or HTML5 creatives, do not expect full built-in tracking without additional integration.
A Common Detail That Gets in the Way
If the ad block does not appear in the sidebar, do not start by reinstalling the plugin. Check whether the group is assigned, whether the ads are published, whether the display period has expired, whether the widget has a title, whether the theme hides empty widgets, and whether a browser extension is blocking the block. If clicking the ad returns an error, save the WordPress permalink settings and repeat the test.
Practical Use Cases Across Different Site Types
AdSanity Core works best when ad placements are designed around the site's actual purpose. You do not need to use every display method at once. It is far more useful to choose two or three stable patterns that are clear to editors and do not overload visitors.
Niche Media Site with Sponsored Placements
For a media site, grouping by position works well: sidebar, middle of article, end of article. The editor creates ads for each sponsor and assigns them to the correct groups. The expected outcome is that advertisers can be swapped without editing content, while the team still has access to basic stats. To verify the setup, open a long article, make sure the blocks do not interrupt reading, and compare click behavior across positions.
Blog with Affiliate Banners
For an affiliate site, one or two stable placements are often enough. Use self-hosted banners with target URLs and group them by topic: hosting, tools, training. Do not insert the same block into every area of the page. It is better to measure where a banner gets clicks without interfering with content than to increase impressions at the expense of reader trust.
Agency Site or Client Project
For an agency, it is not enough just to display an ad - the client also needs a maintainable system. Create groups named after placements, prepare a short editor guide, and limit the list of approved sizes. If the client requests a new banner, it should go into an existing group, not become a random shortcode pasted into an arbitrary page.
Project Using an External Ad Network
If the site uses network code, create each unit as a separate external network ad. That makes it easier to disable a specific snippet, replace it, or move it into another group. For these ads, review performance in the network's own dashboard or through a configured analytics integration, because the core plugin's built-in tracking is limited in this case.
Reviewing Stats, Reports, and Data Reliability
AdSanity Core reports help you understand which ads are receiving impressions, clicks, and what their click-through rate looks like. The reporting panel includes summary metrics, top ads by clicks, top ads by click-through rate, and group-level data. It is not a replacement for full ad analytics, but it is enough for basic decisions: keep the creative, replace it, move the placement, or investigate suspiciously low click counts.
How to Read a Report Without Fooling Yourself
Do not look only at raw click numbers - look at the context too. A sidebar banner may get fewer clicks than an in-article block but still be less intrusive. A horizontal banner may receive many impressions and a low click-through rate if it sits in an area users scroll past quickly. Compare similar placements over similar time periods rather than treating every ad as directly comparable.
Minimum Data Hygiene
Exclude editorial roles from tracking if the team opens pages frequently. Keep in mind that ad blockers and privacy settings can affect visibility and event collection. For external networks, do not combine AdSanity data and network reports as if they were a single system. They may be calculated under different rules.
Built-In Stats or Google Analytics
The official documentation warns that the built-in reporting method and the Google Analytics integration are mutually exclusive: historical data does not transfer between them as one unified set. In addition, if the Google Analytics Tracking add-on is enabled but not configured, you may lose tracking in both places. Because of that, only move to analytics integration after testing on a staging copy or during a low-risk period.
If the site uses aggressive static caching, built-in events may be less reliable. AdSanity's documentation directly ties some caching scenarios to limitations in dynamic ad selection. For those sites, it is better to review the analytics integration separately and confirm that the chosen add-on does not conflict with Google's limits or policies.
Safe Visual Tweaks for Ad Appearance
Sometimes an ad block works technically but still looks rough: it sits too close to the text, does not center properly, lacks spacing, or breaks the layout. The official documentation describes CSS classes for ad units: size classes such as ad-125x125, column classes for groups, and alignment classes like alignleft, aligncenter, alignright, and alignnone. That gives you a safe way to make light CSS adjustments without modifying the plugin core.
Add CSS in a child theme, in the theme's custom styles area, or through a trusted snippets plugin. Do not edit AdSanity Core files. Below is an example for a typical 300x250 banner centered inside content. Before using it, replace the size class with the one actually present in your ad markup.
.entry-content .ad-300x250 {
display: block;
max-width: 300px;
margin: 24px auto;
text-align: center;
}
.entry-content .ad-300x250 img {
height: auto;
max-width: 100%;
}
Validation: open a post with the ad, make sure the block has proper spacing, the image does not stretch wider than its container, and the mobile version does not overflow the screen. Rollback: remove this CSS snippet and clear the cache. If the theme already applies complex styles to aligncenter or images, target your rules to the specific placement instead of applying them globally to all ads.
Do not use CSS to hide required elements from an ad network or to work around affiliate program requirements. Styling changes should improve presentation, not alter the meaning of the ad code.
Common AdSanity Core Issues and Troubleshooting
Problems in ad plugins often look the same: no block, no click, empty stats. But the underlying causes differ. The easiest way to troubleshoot is from simple to complex: ad status, group, placement location, cache, theme, external code, and only then plugin conflicts.
The Ad Does Not Appear on the Page
Symptom: the ad area is empty or the widget does not appear. A likely cause is that the ad is unpublished, its display period has expired, the group is empty, the shortcode uses the wrong ID, the theme hides the area, or the widget output is blocked because it has no title. Check the Manage Ads list, publication dates, group assignment, and the exact group_ids value. If you are using a widget, set a title and check the theme area.
Fix: publish a test ad, temporarily remove the end date, display a single ad instead of a group, and clear cache. If the single ad appears, the issue is in the group or rotation. If nothing appears at all, check the display location and the theme. Automatic placement or CSS tweaks are good rollback candidates if disabling them makes the ad appear.
Clicking the Ad Leads to a 404
Symptom: the banner is visible, but clicking it opens a WordPress error page. A common cause with custom post types is that permalink rules have not been refreshed yet or are conflicting after a migration. Safe check: open Settings, then Permalinks, and save without changing the structure. After that, clear cache and test the click again.
If the error remains, check the target URL in the ad entry, redirect blocking from security plugins, and interference from the external ad network. Do not mass-delete ads: first create one new test banner with a simple URL and validate it separately.
Group Rotation Does Not Change the Ads
Symptom: the same banner appears every time the page is refreshed. One possible reason is that the group effectively contains only one active ad, while the others are scheduled for the future or already finished. Another is that static cache is serving ready-made HTML with no fresh server-side selection. A third is that you are checking the page while logged in as an admin with a browser extension that interferes with ads.
Check the number of published ads in the group, the display dates, the randomization mode, and cache behavior. With full static caching, do not expect perfect ad changes on every request. If rotation is critical, use a compatible caching mode, object caching, or the analytics approach recommended by the documentation for your use case.
Stats Do Not Increase or Look Wrong
Symptom: impressions and clicks do not appear, or the numbers clearly do not match your traffic. Possible causes include testing an external or HTML5 ad where built-in core tracking is limited, enabling Google Analytics Tracking without configuring it, excluding your own role from tracking, or a browser ad blocker suppressing events. Check the ad type and active add-ons.
Fix: for a locally hosted banner, open the page several times as a regular visitor, click the ad, and review the report later. For external networks, compare against stats in the network dashboard. If an analytics integration is enabled, make sure it is fully configured; otherwise disable it and return to the built-in method.
The Banner Breaks the Mobile Layout
Symptom: the ad is wider than the content, creates horizontal scrolling, or shifts out of the sidebar. The cause is usually a mismatch between the creative size and the placement area, or the theme's CSS. Check the ad size, the max_width shortcode parameter, alignment classes, and the theme's mobile styles.
Fix: use an appropriate size, add targeted CSS with max-width: 100%, do not mix different sizes in one group, and test the result at mobile widths. If the issue appeared after a CSS adjustment, remove that change and check the original output.
Ad Network Code Does Not Work Inside AdSanity
Symptom: the placement stays empty even though the network code is inserted. Possible causes include the code requiring a different page location, the network blocking display on a test domain, a script conflicting with JavaScript optimization, or a browser extension blocking it. Check the network instructions, browser console, and script optimization settings.
Fix: temporarily disable JavaScript combining and deferred loading for the test page, check the domain in the network dashboard, and open the page without an ad blocker. If the network requires code in <head> or a separate global script, do not try to solve that by randomly pasting it into the ad field - configure it the way the network expects and use AdSanity only for the part of the output it is suited for.
Product Video and Quick Visual Overview
The official AdSanity page includes a YouTube video about the product. It is useful as a quick visual overview for a search like how to use AdSanity Core: in a short amount of time, you can grasp the general idea of ad management, but the detailed setup for groups, cache, and troubleshooting is still better handled through a written guide.
Use the video as an introductory layer: first understand what the product is for, then return to the sections on ad creation, groups, placement, and result validation. For a real rollout, it is more important to complete the practical scenario and verify output on your own site, because theme behavior, caching, and ad network setup vary from project to project.
FAQ on AdSanity Core Setup and Limitations
Can AdSanity Core Be Used Only for Affiliate Banners?
Yes, if the banners point to affiliate URLs and you want to manage them as WordPress ads. Create self-hosted ads, assign target links, group them by placement, and verify clicks. Just remember to follow affiliate disclosure and labeling requirements if they apply to your site.
Why Don't External Ad Networks Show Stats in the Core Reports?
The official documentation states that ads hosted on an external service do not track impressions and clicks inside AdSanity Core. For that data, use the network's own reporting or a properly configured analytics integration. Do not compare built-in stats for local banners and ad network data as if they were the same metric.
Should Automatic Placement Be Enabled Right After Installation?
No. First create the ads, groups, and one test placement. Automatic placement makes sense only when you are sure the block should appear in a specific content type and does not interfere with the template. For initial tests, a block, widget, or shortcode is safer.
Can Banners of Different Sizes Be Mixed in One Group?
Technically, a group can contain different ads, but from a design perspective that is poor practice. The official documentation explicitly notes that in most cases, ad unit sizes inside a group should remain consistent. Otherwise, rotation will keep changing the block's height and width, and the page will start to feel unstable.
What Should I Do If Clicking Opens a WordPress Error?
First save the Permalinks settings without changing the structure and clear cache. Then check the target URL in the ad entry. If the problem affects only external code, review the ad network documentation and the browser console.
Is AdSanity Core Compatible with Cache?
It can work with fragment caching or object caching, but some types of static caching interfere with dynamic ad selection. If rotation and stats matter, test your chosen caching setup on real placements and do not draw conclusions from a single page view.
Is the Plugin Suitable for Selling Ad Placements with an Advertiser Dashboard?
The core plugin itself is not a system for selling ads, taking payments, or approving creatives. That workflow requires add-ons, forms, roles, reporting, or third-party tools. If that is your main business requirement, design the process separately and do not treat a basic installation as a complete advertising marketplace.
Where Should I Get IDs for Shortcodes?
IDs should come from your own admin panel: from the ad list, the page for a specific ad, or the group list. Do not use IDs from documentation examples. They are only there to explain shortcode structure and will not match your site.
When AdSanity Core Is the Right Choice
AdSanity Core is worth using if you want to manage ads inside WordPress without manually scattering code across posts and templates. Its strength is a clean structure: ad, group, placement, basic stats, and add-ons only when they are actually needed. For a content site, blog, niche media project, or client site, that is often enough to turn advertising from a set of random insertions into a workable editorial process.
Before rolling it out on a live site, check the requirements, prepare an ad placement map, create a test group, display one block, and make sure clicks, rotation, and reports behave as expected. After that, you can expand the setup gradually: add more groups, connect targeted add-ons, configure ads.txt, and refine styling carefully.
If the tested workflow matches your needs, you can download the latest version of AdSanity Core and test the installation package on a site copy or in a prepared environment. That order is safer than pushing your ad setup directly to public pages without a controlled validation step.


