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.
Features
- 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
- English
- Russian
- German by Fabian Krenzler and Ulrich Simon
- Belarusian by Alexander Ovsov (Web Geek Sciense)
- Spanish by xiaobai_wp
- Italian by Alfredo
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.
Installation
- Upload the plugin folder to the folder
/wp-content/plugins/
- Activate the plugin on the Plugins page
- Configure your plugin to meet your needs
- Create an Ads Spaces in the right quantity and fill them with advertisements
Options
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:
- Show ad on all pages of blog
- Show ad only on pages of this type – ad will appear only on the pages of selected types
- 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
- 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
- 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).
Usage
There are three variants for output: widgets, short codes, the function… and auto inserting…
Widgets
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.
Shortcodes
Shortcode “sam” enables you to insert Ads Place anywhere in the post’s content.
- 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.
- 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.
- 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.
- 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:
1 2 3 4 |
function drawAdsPlace($args = null, $codes = false) function drawAdsZone($args = null, $codes = false) function drawAd($args = null, $codes = false) function drawAdsBlock($args = null) |
- 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Ads Place output if(function_exists('drawAdsPlace')) drawAdsPlace(array('id' => 1), true); // or if(function_exists('drawAdsPlace')) drawAdsPlace(array('id' => 1), array('before' => '<div class="ad">', 'after' => '</div>')); // Ads Zone output if(function_exists('drawAdsZone')) drawAdsZone(array('id' => 1), true); // or if(function_exists('drawAdsZone')) drawAdsZone(array('id' => 1), array('before' => '<div class="ad">', 'after' => '</div>')); // Single Ad output if(function_exists('drawAd')) drawAd(array('id' => 1), true); // or if(function_exists('drawAd')) drawAd(array('id' => 1), array('before' => '<div class="ad">', 'after' => '</div>')); // Ads Block output if(function_exists('drawAdsBlock')) drawAdsBlock(array('id' => 1)); |
Auto Inserting
Designed for automatic insertion of ad codes before and after the content of single post. Configuring is on plugin settings page.
Miscellaneous
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
Donations List
Many thanks to everyone who supports the development of this plugin:
Michael Kiepert, Andrea Vacondio
Download
© 2011 – 2018, minimus. All rights reserved.
Flash Ads Help.
Hi!, i need to insert a Flash Banner Ad but the Click’s count doesn’t work and and i try different options to place another forms ads, and doesn’t work, please help me. How is the best choise to put Flash Ad with counter clicks. Thanks
Total Comment by Nick Avila: 1
For me the same as Um Ser Pensante: With the activated plugin, the visual editor totally disappears. My WordPress version is 3.4.1.
Total Comment by Dex: 1
Great plugin…
I would like to see the block styles split up, instead of using just a single CSS selector.
Example: In my sidebar block, I would like to specify a “border-bottom:” ONLY to separate my ads.
Currently, the plugin uses “border:” so you can not specify the bottom border only.
Total Comment by Thorworx: 1
Hello, I’m using this plugin, and it works fine.
However, in some pages, working with widget Ads Block, it’s repeating same ad in the block.
Eg.: I have four different ads to show in certain categories. I created the four ads inside Ads Place, then created the block, with two lines/one column, and inserted the widget on sidebar.
Ok, now, when I go to the site, the block, about 90% of the times, displays the same ad in the two spaces.
Is that normal? How can I fix it?
Thanks
Total Comment by John: 1
Nice plugin but when I clic on the Admin WP Option Panel to get into the options and after installing it it displays the issue:
Database table vs_sam_places hasn’t been created!
Database table vs_sam_ads hasn’t been created!
Database table vs_sam_zones hasn’t been created!
Database table vs_sam_blocks hasn’t been created!
So there must be a conflict between yor plugin and another one.
Under the Admin displays the “New Place”, “New Zone” and “New Block” and I think they are not neccesary in that place.
By the way, nice plugin ;). Thanks.
PS: if something, let me know and we can talk about those issues above.
Total Comments by Vera: 4
It means that tables really were not created because plugin had not enough access rights to creating tables. Sometimes it happens. Usually, if it happened, user manually creates tables using SQL query.
it could have happened aswell cause I dont use wp_ format tables and “wp” have been replaced by other two characteres, isnt it?
Total Comments by Vera: 4
You can use any prefix for WP tables – it has no effect on the outcome.
Then I dunno why that issue is happening and it is only with this plugin. I´ll have to check it up 😉 Thanks anyway
Total Comments by Vera: 4
I’m getting a lot of warnings when wp-config is on and i can’t save decimal places for click tracking.
Total Comment by will: 1
This is sooooo good plugin, i would call it advanced or PRO instead of simple… Thank you very much for sharing. This really opens a lot of possibilities for any blog… Great stuff!
Total Comment by Abid: 1
Hello,
Will Simple Ads Manager work with woocommerce.
Total Comment by Steve: 1
Hi,
Is there a way that ads be rotated with ajax inside of places without refreshing page? I didn’t found way to do that.
Best regards
Total Comment by Igor: 1
Did you manage to sort out your problem .. can you please update me .. i have the same problem ..
Best Ragards
Total Comments by Nissanka: 2
This plugin not work weel. I’m trying do ads in sideabr and I can’t. ¿How work functions and more of this plugin?
Can’t undestand and this website haven’t information well. Not have examples
Total Comment by Domenec: 1
WordPress plugin Simple Ads Manager | SimpleLib: //t.co/Ku6ar8Tz
WordPress plugin Simple Ads Manager | SimpleLib //t.co/Jj6SXPNQ #wordpress #wp
RT @wordpressgoat WordPress plugin Simple Ads Manager | SimpleLib //t.co/eCsEwbsH #wordpress #wp
On my test site i use this version, but i can’t bring it to work 🙁
Total Comments by Marcel: 2
thanks for developing such a great plugin!
jens
Total Comment by jens: 1
Hey, I’ve a new blog and I want to setup ads using adbrite. But, according to the WordPress ad policy, “AdSense, Yahoo, Chitika, TextLinkAds, and other third-party advertising is not allowed here at WordPress.com.”
So, what can I do?
Total Comment by Arpit: 1
Buy domain and host, setup your own copy of WordPress …
I’m loving this plugin for displaying the collateral from my affiliate schemes.
I’d love to be able to embed ad places into my bbpress forum. Would you consider building some options around this?
Total Comment by Chris: 1
In plans …
@minimus: Your Plugin looks very nice. Congratulation!
For some reasons i need a ads manager that is able to output the adcode via javascript. Do you plan a feature like this?
Total Comment by Heiko: 1
Maybe…
Simple Ads Manager is really good for ad management in WordPress.
Total Comment by SociablWeb: 1
Hi,
An excelent plugin works just fine. I have a on question tho. When i define DFP add SAM i hve tags that are in two parts, one for the head and html body, du i have to mod. header.php with the first part and then enter html in SAM’s box?
I did that last night and it seem to work fine, just DFP is serving my own creatives rather than Advertisers ads:)
Help greatly appretiated,
keep smiling
Total Comments by eWayinSe: 2
No! You must only insert name of DFP block and nothing else!
Don’t forget to define Google pub-code on settings page of plugin…
According to the Ads Manager, my ad is live. I cannot see it on the page though, and I’m completely lost. Help!
Total Comment by Megan: 1
More info, please …
This plugin add the javascript code for Google DFP integration or do I have to manually add those scripts ?
Total Comments by Alexandre: 2
DFP codes are added automatically…
My mistake… my header.php file have not the wp_head function call 😉
Total Comments by Alexandre: 2
where do i have to put the output-functions? function drawAdsPlace($args = null, $codes = false) in functions.php? the if-case in the theme itself? how do i manage this?
Total Comments by frank: 2
You can use this code:
or this:
In theme at bannerplace? nothing Else?
Total Comments by Frank: 2
If your banner place is widgetized use widget … Read post, please!
I installed this plugin, but the database was not created. Is there a way to create the database manually?
This is the error message that was displayed.
Database table wp_sam_places hasn’t been created!
Database table wp_sam_ads hasn’t been created!
Database table wp_sam_zones hasn’t been created!
Database table wp_sam_blocks hasn’t been created!
Total Comment by Maury Hoffman: 1
Try to reinstall plugin, usually it helps…
That doesnt help, that is why I have unisntalled this plugin long time ago, till a fix being found.
Total Comments by Vera: 4
Hi, this is the best ads management tool for WordPress. It has a lot of flexibility, but I am having a little issue: I am defining a new zone “Sidebar”, which uses the place also called “Sidebar”. I also created a block “Sidebar Block” which displays 5 ads out of a list of 10 ads into the “Sidebar” place. If I use the widget “Ads Block”, the five ads shows properly. But if I use the widget “Ads Zone” with the zone “Sidebar” it only shows one of the ads, not the five. Is this a bug or am I doing something wrong? Thank you in advance?
Total Comments by Marcel: 2
It is not the bug! Ads Block object is HIGH LEVEL object and because can contain any other objects. Ads Zone is MIDDLE LEVEL object and can contain any Ads Place object but CAN NOT contain HIGH LEVEL object (Ads Block) …
Thank you Minimus for the answer!
Total Comments by Marcel: 2
Hye,
Can i know why i have this warning?
Warning: Missing argument 2 for wpdb::prepare(), called in /home/xxxxx/public_html/wp-content/plugins/simple-ads-manager/list.admin.class.php on line 118 and defined in/home/xxxxx/public_html/wp-includes/wp-db.php on line 990Warning: Missing argument 2 for wpdb::prepare(), called in /home/xxxxx/public_html/wp-content/plugins/simple-ads-manager/list.admin.class.php on line 119 and defined in/home/xxxx/public_html/wp-includes/wp-db.php on line 990
The plugin still functional and work properly but show these warning.
Total Comment by Naziman: 1
I am also getting this error with WordPress 3.5. And I did try disabling all other plugins. Still got the error. I have it installed on a 3.4.2 version of WordPress with no issues. Wonder if it is a v3.5 thing.
Warning: Missing argument 2 for wpdb::prepare(), called in /home/xxxxx/public_html/wp-content/plugins/simple-ads-manager/list.admin.class.php on line 118 and defined in/home/xxxxx/public_html/wp-includes/wp-db.php on line 990Warning: Missing argument 2 for wpdb::prepare(), called in /home/xxxxx/public_html/wp-content/plugins/simple-ads-manager/list.admin.class.php on line 119 and defined in/home/xxxx/public_html/wp-includes/wp-db.php on line 990
Total Comment by PerryG: 1
This is simple: you have to update the file list.admin.class.php at line 118 and add an empty argument to the “prepare” part, e.G.
$post_datetimes = $wpdb->get_row($wpdb->prepare(“SELECT YEAR(min(post_date_gmt)) AS firstyear, YEAR(max(post_date_gmt)) AS lastyear FROM $wpdb->posts WHERE post_date_gmt > 1970″,””));
Total Comment by Achim: 1
This bug is already resolved, but now I think what is better: to publish this patch as new 1.X version or include it to developing version 2 of plugin.
I have been playing around with this plugin for days and I can not get it to work. I have added an ad place and and created an ad.
I am having a problem in creating an ad zone. It does not pick up the ad place. The default ads place contains no entries.
What may be the problem?
Total Comments by Michael: 2
I am getting the error Warning: Invalid argument supplied for foreach() in simple-ads-manager/ad.class.php on line 614. Does anyone know what the problem may be?
Total Comments by Michael: 2
Hej and happy New Year!
Apart from that the plugin seem to be working fine I am also getting the msg as the others:
Warning: Missing argument 2 for wpdb::prepare(), called in /usr/local/pem/vhosts//webspace/siteapps/2166/htdocs/wp-content/plugins/simple-ads-manager/list.admin.class.php on line 118 and defined in /usr/local/pem/vhosts//webspace/siteapps/2166/htdocs/wp-includes/wp-db.php on line 990 Warning:
But it seem to work fine:))
Cheers
Total Comments by eWayin Sweden: 2
How do you set link to website of advertiser from image when user click. I mean how do you set that link? TQ
Total Comments by Ismail Daud: 2