Home | Best | WordPress plugin Simple Ads Manager

WordPress plugin Simple Ads Manager

Until recently I used the plugin “Advertising Manager”. However, I am not quite satisfied the set of its capabilities. For example, the inability to display scheduled advertisements, or the inability to display ads in the posts only certain categories. Etc.

That’s why I wrote my own plugin to control the advertising on the blog – Simple Ads Manager. I tried to create a plugin that will satisfy most requests of any blogger to manage advertising on the blog. And I think I managed it.

Simple Ads Manager is easy to use plugin providing a flexible logic of displaying advertisements.

Note: Now this plugin is partially deprecated. If your site works under PHP 5.3 or later version (include PHP 7.0) it is better to use SAM Pro (Free Edition).

More info you can find in this article

Support Forum


  • Flexible logic of advertisements rotation based on defined weight of each advertisement in group (Ads Place)
  • Custom default ad for each Ads Place Allowed types of ad’s codes are HTML, javascript, PHP
  • Codes of Google DoubleClick for Publishers (DFP) supports
  • More flexibility of displaying ads by using Ads Zone selector
  • Outputting ads as widget
  • Outputting ads as shortcodes in any place of single post/page content
  • Outputting ads in any place of theme template using output functions
  • Customizable outputting ads as block of ads
  • Automatic outputting ads in single post/page if allowed
  • Customizable limitation of displaying advertisements by types of page
  • Customizable limitation of displaying advertisements on single post page by post ID (IDs)
  • Customizable limitation of displaying advertisements on single post page or category archive page by category (categories)
  • Customizable limitation of displaying advertisements on single post page or author archive page by author (authors)
  • Customizable limitation of displaying advertisements on single post page or tag archive page by tag (tags)
  • Customizable limitation of displaying advertisements on custom type single post page or custom type archive page by Custom Type (Types)
  • Customizable blocking of displaying advertisements on single post/page by post/page ID (IDs)
  • Customizable blocking of displaying advertisements on single post page or category archive page by category (categories)
  • Customizable blocking of displaying advertisements on single post page or author archive page by author (authors)
  • Customizable blocking of displaying advertisements on single post page or tag archive page by tag (tags)
  • Customizable blocking of displaying advertisements on custom type single post page or custom type archive page by Custom Type (Types)
  • Schedule of displaying each advertisement if allowed
  • Customizable limitation of displaying advertisements by hits
  • Customizable limitation of displaying advertisements by clicks
  • Statistics of hits
  • Statistics of clicks (your own advertisement image mode)
  • Customizable accuracy of bots and crawlers detection
  • Counting revenue from ads placement, display ads and clicks on advertisements

Available languages

The Concept

The main object of the plugin is “Ads Place“. Each Ads Place is a container for the advertisements and provides the logic of the show and rotation. In addition, one of the parameters of advertising space is “patch ad code”, ie ad to be shown if and only if the logic of ads this Ads Place does not permit to show none of the advertisements contained in this Ads Place. One Ads Place can contain any number of objects “advertisement”.

Object “advertisement” rigidly attached to his container “Ads Place”. Its parameters determine frequency (weight) of displaying and limiting displaying from “show all pages” to “show the articles with ID … ” and show from date to date (the schedule).

Additional object “Ads Zone” is selector developed for increasing the flexibility of displaying ads. This optional object can be useful for conducting advertising campaigns using a large number of promotional materials.

The additional object “Ads Block” allows to display the block of advertisements.


  1. Upload the plugin folder to the folder /wp-content/plugins/
  2. Activate the plugin on the Plugins page
  3. Configure your plugin to meet your needs
  4. Create an Ads Spaces in the right quantity and fill them with advertisements


Go to the page Ads->Settings

Views per Cycle – the number of impressions an ad for one cycle of rotation, provided that this ad has maximum weight (the activity). In other words, if the number of hits in the series is 1000, an ad with a weight of 10 will be shown in 1000, and the ad with a weight of 3 will be shown 300 times.

