Plugin / Ad Injection




Ad Injection from reviewmylife injects any kind of advert or other content (e.g. Google AdSense, Amazon Associates, ClickBank, TradeDoubler, etc) into the existing content of your WordPress posts and pages. You can control the number of adverts based on the post length, and it can restrict who sees adverts by post age, visitor referrer and IP address. Adverts can be configured in the post (random, top, and bottom positions) or in any widget/sidebar area. There’s support for A:B split testing / ad rotation. And support for dynamic restrictions (by IP address and referrer). Note that this is an advanced plugin with loads of options. If you want a really simple plugin this might not be the one for you!

New Features 1.2.x.x

  • Set the position of the top and bottom advert by paragraph or character.
  • Position the random ads to start or stop in the middle of the post.
  • Stop the random ads 2/3 of the way down a post, or at a paragraph/character position from the beginning/end of the post.
  • New options to exlude ads from blockquote and pre sections. And custom ad exlude tags.
  • Fade unused Home/Archive options instead of making them dissapear.
  • Add page age settings to status.
  • Improve debug messages.

New Features 1.1.x.x

  • Template ads – you can now include ads anywhere in your theme template with some simple tags. You can load the top/random/bottom/footer ads, or you can load an ad from a text file on disk. Template ads inherit the same dynamic and global restrictions as for ads configured via the UI.
  • First ad can now be started at or after a paragraph or character position.
  • Override ad positions on individual posts using <!–topad–> <!–randomad–> <!–bottomad–>
  • Separate old post restriction for widget ads in case you want a different rule for the widget ads.

New Features 0.9.7.x

  • Archive and home page ads now fully supported with the same controls as ads for single posts/pages.
  • Category, tag and author restrictions for top, random and bottom ads.
  • Footer ads.
  • Restrict ads by page/post id

New Features 0.9.6.x

  • Ad rotation / A:B split testing support for random, top, bottom and widget/sidebar adverts.
  • Alternate content which can be defined for users who are dynamically blocked (by IP or referrer) from seeing adverts.
  • Choose which paragraph to start the random ads via the UI.
  • Dynamic features will work with W3 Total Cache and WP Cache as well as the previously suppoted WP Super Cache.
  • Widgets can be conditionally included on pages by category, tag, and author.

Automatic advert injection

The ads can be injected into existing posts without requiring any modification of the post. The injection can be done randomly between paragraphs, and there is an option to always inject the first advert at a specified paragraph (e.g. the first or second). Randomly positioning the adverts helps to reduce ‘ad blindness’. Additional adverts can be defined for the top and bottom of the content, or the footer of the page. Widget adverts can be defined as well.

Widget support

Widgets can be added to your sidebars, or other widget areas on any pages. The same ad display restrictions that you setup for your other ads will also apply to the widgets.

Ad rotation / split testing

You can define multiple adverts for the same ad space which are rotated according to the ratios you define. Works with random, top, bottom and sidget/sidebar ads.

Ad quantity by post length

The number of adverts can be set based on the length of the post. It is a good idea for longer posts to have more adverts than shorter posts for example. Adverts can also be turned off for very short posts.

Search engines only mode (restrict by referrer)

You can specify that ads should only be shown to search engine visitors, or to visitors from defined referring websites – e.g. Facebook, Wikipedia, Twitter, etc. This will give your regular visitors (who are unlikely to click your ads) a better experience of your site. You can define which search engines or referring sites see your adverts. A visitor who enters the site by one of these referrers will see ads for the next hour.

Block by referrer

Block ads to people coming from certain referring URLs. e.g. you may wish to treat people who arrive at your site after searching for your name as direct visitors and disable the ads for them.

Ads on old posts only

Adverts can be restricted to posts that are more than a defined numbers of days old. This prevents your regular visitors from having to see your ads.

Category, tag, author, post ID, and post type filters

You can configure the adverts to only appear on specific categories, tags, authors, post IDs, or post types (or exclude them using these conditions).

Template ads

Ads can be included anywhere in your theme template with some simple tags. You can load the top/random/bottom/footer ads, or you can load an ad from a text file on disk. Template ads inherit the same dynamic and global restrictions as for ads configured via the UI.

