On: 2007/06/28
Shorter URL for this page: http://ozh.in/kr

Warning: hefty explanations and documentation. On a rush? Give the demo a try. Chances are you'll understand right away what and how. Then download. Then please read here.

Current version: 2.0 for WordPress 2.5+ See below for older versions.

You most certainly have two types of visitors on your blog : some returning readers, and a majority of first time visitors. Returning readers come to your site for its content and for what you write. First time visitors, and mostly search engine visitors, come because they are looking for something particular, look at the page, and leave.

The first obvious thought that comes to mind when you want to monetize your blog is: "I'm going to put ads and banners everywhere". By doing so, you won't add any value or service to regular readers, who are not likely to click on your ads. By doing so, you'll also probably won't do justice to your finely handcrafted pixel polished WordPress theme. By not serving ads to your regular visitors, chances are you'll both lose little money and show your readers you're treating them differently.

Therefore, the second obvious thought about blog monetization is : "I wish I could display a lot of ads to those coming once never returning readers, but not bother my regular fans". Enter Who Sees Ads, the ultimate ad management plugin.

Who Sees Ads : the Ultimate Ad Management Plugin

Who Sees Ads ?

So, who sees ads ? Now it's up to you.

Who Sees Ads is an advanced ad management plugin that lets you decide who will see your ads, depending on user defined conditions. The association of an ad and these conditions is called a context: a set of circumstances you define, that will eventually display or not an ad.

For instance, you could consider the following criteria: Is the visitor a regular reader? Does this visitor come from a search engine? Is the visitor currently reading a recent post, or something really old?

Live demo

The plugin is active here, to display an ad on top of the right sidebar. Depending on the context, you could see it or not. Its display rules are:

  1. display if visitors comes from a search engine
  2. don't display if the visitor is a regular reader
  3. always display

The ad behavior is defined by the first rule that is matched. Visit the main page of my blog: as I've defined a "Regular reader" here (someone who has read at least 2 pages over the last 10 days), you're now a regular reader, hence rule #2 apply and you don't see the ad any longer. Now go to Google and click on the first result to come back here: rule #1 now applies, and you'll see the ad.

Define Contexts

Ad code + Display rules = Context

You already probably have the Ad code : it can be plain HTML (a text link, a image banner) or Javascript (your Adsense code). Let's define the display rules.

Who Sees Ads offers a very intuitive and powerful visual interface to create your context and pick display rules, in which you naturally select and order them with your mouse. The interface also offers a convenient way to duplicate, rename and delete your contexts.

Have a look and play a bit with this demo. You'll love it.

Display Rules

Possible rules

By default, you can pick or mix any of the following rules :

  • If Visitor comes from a search engine, display / don't display
  • If Visitor is a regular reader, display / don't display
  • If Post is older than XX days, display / don't display
  • If Visitor is logged in, display / don't display
  • If Date is between specified date interval, display / don't display
  • If Ad has been showed less than XX times, display / don't display
  • If This visitor has viewed this ad less than XX times, display / don't display
  • If All previous conditions fail, try another context
  • If Any condition, display / don't display

The ad behavior will be eventually decided by the first rule which is matched. For instance, if you want to display an ad only for search engine visitors, you'll pick the following :

  1. If Visitor comes from a search engine, display
  2. If Any condition, don't display

If no rule is matched, nothing displays, so the second rule in the above example is actually optional.

I made up a list of example display rules, be sure to check them.

Advanced Display Rules

Advanced custom PHP rules You can use PHP functions and make your own custom advanced display rules. Want to display something on home page only ? if (is_home()) display will be your custom display rule.

You can use PHP built-in, WordPress internal, or your own functions. Your brain is the limit.

Please note: you obviously need to know a bit of PHP in order to use the advanced display rules. By default, they are not enabled. If you want them active, edit the beginning of the script and set $wp_ozh_wsa['iknowphp'] to true. This requires your agreement on being on your own if you break your site or if ads don't show as expected.

There are two advanced custom display rules :

  • If ( condition ), display / don't display
  • If !( condition ), display / don't display

The if and if not rules are working the same, I just thought it could be more convenient in some cases to use an if not rather than an if, and this way you also have two custom rules for the price of one :)