Do not set this parameter to a value less than the maximum number of visitors which may simultaneously be on your site – it may violate the logic of rotation.

Not worth it, though it has no special meaning, set this parameter to a value greater than the number of hits your web pages during a month. Optimal, perhaps, is the value to the daily shows website pages.

Display Ad Source in – you can display advertisement target in new or current window (tab). Select target window (tab).

Auto Inserting Settings – here you can select the Ads Places and allow the display of their ads before and after the  content of single post.

Google DFP Settings – if you want to use codes of Google DFP rotator, you must allow it’s using and define your pub-code.

Statistics Settings

Bots and Crawlers detection

For obtaining of more exact indexes of statistics and incomes it is preferable to exclude data about visits of bots and crawlers from the data about all visits of your blog. If enabled and bot or crawler is detected, hits of ads won’t be counted. Select accuracy of detection but use with caution – more exact detection requires more server resources.

Allow Bots and Crawlers detection – If allowed, hits of detected bot won’t be counted.

Accuracy of Bots and Crawlers Detection:

  • Inexact detection – This method is based on an analysis of the request header. Inaccurate method.
  • Exact detection – This method uses the Browser library by Chris Schuld for detection of bots. Recommended.
  • More exact detection – This method uses “browscap” data for bots detection. Very exact and very slow method. If browscap not defined in your php.ini, this method is unavailable.

Display of Currency:

  • Auto – auto detection of currency from blog settings.
  • USD – Forcing the display of currency to U.S. dollars.
  • EUR – Forcing the display of currency to Euro.

Ads Place creation and configuration

Go to your list of Ads Places (Ads -> Ads Places) and click the “Add New Place”.  In the opened editor window configure current Ad Place.

Enter a name and a description of the Ads Place. In principle, it is not mandatory parameters, because these parameters don’t influence anything, but experience suggests that after a while all IDs usually will be forgotten  and such information may be useful.

Ads Place Size – in this version is only for informational purposes only, but in future I plan to use this option. It is desirable to expose the real size.

Ads Place Patch – it’s an ad that will appear in the event that the logic of basic ads outputing of this Ads Place on the current page will not be able to choose a single basic ad for displaying. For example, if all basic announcements are set to displaying only on archives pages or single pages, in this case the patch ad of Ads Place will be shown on the Home page. Conveniently to use the patch ad of Ads Place where you sell the advertising place for a limited time – after the time expiration of ordered ad will appear patch ad. It may be a banner leading to your page of advertisement publication costs or a banner from AdSense.

Patch can be defined:

  • as combination of the image URL and target page URL
  • as HTML code or javascript code
  • as name of Google DoubleClick for Publishers (DFP) block

If you select the first option (image mode), tools to download/choosing of downloaded image banner become available for you.

Codes – as Ads Place can be inserted into the page code not only as widget, but as a short code or by using function, you can use code “before” and “after” for centering or alignment of Ads Place on the place of inserting or for something else you need. Use HTML tags.

Advertisement creation and configuration

Go to the list of Ads Places (Ads -> Ads Places), move the mouse to the desired Ads Place, select in the row menu that appears “View Ads” for the transition to the advertisements list of this Ads Place or “Add Ad” for the transition to the editor of a new ad. If you went to the list of ads, click on “Add New Ad”.

Enter a name and a description of the advertisement. These parameters are optional, because don’t influence anything, but help in the visual identification of the ad (do not forget which is which).

Ad Code – code can be defined as a combination of the image URL and target page URL, or as HTML code, javascript code, or PHP code (for PHP-code don’t forget to set the checkbox labeled “This code of ad contains PHP script). If you select the first option (image mode) you can keep statistics of clicks and also tools for uploading/selecting the downloaded image banner becomes available to you.

Restrictions of Advertisement Showing

Ad Weight – coefficient of frequency of show of the advertisement for one cycle of advertisements rotation.
0 – ad is inactive, 1 – minimal activity of this advertisement, 10 – maximal activity of this ad.

