Ad Management
PaywallWP Pro includes a built-in ad management system that displays advertisements to non-subscribers while hiding them for paying members. This "ad-free experience" is a common premium benefit.
How It Works
- Configure ad zones with your ad code
- Set visibility rules based on subscription level
- Subscribers see clean, ad-free content
- Non-subscribers see ads in designated zones
Benefits
For Publishers:
- Monetize non-paying visitors
- Incentivize subscriptions
- Manage ads centrally
For Subscribers:
- Ad-free reading experience
- Faster page loads
- Premium feel
Ad Zones
PaywallWP Pro supports multiple ad placement zones:
| Zone | Placement | Shortcode Required |
|---|---|---|
| Auto Ads | Page head (script injection) | No (automatic) |
| Header | Top of page | Yes |
| Sidebar | Widget area | Yes |
| In-Content | Within post body | No (automatic) |
| After Content | After post content | No (automatic) |
| Footer | Bottom of page | Yes |
Automatic Zones
- Auto Ads — Scripts injected in page
<head>for ad networks that auto-place ads (like AdSense Auto Ads) - In-Content — Ads inserted at specific paragraph positions within posts
- After Content — Ads appended after post content
No shortcodes needed for these zones.
Manual Zones
Header, Sidebar, and Footer zones require shortcodes:
[paywp_ad zone="header"]
[paywp_ad zone="sidebar"]
[paywp_ad zone="footer"]
Configuration
Enable Ad System
- Go to PaywallWP → Settings → Ads
- Toggle Enable Ads to on
- Configure Hide Ads for Subscribers
- Set Minimum Access Level to hide ads
- Save Settings
Configure Ad Zones
For each zone:
- Enable the zone
- Paste your ad code (HTML/JavaScript)
- Set position options (if available)
- Save
Ad Code Example
Paste your ad network code directly:
<!-- Google AdSense -->
<ins
class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-XXXXXXXXXX"
data-ad-slot="XXXXXXXXXX"
data-ad-format="auto"
></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script>
Visibility Settings
Hide Ads for Subscribers
| Setting | Description |
|---|---|
| Hide Ads | Enable/disable ad hiding |
| Minimum Level | Access level required to hide ads |
Example configurations:
| Access Level | Who Sees Ads |
|---|---|
| 1 | All subscribers ad-free |
| 3 | Only Level 3+ subscribers ad-free |
| 5 | Only Premium/VIP ad-free |
Per-Plan Ad Settings
You can make "ad-free" a feature of specific plans:
Basic Plan (Level 2):
- Access to basic content
- Still sees ads
Premium Plan (Level 5):
- Access to all content
- Ad-free experience
Set the minimum level to 5, and only Premium subscribers get ad-free.
In-Content Ads
Automatic Placement
In-content ads are inserted automatically:
| Setting | Description |
|---|---|
| Position | After X paragraphs |
| Repeat | Insert multiple times |
| Min Content Length | Only for longer posts |
Configuration
- Go to Settings → Ads → In-Content
- Set Insert After Paragraph (e.g., 3)
- Enable Repeat to insert multiple times
- Set spacing between ads
- Save
Using the Shortcode
Basic Usage
[paywp_ad zone="sidebar"]
In Widgets
Add to a Text widget or Shortcode widget:
[paywp_ad zone="sidebar"]
In Theme Templates
<?php echo do_shortcode('[paywp_ad zone="header"]'); ?>
Multiple Ad Networks
You can use different ad networks per zone:
| Zone | Ad Network |
|---|---|
| Header | Google AdSense |
| Sidebar | Custom sponsor |
| In-Content | Native ads |
| Footer | Affiliate banner |
Best Practices
Ad Placement
- Don't Overload — 3-4 ads per page maximum
- Above the Fold — At least one ad visible immediately
- Natural Flow — Ads shouldn't interrupt reading
- Mobile First — Test ad appearance on mobile
Performance
- Lazy Load — Use lazy loading for below-fold ads
- Async Scripts — Load ad scripts asynchronously
- Minimize Count — Fewer ads = faster pages
User Experience
- Clear Labeling — Ads should be identifiable
- Non-Intrusive — Avoid popups and interstitials
- Consistent Sizes — Use standard ad dimensions
- Quality Ads — Avoid deceptive or low-quality ads
Ad-Free as a Selling Point
Market ad-free as a premium benefit:
On Pricing Page
Premium Plan Features:
✅ Access to all content
✅ No advertisements
✅ Faster page loads
✅ Clean reading experience
On Paywall
Subscribe for ad-free reading
Testing Ads
Test as Non-Subscriber
- Open incognito browser
- Visit your site
- Verify ads appear in correct zones
Test as Subscriber
- Log in as a test subscriber
- Verify ads are hidden
- Check console for errors
Common Ad Networks
Test with these popular networks:
- Google AdSense
- Media.net
- Ezoic
- Mediavine
- AdThrive
Troubleshooting
Ads Not Showing
- Verify ad zone is enabled
- Check ad code is valid
- Disable ad blockers for testing
- Check console for JavaScript errors
Ads Showing for Subscribers
- Verify subscriber access level
- Check minimum level setting
- Clear cache
- Log out and log in again
Ads Breaking Layout
- Check ad code for errors
- Verify responsive settings
- Test on multiple screen sizes
- Use appropriate ad sizes
Ad Blockers
Some users use ad blockers. Options:
- Accept It — Ad-free subscribers don't care
- Detect — Show message asking to whitelist
- Paywall — Offer subscription as alternative
Analytics
Track ad performance:
| Metric | Why It Matters |
|---|---|
| Ad Impressions | Revenue potential |
| Click Rate | Ad engagement |
| Revenue per User | Compare to subscription value |
| Ad-Free Conversions | Subscribers motivated by ads |
Next Steps
- General Settings for global options
- Subscription Plans for ad-free tiers
- Shortcodes Reference for ad shortcode details