Again, check the example display rules to get an idea of how powerful it is.

Features

Simple and Effective Ad Management

Even if you're not using Who Sees Ads to fine tune display rules, it will make your life easier. Pasting <?php wp_ozh_wsa('google-336-280') ?> in your PHP templates such as sidebar.php is a lot easier than cut and pasting 10 lines of javascript, especially if you decide later to change the javascript across multiple files.

Use it inline or in PHP templates

Create contexts and display ads either in your PHP files on within your posts and pages :

  • <?php wp_ozh_wsa('mybanner') ?> in your PHP files such as sidebar.php
  • <!--wsa:mybanner--> within posts and pages

Visual interface

If you haven't tried it already, play with the demo. It's not functional of course, but it will show you own the interface lets you visually create contexts, and easily rename, duplicate and delete ads.

Help Wizard

A togglable introductory help contains a handy wizard that will assist you, creating your two first rules. Click on the image for a screenshot of the Wizardry.
Wizard !

Posting help

Within the Post/Edit interface, you'll find a convenient drop down selection to easily insert context you will have created (if you create just one context, the select is replaced with a button)
Editor button

Google Adsense and Yahoo Publisher Compliant

Per terms of use, YPN (TOS) and Adsense (TOS) impose a maximum number of ads in a page, as follow (as of writing):

  • YPN: 3 ads per page
  • Adsense :
    • 3 ads
    • 2 search boxes
    • 3 link units
    • 3 referral units

Who Sees Ads fully complies to these restriction, and will display ads of a particular type up to the maximum number allowed.

Google Adsense and Yahoo Publisher Compliant, part 2

Per terms of use, YPN and Adsense don't allow ads on error pages such as 404 pages, and on pages that are not viewable by their system.
Who Sees Ads also complies to this policy, and ads won't be displayed on 404 error pages, and on draft posts a publisher is previewing.

Admin Clicks Safety

Admin Click Safety Admin Click Safety is an option that will prevent you from accidentally clicking on your own ads (Adsense or Yahoo Publisher), replacing them by a placeholder when viewed by the blog admin.
Regular visitors, of course, will see actual ads if applicable. Days of "oops I clicked it!" are over.

Widget support

Who Sees Ads is now supporting widgetized themes for easier ad management.

Custom Preferences Hacking

Advanced users with some PHP editing knowledge can now define a custom set of preferences or behaviors that will override Who Sees Ads' defaults. The plugin comes with an example my_options_sample.php file. Rename it my_options.php, edit it, and never lose any change you'd make when you upgrade the plugin.

3rd party plugin compatibility: Adsense Deluxe and Adsense Manager

For those who are already using Adsense Deluxe or Adsense Manager to manage your Adsense ads, you can seamlessly make the transition to Who Sees Ads and give it a try without uninstalling them. Instead of pasting the actual Adsense code when you create a context, just enter something like the following examples, depending on what plugin you're using:

  1. <!--adsense#mybanner-->
  2. adsensem_ad('mybanner')
  3. adsense_deluxe_ads('mybanner')

Please note: compatibility with these 2 plugins has been implemented to allow easy testing before adopting. I personally find Who Sees Ads much more powerful and efficient, and don't see the point of using it side by side with another ad management plugin. I will not continue support of these plugins if their code evolves and changes so that it breaks with my plugin.

Rotating Ads

You can define only 1 context and assign it as much ad code as you want. You just need to specify your custom code separator in my_options.php and you're done. Example, defining the string *** CODE *** as a separator:

  1. <img src="banner1.jpg" alt="Banner 1" />
  2. *** CODE ***
  3. <img src="banner2.jpg" alt="Banner 2" />
  4. *** CODE ***
  5. <img src="banner3.jpg" alt="Banner 3" />

Completely dynamic

The content managed by Who Sees Ads and whether it should display or not is processed dynamically on every visit for every visitor, to ensure maximum efficiency and make sure each visitor receives the treatment it deserves. The drawback of this aspect is that the plugin is not compatible with cache plugins, which generate each page once and serve the same static file to each subsequent visitors.

Download

