Insert advertisements(or any text/HTML/JavaScript content) into nodes without editing individual nodes or tweaking theme templates. Insert ads or other content in node body or teasers automatically.
*Content Injector was formerly known as AdSense Injector.
Major new features
Reliable in-content insertion using HTML DOM and XPath manipulation
Want to insert ads or other content inside node bodies?
The 6.x-3.x and 7.x-3.x versions for Drupal 6 and 7 now provide reliable in-line insertion into a node's body.
This version provides three body insertion points: top, in-line, and bottom.
The in-line insertion template uses the PHP DomDocument's XPath query feature to select an insertion point. This is powerful, allowing for any valid XPath expression to select the insertion point -- but this also requires that you know what you're doing with XPath if you want to override the default insertion point.
Per-node insertion blocking
There are undocumented features in the 6.x-3.x and 7.x-3.x branches. You can prevent insertion on a per-node basis by adding ai:noinject to the start of a node's body text. See issue #1333800: Document ai:noinject feature: prevent automatic injection in node body of selected nodes. for more info.
In addition, if the node contains any AdSense module [adsense:xxx] manual insertion tags, this module will not inject any ad templates -- so in effect, if you place any AdSense ads using the AdSense module's [adsense] tags, this module's features are disabled for the node in question.
Upgrading from a previous release
The 6.x-3.x and 7.x-3.x branches are fully functional but lack ability to migrate settings from previous versions, so you'll have to reset all your current settings (save copies of your ad templates first!) and re-configure the module.
Call for testers
I need help testing the 6.x-3.x and 7.x-3.x branches new features. Please test and create bug reports if you find any problems.
Module Overview
You can control the node types and word count that will trigger insertion. For example, you can insert content only on "Story" or "Book" (or both) node types, and only if they have more than 300 words. You can use CSS styles to control placement on the page to some extent.
This module allows you to inject content at the top, bottom, or inline in a node's body field when a node is rendered on a full-page view. You can inject content before or after the node's teaser in teaser views. You can inject any arbitrary content you like: text, HTML, JavaScript, whatever.
The AdSense module is required only for [adsense] tag support; if you aren't using [adsense] tags, there is no dependency on the AdSense module as of the 6.x-3.x and 7.x-3.x branches.