Block ads from IP addresses

IP addresses of people who shouldn’t see your ads can be defined. These could be the IP addresses of your friends, family, or even yourself.

Override ad positioning on individual posts

If you need to override the top, random, or bottom ad positions on a specific post you can use these in-content tags to manually set the ad positions: <!–topad–> <!–randomad–> <!–bottomad–> <!–adstart–> <!–adend–> <!–noads–>

You can manually exclude ads from specific sections of the post using the <!–adinj_exclude_start–><!–adinj_exclude_end–> tags.

Exclude ads from block tags

Ads can be excluded from <blockquote></blockquote> and <pre></pre> tags.

Alternate content

This is content that is displayed when ads are blocked for the user. You could use this alternate content to show other content, some kind of layout filler, or even a different type of ad. I’ve added support for rotation of alternate content as well.

Not tied to any ad provider

The advert code can be copied and pasted directly from your ad provider (Google AdSense, adBrite, ClickBank, etc) which will help you to comply with any terms of service (TOS) that state their ad code may not be modified.

Inject anything!

Although this plugin is usually used for injecting adverts it can in fact be used to inject anything. Here are some alternative uses for Ad Injection:

  • Inject an email opt-in form at the bottom of each post.
  • Insert a common header or footer block (e.g. copyright, disclaimers, website information).
  • Add tracking scripts (e.g. Google Analytics) into your site.
  • Use it to rotate random images or photos in your pages.
  • Put some time limited temporary content at the top or bottom of each post (e.g. sales offer, or web site announcement).
  • Inserting social networking buttons (e.g. Facebook, Twitter, Google +1) at the top or bottom of your posts.

Flexible ad alignment

Easy positioning options are provided for left, right, center, float left, and float right (or a random variant of these). Extra spacing can be set above and below the ad using the CSS margin and padding boxes. Or if that isn’t flexible enough, you can write your own positioning code using HTML and CSS. And you can select which paragraph random ads should start from.

Inject PHP and JavaScript

As the plugin will inject whatever content you like into the page you can write your own ad rotation or a/b split testing code for the ads you inject. PHP code can be automatically executed, even when using WP Super Cache.

Hide UI panels that you don’t need

If there are any panels on the admin screen that you don’t need, you can click on the show/hide button to hide them until you need them.

For more information visit reviewmylife.


Here are some things to check if the ads are not appearing, or are appearing when you think they shouldn’t.

  1. Have you clicked the box to enable your ads?
  2. Would the options you have selected allow the ads to appear on that page?
  3. Have you cleared your cache (if you are using a caching plugin) to make sure that the page has the ads injected into it?
  4. If you still aren’t sure why the ads aren’t there (or why they are), click ‘Enable debug mode’. Make sure the page gets regenerated (either by reloading, or by clearing the cache and reloading). The search the source code of the page (the HTML) for ‘ADINJ DEBUG’ tags. This will give you information about the decisions that the plugin made.
  5. Have you selected the correct insertion mode in the ‘Ad insertion mode’ section?
  6. The plugin inserts adverts after the closing HTML paragraph tag . If the ads aren’t appearing where you expect, check where your tags are.

If ads aren’t appearing on your archive (category, tag, author) pages

Ad Injection can only (with most themes) insert ads into archive pages if you are showing the full post. The ads will almost certainly get truncated or stripped out if you are showing excerpts.

I hope to add proper support for excerpt ads in a later release.

My adverts are overlapping with other page elements (e.g. images)

You can try defining the ‘clear’ display setting so that multiple floated parts of your page do not overlap.

If you always have a floated image at the top of the page you can set which paragraph the first random advert will start from. If you needed finer control over where the random adverts appear you can use the and tags in the page.

I have set the ads to float but the text/headings aren’t flowing around them

Check your style sheet to see if either the text or headings have the ‘clear’ attribute set. This may be preventing your text / headings from flowing around the advert.

I have configured four Google AdSense ad units but only three are showing. Why?

Google’s AdSense TOS only allow allow three ad units, and three link units per page. If you have for example tried to insert four ad units on your page then Google will (probably) disable the forth one automatically. Read Google’s AdSense program policies for more info.