Restrictions by the type of pages – select restrictions:

  1. Show ad on all pages of blog
  2. Show ad only on pages of this type – ad will appear only on the pages of selected types
  3. Show ad only in certain posts – ad will be shown only on single posts pages with the given IDs (ID items separated by commas, no spaces)

Additional restrictions

  1. Show ad only in single posts or categories archives of certain categories – ad will be shown only on single posts pages or category archive pages of the specified categories
  2. Show ad only in single posts or authors archives of certain authors – ad will be shown only on single posts pages or author archive pages of the specified authors

Use the schedule for this ad – if necessary, select checkbox labeled “Use the schedule for this ad” and set start and finish dates of ad campaign.

Use limitation by hits – Use this parameter for limiting displaying of ad by hits.

Use limitation by clicks – Use this parameter for limiting displaying of ad by clicks.

Prices – your prices for that ad.

  • Ad placement per month – used only for scheduled ads.
  • Per Thousand Hits – Not only humans visit your blog, bots and crawlers too. In order not to deceive an advertiser, you must enable the detection of bots and crawlers.
  • Per Click – To calculate the earnings on clicks, you must enable counting of clicks for that ad.

Ads Zone creation and configuration

Ads Zone is selector that used to select the appropriate Ads Place for each type of displayed page.

Go to your list of Ads Zones (Ads -> Ads Zones) and click the “Add New Zone”.  In the opened editor window configure current Ads Zone.

Enter a name and a description of the Ads Zone.

Select default Ads Place.

Select the appropriate Ads Places for each type of page, category or author or leave “Default” value. You can block displaying Ads Place on needed type of page selecting “None” value.

Ads Block creation and configuration

Ads Block used for outputting block of ads.

Go to your list of Ads Blocks (Ads -> Ads Blocks) and click the “Add New Block”.  In the opened editor window configure current Ads Block.

Enter a name and a description of the Ads Block.

Enter number of lines and columns of Ads Block. After changing these properties you must save Ads Block settings before using Ads Block Editor.

Configure styles for Ads Block and Block’s items. Use Stylesheet rules for defining these properties. For example: url(sheep.png) center bottom no-repeat for background property or 5px solid red for border property.

Important Note: As the Ads Block is the regular structure, predefined styles of individual items for drawing Ads Block’s elements aren’t used. Define styles for Ads Block Items on Ads Block Editor page!

Customize Ads Block structure (select Ads Place or Ads Zone or Single Ad for each item of block).


There are three variants for output: widgets, short codes, the function… and auto inserting…


Go to the widgets page (Appearance->Widgets). In the area of available widgets locate widget “Ads Place” and drag it to the necessary sidebar. You can also use widgets “Ads Zone” and “Single Ad”.

Configure your widget:

  • Title – title of widget. If not needed, leave empty.
  • Ads Place – select Ads Place from a list of all Ads Places.
  • Hide widget style – in some theme templates it is necessary for the sidebar in the blog header.
  • Allow using previously defined “before” and “after” codes of Ads Place – these are the codes that are defined for each Ads Place as “code before” and “code after”.

Widgets “Ads Zone” and “Single Ad” can be configured in the same way.


Shortcode “sam” enables you to insert Ads Place anywhere in the post’s content.

[sam id=1 codes='false']
  • id – ID of Ads Place
  • codes – allow or not allow to use Ads Place codes “before” and “after”. Default “false”

Shortcode “sam_zone” enables you to insert Ads Zone anywhere in the post’s content.

[sam_zone id=1 codes='false']
  • id – ID of Ads Zone
  • codes – allow or not allow to use Ads Place codes “before” and “after”. Default “false”

Shortcode “sam_ad” enables you to insert Single Ad anywhere in the post’s content.

[sam_ad id=1 codes='false']
  • id – ID of Ad
  • codes – allow or not allow to use Ads Place codes “before” and “after”. Default “false”

Shortcode “sam_block” enables you to insert Ads Block anywhere in the post’s content.

[sam_block id=1]
  • id – ID of Ads Zone

Output functions

In order that would insert Ads in any place of theme template, use the drawAdsPlace, drawAdsZone or drawAd functions.