Download the plugin :
ozh-who-sees-ads.zip
Extract and upload to your blog, preserving directory structure if any.
Note: download counter here and stats on wordpress.org may differ and reflect the number of downloads before this plugin was hosted on the plugin directory

PHP Template usage

The regular PHP call you will insert in your PHP templates is the following:

  1. <?php wp_ozh_wsa('myad'); ?>

However, you can pass an additional parameter to turn off output and have the ad code returned instead:

  1. <?php $code = wp_ozh_wsa('myad', false); ?>

By default, the plugin returns an HTML comment when no ad has to be displayed, for instance:

  1. <!-- WSA: rules for context 'myad' did not apply -->

A complete example of how to use WSA with your own functions would be something like:

  1. <?php
  2. $code = wp_ozh_wsa('myad', false);
  3. if (strpos($code,'<!-- WSA') !== false) {
  4.     // plugin returned actual code, do something with it
  5.     ...
  6. } else {
  7.     // plugin returned no code to be displayed
  8. }
  9. ?>

Examples and advanced use

The obvious usage of this plugin is to display ads with rules as :

  • Display ad when user comes from a search engine
  • Don't display ads to my regular readers
  • Display ads on old stuff, don't display on fresh posts

But you can also :

Greet your returning visitors

You can display ads, or really anything. For instance, display something only to your regular readers: a "welcome back" message, or a special offer you don't want them to miss.

Geo target !

In conjunction with my own IP to Nation plugin, you can easily target visitor from a particular country. For instance, you've always wanted to display Yahoo Publisher ads to American visitors only, as Yahoo suggestscompells? Easy, your context simply has to use the following custom if rule:
if (wp_ozh_getCountryName(0) == 'United States'), display

Check the example display rules for more ideas of usage.

Older version

Who Sees Ads is still available (yet not maintained any more) for WordPress 2.3.3 and earlier. Note that I strongly recommend always running the latest version of WordPress.
Download: Who Sees Ads 1.3.3 for WordPress 2.3.3-

Question?

If you have a question, read all the comments: the answer *is* there.

Shorter URL

Want to share or tweet this page? Please use this short URL: http://ozh.in/kr

Metastuff

This page "Who Sees Ads ? Manage your Ads, Control Who Sees Them" was posted on 28/06/2007 at 10:04 pm
Watch this discussion : Comments RSS 2.0.