Parts of the adverts are appearing in the snippets on the archive and home pages

Ad Injection does not currently have support for inserting adverts into snippets, however ads in snippets may or may not work depending on how your theme processes the pages’s content. If you end up with unwanted parts of the ad code in your snippets you may need to disable the top/random/bottom ads from your archive, home or front pages using the tick boxes near the top of the UI.

If you are using a caching plugin

Note that mfunc mode is now deprecated and so you use it at your own risk. I recommend using direct insertion mode. This does mean that if you use a caching plugin the dynamic features won’t work.

  1. Have you enabled Ad Injection’s ‘mfunc’ mode? (in the Ad insertion mode and dynamic ad display restrictions pane)
  2. If you use a version of WP Super Cache prior to it must be configured in ‘Legacy’ mode for the dynamic features to work. If you use WP Super Cache or above you can use any of the caching modes (mod_rewrite and PHP are faster than legacy).
  3. If you are using WP Minify as well then turn off the HTML minification as this strips out the mfunc tags that Ad Injection uses to check if the adverts should be inserted.

If you are using WP Minify

  1. Turn off the HTML minification mode if you are also using a caching plugin. HTML minification strips out the mfunc tags that Ad Injection needs to inject its ads.
  2. If you use the ‘Place Minified JavaScript in footer’ then try turning it off.

Only part of the setting screen is appearing

You are probably running out of memory. View the HTML source of the settings page (usually right click and View Source) and see if there is an out of memory message. You might have to delete/deactivate some other plugins, or search Google for advise specific to your web host.

If you are getting errors when using mfunc mode check the following

Note: mfunc mode is now deprecated – only use if you really understand what it does!

  1. Are there ad data directories in the plugin directory? The path will be:


If not create this directory and make sure it is writeable by the plugin (chmod 0755 will do, chmod 0750 is better).

  1. Are there text files in the ads directories? The ad code that you enter into the ad boxes should get saved in text files in the ads directory.

  2. Has the config file been created? It should be at ‘/wp-content/ad-injection-config.php’. If not make sure the ‘/wp-content/’ directory is writeable (chmod 0750 is best, chmod 0755 will do).

Errors after uninstalling the plugin

If you get an error like:

‘Warning: include_once(/homepages/xx/dxxxx/htdocs/blog/wp-content/plugins/ad-injection/adshow.php) [function.include-once]: failed to open stream: No such file or directory in /homepages/xx/dxxxx/htdocs/blog/ on line xx’

Then you need to delete your cache. The references to the Ad Injection includes are still in your cached files, deleting the cache will get rid of them.

Reporting bugs

If you do get any errors please use the ‘Report a bug or give feedback’ link on the plugin to send me the error details. If things go so badly wrong that you can’t even get to the settings page please send me an email via this contact form.


43 reviews

Rating breakdown

Details Information


First Released

31 Jul, 2011

Total Downloads


Wordpress Version

2.8.6 or higher

Tested up to:


Require PHP Version:





The plugin hasn't been transalated in any language other than English.


The information provided in this THEME/PLUGIN DIRECTORY is made available for information purposes only, and intended to serve as a resource to enable visitors to select a relevant theme or plugin. wpSocket gives no warranty of any kind, express or implied with regard to the information, including without limitation any warranty that the particular theme or plugin that you select is qualified on your situation.

The information in the individual theme or plugin displayed in the Directory is provided by the owners and contributors themselves. wpSocket gives no warranty as to the accuracy of the information and will not be liable to you for any loss or damage suffered by you as a consequence of your reliance on the information.

Links to respective sites are offered to assist in accessing additional information. The links may be outdated or broken. Connect to outside sites at your own risk. The Theme/Plugin Directory does not endorse the content or accuracy of any listing or external website.

While information is made available, no guarantee is given that the details provided are correct, complete or up-to-date.

wpSocket is not related to the theme or plugin, and also not responsible and expressly disclaims all liability for, damages of any kind, arising out of the use, reference to, or reliance on, any information or business listed throughout our site.

Keep Leading Your Followers!
Share it for them.