Output functions are defined as follows:

  • args – array, which may include id (ID of Ads Place) or/and name (the name of Ads Place, not recommended)
  • codes – bool|array, allow or not allow to use Ads Place codes “before” and “after”. Default “false”. If bool value, codes ‘before’ and ‘after’ will be received from Ads Place record. If array value, codes ‘before’ and ‘after’ will be received from array.

Auto Inserting

Designed for automatic insertion of ad codes before and after the content of single post. Configuring is on plugin settings page.


At first glance, it might seem that the plugin is too heavy – as did 500 kb codes. But do not be terrified ahead of time, the plugin is using the technology of saving resources. In other words, in the Face Side is loading only 23 kb of codes, of which 21 kb PHP-code and 2 kb javascript code. Everything else are extentions for the admin mode, and even then, not all are loading en masse, but only if necessary.

Video Lessons:


Donations List

Many thanks to everyone who supports the development of this plugin:

Michael Kiepert, Andrea Vacondio


© 2011 – 2018, minimus. All rights reserved.

About minimus

Senior Full Stack Web-developer (React, Node.js). Also: Development using Object Pascal, C#, SQL, PHP, Javascript.

Check Also

XAds for SAM Pro

This addon provides extended visualization of ads served by SAM Pro (Lite and Free edition). …


  1. I need help. I’ve been running your software for months now. I have about 40 Ad Places. When I try to access the Ad Places page my server does an Internal Error. I can access all other parts of your software admin pages, except the Ad Places. I have increased my PHP execution time to 60 seconds but it doesn’t help. It seems that I have too many Ad Places for my Dedicated Virtual server to handle? What can I do to speed things up, and get the Ad Places admin page up?
    Total Comments by John Manzione: 5

    • What in Error Log of server?

      • There are no errors in the log. None. However, I did use the settings page to only show me 5 Ad Places at a time and it now works, but it takes the maximum amount of time to show them. I love this script, and would gladly pay for it again, if it were faster, learner, and if you ADDED those WordPress Buttons that would allow us to delete more than ONE ad a time. 
        I have not cleaned out my Ad places in a while, so in order to speed up the page loading I took Saturday to delete the ones that were no longer active. It took hours because I couldn’t “choose” more than one at a time. Any chance that option will show up soon?
        Thanks for all your handwork, it has to be a time-consuming script for you!
        Total Comments by John Manzione: 5

  2. Minimus, I’d like to place a super leaderboard ad place above the banner logo at the very top of my site. I’ve created a place (id=3), but can you show me example php code on how to make the ads appear? Thank you!
    Total Comment by Lee Smith: 1

  3. I have tried your support forum but havent gotten an answer please help.
    when I go to the admin and click ads places then click view ads it appears to time out…it doesnt show anything but a blank frame in the page  this makes it impossible to delete or edit existing ads  there are 21 ads in the ads place please help with this  TIA
    Total Comments by Mike South: 2

  4. Hi,
    we still in trouble with Internet Explorer, nothing showned on sam div

    Simple Ads Manager 2.2.80
    Internet Explorer 11.0.9600.16438

    Any clues about it?

    Total Comment by Luca: 1

  5. Hi 
    When opening the ad-places page or opening an ad-place page to view the ads it can take up to a minute to open and the hole website and database are down and inaccessible while it´s opening.
    I have 27 ad-places and there are about 130 ads in the system (7 active).
    Can you think of something that could be the issue?
    WordPress Version: 3.6.1
    SAM Version: 2.2.80SAM DB Version: 2.6PHP Version: 5.3.28MySQL Version: 5.1.54-logMemory Limit: 128M
    Total Comments by Andri: 3

  6. Franz Sauerstein

    I am using an Woothemes Theme which has an built in ads-place for Adsense. However I cannot get it to work with SAM-php-code. It seems I need to use javascript. How would I do that?
    Total Comments by Franz Sauerstein: 2

  7. hi.
    your plugin bad align in my wordpress.
    my wordpress core is rtl.
    please answer me.
    i can translate your plugin in Persian(Farsi) Language.
    Total Comment by RTL WordPress: 1

  8. I have a problem in nexus 7, the ads don’t display on it.
    Total Comment by Carolina: 1

  9. Hello,
    thanks again for the plugin! Just a question:
    Is the mailer working? the one to send reports of the ad activity… where does it send the emails? In 4 months I have never received a report.
    Is there the possibility to set the email in the options or it sends the message to the default email?

    Thank you,
    Total Comments by Diego: 8

  10. I Have updated WordPress a week ago and now i have no SAM Button in my Editor. What can i Do?
    Total Comment by Robert Rafai: 1

  11. Hi, I installed this plugin through WordPress and immediately my WYSIWYG editor stopped working. Disabled the plugin and it’s fine again. Any suggestions? I’ve looked around and can’t see any hints. Thanks.
    Total Comment by Simon: 1

  12. Hi there,

    why dont you show automatically php code in your plugin ? for example if i create one zone you can show php code for that zone which we need to paste in template.

    Total Comment by johnes: 1

  13. Hi! I use this plugin for my ads and have loved it but when I tried to edit an ad today, I am unable to get to the “Ad Places” page. It results in an internal server error (however my error log shows nothing of the sort). I can access all other pages within the plugin (zones, settings, new place, etc.). Is this a known issue? Do you have any solutions? Both the plugin and wordpress are up to date.


    Total Comment by Kelly: 1

  14. I’m getting an Ajax error all of a sudden when I go to ad a new advertisement. What could cause this? I don’t host this site, but it’s on a shared server.

    I wonder if its something to do with the calls outbound? Thoughts? I posted a screen shot of what it looks like when I see the error:

    Total Comment by Mark: 1

  15. If i insert Ads in my theme template using Ads Block output, the “Use the schedule for this ad” not work, even the single ads is inactive. Please check!
    Total Comment by tuan le van: 1

  16. Hello,
    I love your plugin but I need to display the ads in a slideshow with “next” and “prev” buttons.
    My ideea was to display an ad block with one line and a certain number of columns and then, wrap the all columns in a slideshow. Can you please give me some hints about how can I achieve that and not alter the code too much?

    Thank you in advance!
    Total Comment by Adelina: 1

  17. We have been using simple ads manager, and it works great except that, if someone comes to the site and is using explorer, chrome or safari, if they click on one ad it works okay but if they try to click on another ad on the same page after that it doesnt let you click on it? Is there a fix for this? Thanks
    Total Comment by Ella Wright: 1

  18. Hi!

    We love your plugin! However, yesterday GoDaddy emailed us to let us know that our databases are using up too much server space. It turns out that it’s all wp_sam_errors. I’ve cleared the database and turned off the error logs in the SAM settings, but it’s still logging errors and generating about 30-45 errors an hour (with only one ad in one ad place on the site). Is there a way to permanently turn off the error logs? Why is this plugin generating so many errors?

    WordPress Version: 3.9.1
    SAM Version: 2.2.80
    SAM DB Version: 2.6
    PHP Version: 5.3.24
    MySQL Version: 5.0.96-log
    Memory Limit: 256M
    Total Comment by Megan: 1

  19. Hello,

    i’m trying todo something like an “Wallpaper Banner” with your Plugin so ie. One Banner in the Header that Scrolls with the Page, 2 Skyscraper Banner Left and Right and i hacked your Plugin Functions a bit to also change the background body style of my site with SAM… The Only issue i still have is, that i need something like a Grouping function, where all 4 Ad Place Banner are always shown together so that it basilly makes 1 Banner out of 4 and also leaves the 3 Ad Places (Header, Left, Right) for single individual Banners, that should rotate normally.

    I thought that the Blocks would do the trick, but it’s not really documented well, and i also would need a different output code in the template for it, which breaks my approach with the single individual banners..

    Do you have any idea what i should do?
    Total Comment by Christopher: 1

  20. Hello,
    Many thanks for your plugin, it is very useful for uor web site.
    But I have one question about limitation of displaying advertisements by hits. When I use this parameter, does it work for hole period of banner’s activity? Or it have some limitation? For example, it could have 5 hits during the month/week etc.
    The similar question is for hole system of ad displaying. Does it use coockies for displaing? Or it just work without coockies limitation during the day/week?
    Total Comment by Vadym: 1

  21. Hi, this is a great plugin, thank you. Could you provide some more explanation of the “ad zone” and “ad block”? I do not really understand what they are for and how they work?
    Total Comment by Alex: 1

  22. Dear Mr. Minimus

    i have try this Great Plugins. but on some condition i want to show ads on Loop between post for archive or category, for example, we have 7 post and i want to show ads between post 3 – 4 and also on post 6 – 7.. can you show me how to do that..

    Many Thank’s
    Total Comment by Abebae: 1

  23. SAM is a very nice plugin–the best I’ve seen for ad management. Thank you for creating it for us. 🙂

    I have a question. When targeting an ad to specific pages, not all of the available pages show on the list, but I get “miles” of empty space below the list of pages. Some pages were added after hundreds of posts were added, so they have page id’s like 1876, etc. It looks like the list is formatted with a JS script called w2ui.js, but I’m guessing there is an issue with the data itself as it is passes on to the script. Any idea what is going on or what I could do to resolve that?
    Total Comment by Stacey: 1

  24. Im going to tell you the truth, this plugin is junk, It works well at first but if you have a high traffic site it will reach the point where you cant administer it, you will get internal server errors. The problem is the the ad tracking…you cant turn it off and the table gets too large to process. You also cant delete the rows from the table unless you know sql and can use it on the table via myphpadmin or whatever. The plugin is fine if you dont get much traffic I guess but it took only a few months before I had 10 million plus rows in the table making it unuseable to add new or delete or modify existing ads.
    Total Comments by Mike South: 2

    • Maybe the developer of the plugin can implement some kind of auto-purging or archiving for the ad tracking table?
      Total Comments by owcv: 5

  25. It is easy possible to use archiving. Simply Change some SQL and php code. Then you will have
    only the daily traffic inside of the database. I guess this will be the Minimum that the database should have, if this is too much, get a better Hosting.
    Otherwise it is possible that you have only one hour of traffic inside your database.
    Total Comments by karl: 2

  26. jinka varalakshmi

    Auto inserting is not working. I have placed chitika ad code in the middle of post with simple ads manager. After that no post is being opened. What should I do.
    Total Comment by jinka varalakshmi: 1

  27. Basically just set it up. Had a bit of a time figuring it out but now? Wow! Nice!

    One question. A simple one:
    When I (the wordpress admin) views my website, is it counting as hits on the ad? I could not find an answer to this. If it is counting hits to the ads can I disable it?

    Thanks… JD
    Total Comment by JD: 1

  28. Hi, I´m using a template called Directory, from ait theme – http://www.ait-themes.com/wordpress-themes/directory-wordpress-theme/

    I installed SAM and activate it, but it doesn´t show on the left side bar of WP admin.

    Any solution?
    Total Comments by Aristides: 2

  29. Hello, I tried to use SAM in a website which has Directoy theme from AIT installed. But after intalling and activating SAM, it doesn´t show up on the left side bar of the WP Admin, as any plugin does.

    In wrote to directory about this issue and this was the answer:

    it looks like the custom post type position of plugin has the same number for position in menu like another our custom post type (or custom post type of another plugin). I think you can try contact plugin developers where you can change the position of their custom post type in wordpress menu. During post type registration is set up the position number

    Could you help me on this?

    Best regards
    Total Comments by Aristides: 2

  30. My apologies if I’ve overlooked this.  I love the plugin; however, I’m having an issue with a “header”-type ad displaying on my landing pages.  Is there a straightforward way to tell an ad to not display on pages?  (That is, I want it to display on Posts & Category Archives, but not on Pages.)  I’m guessing that’s not an uncommon need.
    Total Comments by Rachel R.: 7

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.