826 Blablas

  1. […] just released Who Sees Ads. I've already unveiled most of the features here, so I'll quickly […]

  2. ovidiu says:

    can you give me the "link" to your who sees adds options page?

    I wanna try somethign like: h**p://myblog/path-to-who-sees-adds to see if its just a display problem (aka I can access the options page) or a bigger problem.

    btw. from the live demo you linked above, I cannot determine if your plugin offers a feature I have seen incorporated in wp-ads plugin:

    specify a % to decide which add gets shown how often, aka I define 2 different adds for one content block (aka position) then give the first oen a 30% priority and the other one a 70% priority, and another nice feature would be to be able to set a max. numebr of views, useful if I do a banner trade or offer deals like: I will show your adds to 10000 visitors, and after that it will jsut get replaced by another add

    I hope you understand what I mean, as I am not a native english speaker. maybe eve n have a look at wp-ads: http://thesandbox.wordpress.com/wpads/

  3. Ozh says:

    ovidiu » I'll suggest deactivating plugins one by one till you see WSA in the Options menu. Start by deactivating plugins with menus.

  4. Ozh says:

    Ovidiu » the % trick you mention is easy to implement:

    if (mt_rand(1,100) < 30) { // 30% chances wp_ozh_wsa('banner-1'); } else { // 70% chances wp_ozh_wsa('banner-2'); } [/php] You can do the same kind of things to show XX times an ad, fetching a counter from a table, increment it, and display ad accordingly.

  5. ovidiu says:

    will these ruels have to be put into the: Possible Rules fields?

  6. […] Competition you already know about it, I've released yesterday my latest plugin, codename Who Sees Ads. As far as I know, and to date, this is truly the most advanced and powerful ad management plugin, […]

  7. Arpit Jacob says:

    wow dude this an awesome plugin I hope you win the Plugin comp wish me luck for the theme comp. I have barely started :(

  8. […] get the Plugin and to see a more detailed explanation get it from Ozh's Blog. PreviousTags: Adsense, Blogging, PluginCategory: WordPress, Blogging, Software Get RSS […]

  9. […] 来自法国的Ozh先生今天发布了他最新开发的终极广告管理插件:Who Sees Ads,先了解下这款插件是如何被称为“终极”的吧。 […]

  10. Nick WHite says:

    Simply the greatest ads plugin in the world, bar none!! Well done. I love that it's not locked into doing any one kind of ad… or ads at all, for that matter… one can easily use this plugin to personalize a site for frequent readers. Love it!

    Best of luck in the plugin contest. I hope the competition is anywhere near as good as you!

  11. Jean-Paul Horn says:

    Does this work seamlessly with wp-cache?

  12. Ozh says:

    Jean-Paul » by design, it can't. The principle of this plugin is to display something different depending on the context. Unless you use it to always display something, it can't be used with WP-Cache.
    This said, I'm not exactly aware of how WP-Cache works but I know you can specify that a part of a page stay dynamic and does not get cached.

  13. Jean-Paul Horn says:

    Thanks Ozh .. I'll play with it tonight and if necessary make it dynamic through the wp-cache function calls. It's quite easy to do so, so no problem. I really like this plugin and wish you all the best with the plugin comp. If needed, you'll certainly have my vote when time comes.

  14. Hassan says:

    Thanks for your Great really great work. Ozh,this is will be your most popular plugin!

  15. […] (de Planetozh) es el creador de esta nueva maravilla para WordPress, Who See ads, un nuevo plugin para insertar publicidad contextual en tu blog, permitiendote con mucha facilidad, […]

  16. […] Who Sees Ads ? Manage your Ads, Control Who Sees Them « planetOzh (tags: wordpress plugin ads) […]

  17. […] Who Sees Ads ?Lo acabo de encontrar y se volverá el sustito para mostrar la publicidad en el blog, te dá múltiples opciones como si deseas mostrar la publicidad a lectores regulares, si llegan de un buscador y lo mejor que no había encontrado antes más que en adsense deluxe es que te permite poner el código tanto en los post cómo en el theme […]

  18. […] teil eines versuchs den ich so halb schonmal angekündigt hatte. es geht darum mit hilfe eines plugins adsense-werbung besser an den jeweiligen besucher anzupassen, denn seit die sidebarwerbung weg ist […]

  19. […] regelmäßiger Besucher, von Suchmaschine kommend und/oder Posting älter als X Tage. Who see Ads. Bisserl doof, wenn man das AdSense Deluxe Plugin einsetzt, mit dessen Hilfe man steuern kann, wo […]

  20. ritchie says:

    WOWIE WOW! Thank you so much… this is *exactly* the plugin I've been looking for! I'll install it right away, just took a look at the demo and the backend looks perfectly usable. again: thank you!

  21. […] genau diese Eventualitäten lassen sich in Who Sees Ads, einem WordPress Plugin von Ozh. Neben den bereits vorhandenen Parametern regelmässiger Leser, […]

  22. MInTheGap says:

    This is a really great plugin. I've been meaning to create something like this, and you've already done the big work.

    If I were to make three suggestions:
    1. One of the filters be "registered users". I'd really like to say "I want to show this to non-registered users". When I tried to do this with using your conditionals to test $user_ID it didn't work.
    2. Be able to specify a time frame. Say I have a banner ad campaign that is effective for a given time frame. I'd like to say "If it's in this time frame, launch this ad".
    3. Two flows into three. I use ad rotator, and would really like to be able to say "Display one of the following in this space depending on the category and the time frame." I could do category with the current test interface, I believe, but it would be even better if I could use a pre-canned condition.

    Any thoughts?

  23. Ozh says:

    MInTheGap »
    Reg users: definitely something I should have thought of and included in version 1.0
    Time frame: time frame or ad impression count is a frequent feature request. I'm not a user of anything like this, but there seems to be a reasonable demand and need for it, so I'll give this some thinking.
    Display this or that: I'm not sure about this one since I don't see how I would add this feature without changing all the user interface.

    All in all, you've posted great suggestions, thanks for this!

  24. […] plugins competition is ending and my favorite plugin, listed on the plugins competition blog, is Who Sees Ads? by Ozh of […]

  25. Shahab says:

    Nice plugin .. I'd love to have ExecPhp abilities in this plugin so that I can put my Php function in WSA and then show them conditionaly. Right now if I put a Php call in WSA and put the context in Samsarin, it just returns the php call as text. I want to use WSA ads to conditionally show widgets on my pages until WordPress people make available this feature in WordPress Widgets..

  26. Ozh says:

    Shahab » the ability to write PHP code was initially planned, but then I removed it because of security implications. I'm still thinking about it for an update, maybe as a "enable if you dare" option that will be off by default.

  27. Gualha says:

    Hi Ozh,

    Can I configure this plugin without drag-n drop features?
    I have two websites WP 2.2.2 enabled and in the first one it works like a charm, in the second one I have problems in drag´n drop feature (maybe scriptaculous/prototype conflicts that I can´t figure out) and the plugin seems useless.

    Thanks in advance and congratulations for the nice work.

  28. […] Who Sees Ads ? Manage your Ads, Control Who Sees Them « planetOzh wordpress plugn to control what ads are displayed depending on many things (tags: wordpress plugin ads) […]

  29. KCA says:

    Georgious Plugin!!! Thanks a lot, and more thanks :)

    Just a question: Does this plugin will work properly when WP Cache is enable?

  30. Ozh says:

    KCA » it's been discussed in earlier comments (follow the "Show All" link. I'll add this to a FAQ some day :)

  31. Ozh says:

    Guahla » no, there's no way to do this.

  32. Brian says:

    Great work, indeed! :)

    Another small suggestion for the next version:

    I would find it useful, to have a option the "Admin Clicks Safety"-Area is just displayed under the given conditions of the Ad. Breaks my Layout quite bad at present.

  33. Control Who Sees Your Ads With 'Who Sees Ads?' WordPress Plugin…

    I've had a number of people point me to a WordPress plugin by the name of Who Sees Ads? in the last week so thought it might be time to check it out myself.

    This great plugin enables you to target certain readers to see your ads – while others…

  34. Nishanthe says:

    Hey,
    Thank you for this. I was thinking about tinkering the 'adsense manager' to get this features, but its already available!!!!
    Thanks buddy
    -Nish

  35. […] gelir elde edenler için doÄŸru kullanıldığında gelirinizi arttıracak bir WordPress plugini buldum. Who Sees Ads? adındaki bu plugin sayesinde reklamlarınızı üç farklı koÅŸula göre […]

  36. […] plugin is called "Who Sees Adds?" and it looks like it would not be too difficult to set up. Do you, my regulars (and there […]

  37. […] Who Sees Ads? is WordPress plugin that gives you the ability to decide who will see your ads. If you want to show ads to people who come from search engines only, this plugin will do it for you. If you want your regular readers not to see ads, you can do that too. […]

  38. Sergio says:

    that plugin are amazing, ill give atry!!! thanks for sharing!!

  39. Blog Opinion says:

    Nice plugine . I will going to use it and give my feedback. so keep blogging with :)

  40. […] suprir esta necessidade, foi criado um plugin chamado "Who See Ads?", destinado a gerenciar a forma como os anúncios serão mostrados em seu […]

  41. […] Puntogeek me entero acerca de un plugin llamado Who Sees Ads el cual nos permite gestionar la forma en que mostramos nuestros anuncions de adsense, pudiendo […]

  42. […] 今天博客联盟要介绍的wordpressçš„Who Sees Ads插件,就是为了让老读者和新读者看到不同的广告。 […]

  43. Peter says:

    Excellent plugin! I congratulate you.

    If you're going to call a php function, where should you put your function?

    Putting it in the usual theme php files results in nothing, so I assume you have to add it to the plugin file itself…?

  44. Ozh says:

    Peter » just add the function call as a condition of the rule, as in the example popping up when you hover the [?] icon.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Gravatars: Curious about the little images next to each commenter's name ? Go to Gravatar and sign for a free account
Spam: Various spam plugins may be activated. I'll put pins in a Voodoo doll if you spam me.