Quick Adsense - Version 1.8

Version Description

  • Text correction: Change the words "must be identical" to "must not be identical".
  • Add two more functionality for default Ads positioning after certain paragraphs, make it up to the total of three.
  • Also, option to display ads at End of Post if the above function is selected & fewer paragraphs are found.
  • Date: 20-Nov-2010
Download this release

Release Info

Developer philipze
Plugin Icon 128x128 Quick Adsense
Version 1.8
Comparing to
See all releases

Code changes from version 1.7 to 1.8

Files changed (4) hide show
  1. quick-adsense-admin.php +35 -20
  2. quick-adsense.php +26 -14
  3. readme.txt +8 -2
  4. screenshot-2.png +0 -0
quick-adsense-admin.php CHANGED
@@ -26,9 +26,13 @@
26
  $ra2 = get_option('BegnRnd');
27
  $rb1 = get_option('EndiAds');
28
  $rb2 = get_option('EndiRnd');
29
- $rc1 = get_option('Par1Ads');
30
- $rc2 = get_option('Par1Rnd');
31
- $rc3 = get_option('Par1Nup');
 
 
 
 
32
  $rd1 = get_option('Img1Ads');
33
  $rd2 = get_option('Img1Rnd');
34
  $rd3 = get_option('Img1Nup');
@@ -63,9 +67,12 @@
63
  document.getElementById("BegnRnd").selectedIndex = <?php echo($QData['Default']['BegnRnd']) ?>;
64
  document.getElementById("EndiAds").checked = <?php echo(truefalse($QData['Default']['EndiAds'])) ?>;
65
  document.getElementById("EndiRnd").selectedIndex = <?php echo($QData['Default']['EndiRnd']) ?>;
66
- document.getElementById("Par1Ads").checked = <?php echo(truefalse($QData['Default']['Par1Ads'])) ?>;
67
- document.getElementById("Par1Rnd").selectedIndex = <?php echo($QData['Default']['Par1Rnd']) ?>;
68
- document.getElementById("Par1Nup").selectedIndex = <?php echo($QData['Default']['Par1Nup']) ?>;
 
 
 
69
  document.getElementById("Img1Ads").checked = <?php echo(truefalse($QData['Default']['Img1Ads'])) ?>;
70
  document.getElementById("Img1Rnd").selectedIndex = <?php echo($QData['Default']['Img1Rnd']) ?>;
71
  document.getElementById("Img1Nup").selectedIndex = <?php echo($QData['Default']['Img1Nup']) ?>;
@@ -95,6 +102,8 @@
95
  document.getElementById('BegnRnd'),
96
  document.getElementById('EndiRnd'),
97
  document.getElementById('Par1Rnd'),
 
 
98
  document.getElementById('Img1Rnd') );
99
  for (i=0;i<cek.length;i++) {
100
  if (ts != cek[i] && ts.selectedIndex == cek[i].selectedIndex) {
@@ -105,15 +114,18 @@
105
  function checkinfo1(selnme,ts) {
106
  document.getElementById(selnme).disabled=!ts.checked;
107
  }
108
- function checkinfo2(selnm1,selnm2,ts) {
109
- document.getElementById(selnm1).disabled=!ts.checked;
110
- document.getElementById(selnm2).disabled=!ts.checked;
 
111
  }
112
  function deftcheckinfo() {
113
  checkinfo1('BegnRnd',document.getElementById('BegnAds'));
114
  checkinfo1('EndiRnd',document.getElementById('EndiAds'));
115
- checkinfo2('Par1Rnd','Par1Nup',document.getElementById('Par1Ads'));
116
- checkinfo2('Img1Rnd','Img1Nup',document.getElementById('Img1Ads'));
 
 
117
  }
118
  </script>
119
 
@@ -147,14 +159,17 @@
147
  <?php for ($i=0;$i<=$QData['Ads'];$i++) { ?>
148
  <option id="OptEndi<?php echo $i; ?>" value="<?php echo $i; ?>" <?php if($rb2==(string)$i){echo('selected');} ?>><?php _e(($i==0)?'Random Ads':'Ads'.$i) ; ?></option>
149
  <?php } ?></select> <?php _e('to <b>End of Post') ?></b><br/>
150
- <input type="checkbox" id="Par1Ads" name="Par1Ads" value="false" <?php if($rc1){echo('checked');} ?> onchange="checkinfo2('Par1Rnd','Par1Nup',this)" /> <?php _e('Assign') ; ?> <select id="Par1Rnd" name="Par1Rnd" onchange="selectinfo(this)">
151
- <?php for ($i=0;$i<=$QData['Ads'];$i++) { ?>
152
- <option id="OptPar1<?php echo $i; ?>" value="<?php echo $i; ?>" <?php if($rc2==(string)$i){echo('selected');} ?>><?php _e(($i==0)?'Random Ads':'Ads'.$i) ; ?></option>
153
- <?php } ?></select> <?php _e('<b>After Paragraph</b> ') ?> <select id="Par1Nup" name="Par1Nup">
154
- <?php for ($i=1;$i<=50;$i++) { ?>
155
- <option id="Opt1Nu<?php echo $i; ?>" value="<?php echo $i; ?>" <?php if($rc3==(string)$i){echo('selected');} ?>><?php echo $i; ?></option>
156
- <?php } ?></select><br/>
157
- <input type="checkbox" id="Img1Ads" name="Img1Ads" value="false" <?php if($rd1){echo('checked');} ?> onchange="checkinfo2('Img1Rnd','Img1Nup',this)" /> <?php _e('Assign') ; ?> <select id="Img1Rnd" name="Img1Rnd" onchange="selectinfo(this)">
 
 
 
158
  <?php for ($i=0;$i<=$QData['Ads'];$i++) { ?>
159
  <option id="OptImg1<?php echo $i; ?>" value="<?php echo $i; ?>" <?php if($rd2==(string)$i){echo('selected');} ?>><?php _e(($i==0)?'Random Ads':'Ads'.$i) ; ?></option>
160
  <?php } ?></select> <?php _e('<b>After Image</b> ') ?> <select id="Img1Nup" name="Img1Nup">
@@ -216,7 +231,7 @@
216
 
217
  <br/>
218
  <h3 style="font-size:120%;margin-bottom:5px"><?php _e('Adsense Codes'); ?></h3>
219
- <p style="margin-top:0px"><span class="description"><?php _e('Paste up to <b>'.$QData['Ads'].' Ads codes</b> on Post Body as assigned above, and up to <b>'.$QData['AdsWid'].' Ads codes</b> on Sidebar Widget. Ads codes provided must be identical, repeated codes may result the Ads not being display correctly. Ads will never displays more than once in a page.') ?></span></p>
220
 
221
  <h4><?php _e('Ads on Post Body :'); ?></h4>
222
  <table border="0" cellspacing="0" cellpadding="0">
26
  $ra2 = get_option('BegnRnd');
27
  $rb1 = get_option('EndiAds');
28
  $rb2 = get_option('EndiRnd');
29
+ $rc = 3;
30
+ for ($j=1;$j<=$rc;$j++) {
31
+ $rc1[$j] = get_option('Par'.$j.'Ads');
32
+ $rc2[$j] = get_option('Par'.$j.'Rnd');
33
+ $rc3[$j] = get_option('Par'.$j.'Nup');
34
+ $rc4[$j] = get_option('Par'.$j.'Con');
35
+ }
36
  $rd1 = get_option('Img1Ads');
37
  $rd2 = get_option('Img1Rnd');
38
  $rd3 = get_option('Img1Nup');
67
  document.getElementById("BegnRnd").selectedIndex = <?php echo($QData['Default']['BegnRnd']) ?>;
68
  document.getElementById("EndiAds").checked = <?php echo(truefalse($QData['Default']['EndiAds'])) ?>;
69
  document.getElementById("EndiRnd").selectedIndex = <?php echo($QData['Default']['EndiRnd']) ?>;
70
+ <?php for ($j=1;$j<=$rc;$j++) { ?>
71
+ document.getElementById("Par<?php echo $j; ?>Ads").checked = <?php echo(truefalse($QData['Default']['Par'.$j.'Ads'])) ?>;
72
+ document.getElementById("Par<?php echo $j; ?>Rnd").selectedIndex = <?php echo($QData['Default']['Par'.$j.'Rnd']) ?>;
73
+ document.getElementById("Par<?php echo $j; ?>Nup").selectedIndex = <?php echo($QData['Default']['Par'.$j.'Nup']) ?>;
74
+ document.getElementById("Par<?php echo $j; ?>Con").checked = <?php echo(truefalse($QData['Default']['Par'.$j.'Con'])) ?>;
75
+ <?php } ?>
76
  document.getElementById("Img1Ads").checked = <?php echo(truefalse($QData['Default']['Img1Ads'])) ?>;
77
  document.getElementById("Img1Rnd").selectedIndex = <?php echo($QData['Default']['Img1Rnd']) ?>;
78
  document.getElementById("Img1Nup").selectedIndex = <?php echo($QData['Default']['Img1Nup']) ?>;
102
  document.getElementById('BegnRnd'),
103
  document.getElementById('EndiRnd'),
104
  document.getElementById('Par1Rnd'),
105
+ document.getElementById('Par2Rnd'),
106
+ document.getElementById('Par3Rnd'),
107
  document.getElementById('Img1Rnd') );
108
  for (i=0;i<cek.length;i++) {
109
  if (ts != cek[i] && ts.selectedIndex == cek[i].selectedIndex) {
114
  function checkinfo1(selnme,ts) {
115
  document.getElementById(selnme).disabled=!ts.checked;
116
  }
117
+ function checkinfo2(ts,selnm1,selnm2,selnm3) {
118
+ if(selnm1){document.getElementById(selnm1).disabled=!ts.checked};
119
+ if(selnm2){document.getElementById(selnm2).disabled=!ts.checked};
120
+ if(selnm3){document.getElementById(selnm3).disabled=!ts.checked};
121
  }
122
  function deftcheckinfo() {
123
  checkinfo1('BegnRnd',document.getElementById('BegnAds'));
124
  checkinfo1('EndiRnd',document.getElementById('EndiAds'));
125
+ for (i=1;i<=3;i++) {
126
+ checkinfo2(document.getElementById('Par'+i+'Ads'),'Par'+i+'Rnd','Par'+i+'Nup','Par'+i+'Con');
127
+ }
128
+ checkinfo2(document.getElementById('Img1Ads'),'Img1Rnd','Img1Nup');
129
  }
130
  </script>
131
 
159
  <?php for ($i=0;$i<=$QData['Ads'];$i++) { ?>
160
  <option id="OptEndi<?php echo $i; ?>" value="<?php echo $i; ?>" <?php if($rb2==(string)$i){echo('selected');} ?>><?php _e(($i==0)?'Random Ads':'Ads'.$i) ; ?></option>
161
  <?php } ?></select> <?php _e('to <b>End of Post') ?></b><br/>
162
+ <?php for ($j=1;$j<=$rc;$j++) { ?>
163
+ <input type="checkbox" id="Par<?php echo $j; ?>Ads" name="Par<?php echo $j; ?>Ads" value="false" <?php if($rc1[$j]){echo('checked');} ?> onchange="checkinfo2(this,'Par<?php echo $j; ?>Rnd','Par<?php echo $j; ?>Nup','Par<?php echo $j; ?>Con')" /> <?php _e('Assign') ; ?> <select id="Par<?php echo $j; ?>Rnd" name="Par<?php echo $j; ?>Rnd" onchange="selectinfo(this)">
164
+ <?php for ($i=0;$i<=$QData['Ads'];$i++) { ?>
165
+ <option id="OptPar<?php echo $j; ?><?php echo $i; ?>" value="<?php echo $i; ?>" <?php if($rc2[$j]==(string)$i){echo('selected');} ?>><?php _e(($i==0)?'Random Ads':'Ads'.$i) ; ?></option>
166
+ <?php } ?></select> <?php _e('<b>After Paragraph</b> ') ?> <select id="Par<?php echo $j; ?>Nup" name="Par<?php echo $j; ?>Nup">
167
+ <?php for ($i=1;$i<=50;$i++) { ?>
168
+ <option id="Opt<?php echo $j; ?>Nu<?php echo $i; ?>" value="<?php echo $i; ?>" <?php if($rc3[$j]==(string)$i){echo('selected');} ?>><?php echo $i; ?></option>
169
+ <?php } ?></select> &rarr;
170
+ <input type="checkbox" id="Par<?php echo $j; ?>Con" name="Par<?php echo $j; ?>Con" value="false" <?php if($rc4[$j]){echo('checked');} ?> /> <?php _e('to <b>End of Post</b> if fewer paragraphs are found.') ; ?><span style="color:#a00;font-size:75%"> <b>(New!)</b></span><br/>
171
+ <?php } ?>
172
+ <input type="checkbox" id="Img1Ads" name="Img1Ads" value="false" <?php if($rd1){echo('checked');} ?> onchange="checkinfo2(this,'Img1Rnd','Img1Nup')" /> <?php _e('Assign') ; ?> <select id="Img1Rnd" name="Img1Rnd" onchange="selectinfo(this)">
173
  <?php for ($i=0;$i<=$QData['Ads'];$i++) { ?>
174
  <option id="OptImg1<?php echo $i; ?>" value="<?php echo $i; ?>" <?php if($rd2==(string)$i){echo('selected');} ?>><?php _e(($i==0)?'Random Ads':'Ads'.$i) ; ?></option>
175
  <?php } ?></select> <?php _e('<b>After Image</b> ') ?> <select id="Img1Nup" name="Img1Nup">
231
 
232
  <br/>
233
  <h3 style="font-size:120%;margin-bottom:5px"><?php _e('Adsense Codes'); ?></h3>
234
+ <p style="margin-top:0px"><span class="description"><?php _e('Paste up to <b>'.$QData['Ads'].' Ads codes</b> on Post Body as assigned above, and up to <b>'.$QData['AdsWid'].' Ads codes</b> on Sidebar Widget. Ads codes provided must <b>not</b> be identical, repeated codes may result the Ads not being display correctly. Ads will never displays more than once in a page.') ?></span></p>
235
 
236
  <h4><?php _e('Ads on Post Body :'); ?></h4>
237
  <table border="0" cellspacing="0" cellpadding="0">
quick-adsense.php CHANGED
@@ -5,7 +5,7 @@
5
  Plugin URI: http://techmilieu.com/quick-adsense
6
  Description: Quick Adsense offers a quicker & flexible way to insert Google Adsense or any Ads code into a blog post.
7
  Author: Philip Ze
8
- Version: 1.7
9
  Author URI: http://techmilieu.com/
10
  */
11
 
@@ -34,13 +34,16 @@ global $QData;
34
  $QData['AdsWid'] = 10; /* Ads on Widget */
35
  $QData['Ads'] = 10; /* Ads on Post body */
36
  $QData['Name'] = 'Quick Adsense';
37
- $QData['Version'] = '1.7';
38
  $QData['URI'] = 'http://techmilieu.com/quick-adsense';
39
  $QData['AdsWidName'] = 'AdsWidget%d (Quick Adsense)';
40
  $QData['Default'] = array(
41
  'AdsDisp'=>'3',
42
  'BegnAds'=>true,'BegnRnd'=>'1','EndiAds'=>true,'EndiRnd'=>'0',
43
- 'Par1Ads'=>false,'Par1Rnd'=>'0','Par1Nup'=>'0','Img1Ads'=>false,'Img1Rnd'=>'0','Img1Nup'=>'0',
 
 
 
44
  'AppPost'=>true,'AppPage'=>true,'AppHome'=>false,'AppCate'=>false,'AppArch'=>false,'AppTags'=>false,'AppMaxA'=>false,'AppSide'=>false,
45
  'QckTags'=>true,'QckRnds'=>false,'QckOffs'=>false
46
  );
@@ -177,11 +180,16 @@ function process_content($content)
177
  $cusads = 'CusAds'; $cusrnd = 'CusRnd';
178
  $begn1 = get_option('BegnAds'); $begn2 = get_option('BegnRnd');
179
  $endi1 = get_option('EndiAds'); $endi2 = get_option('EndiRnd');
180
- $para1 = get_option('Par1Ads'); $para2 = get_option('Par1Rnd'); $para3 = get_option('Par1Nup');
 
 
 
181
  $imge1 = get_option('Img1Ads'); $imge2 = get_option('Img1Rnd'); $imge3 = get_option('Img1Nup');
182
  if ( $begn2 == 0 ) { $b1 = $cusrnd; } else { $b1 = $cusads.$begn2; array_push($AdsIdCus, $begn2); };
183
  if ( $endi2 == 0 ) { $b2 = $cusrnd; } else { $b2 = $cusads.$endi2; array_push($AdsIdCus, $endi2); };
184
- if ( $para2 == 0 ) { $b3 = $cusrnd; } else { $b3 = $cusads.$para2; array_push($AdsIdCus, $para2); };
 
 
185
  if ( $imge2 == 0 ) { $b4 = $cusrnd; } else { $b4 = $cusads.$imge2; array_push($AdsIdCus, $imge2); };
186
  if( $begn1 ) {
187
  $content = '<!--'.$b1.'-->'.$content;
@@ -189,14 +197,18 @@ function process_content($content)
189
  if( $endi1 ) {
190
  $content = $content.'<!--'.$b2.'-->';
191
  }
192
- if ( $para1 ){
193
- $sch = "</p>";
194
- $content = str_replace("</P>", $sch, $content);
195
- $arr = explode($sch, $content);
196
- if ( (int)$para3 < count($arr) ) {
197
- $content = implode($sch, array_slice($arr, 0, $para3)).$sch .'<!--'.$b3.'-->'. implode($sch, array_slice($arr, $para3));
198
- }
199
- }
 
 
 
 
200
  if ( $imge1 ){
201
  $sch = "<img";
202
  $bch = ">";
@@ -210,7 +222,7 @@ function process_content($content)
210
  $content = implode($sch, $arr);
211
  }
212
  }
213
- }
214
 
215
  /* ... Tidy up content ... */
216
  $content = '<!--EmptyClear-->'.$content."\n".'<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>';
5
  Plugin URI: http://techmilieu.com/quick-adsense
6
  Description: Quick Adsense offers a quicker & flexible way to insert Google Adsense or any Ads code into a blog post.
7
  Author: Philip Ze
8
+ Version: 1.8
9
  Author URI: http://techmilieu.com/
10
  */
11
 
34
  $QData['AdsWid'] = 10; /* Ads on Widget */
35
  $QData['Ads'] = 10; /* Ads on Post body */
36
  $QData['Name'] = 'Quick Adsense';
37
+ $QData['Version'] = '1.8';
38
  $QData['URI'] = 'http://techmilieu.com/quick-adsense';
39
  $QData['AdsWidName'] = 'AdsWidget%d (Quick Adsense)';
40
  $QData['Default'] = array(
41
  'AdsDisp'=>'3',
42
  'BegnAds'=>true,'BegnRnd'=>'1','EndiAds'=>true,'EndiRnd'=>'0',
43
+ 'Par1Ads'=>false,'Par1Rnd'=>'0','Par1Nup'=>'0','Par1Con'=>false,
44
+ 'Par2Ads'=>false,'Par2Rnd'=>'0','Par2Nup'=>'0','Par2Con'=>false,
45
+ 'Par3Ads'=>false,'Par3Rnd'=>'0','Par3Nup'=>'0','Par3Con'=>false,
46
+ 'Img1Ads'=>false,'Img1Rnd'=>'0','Img1Nup'=>'0',
47
  'AppPost'=>true,'AppPage'=>true,'AppHome'=>false,'AppCate'=>false,'AppArch'=>false,'AppTags'=>false,'AppMaxA'=>false,'AppSide'=>false,
48
  'QckTags'=>true,'QckRnds'=>false,'QckOffs'=>false
49
  );
180
  $cusads = 'CusAds'; $cusrnd = 'CusRnd';
181
  $begn1 = get_option('BegnAds'); $begn2 = get_option('BegnRnd');
182
  $endi1 = get_option('EndiAds'); $endi2 = get_option('EndiRnd');
183
+ $rc=3;
184
+ for($i=1;$i<=$rc;$i++) {
185
+ $para1[$i] = get_option('Par'.$i.'Ads'); $para2[$i] = get_option('Par'.$i.'Rnd'); $para3[$i] = get_option('Par'.$i.'Nup'); $para4[$i] = get_option('Par'.$i.'Con');
186
+ }
187
  $imge1 = get_option('Img1Ads'); $imge2 = get_option('Img1Rnd'); $imge3 = get_option('Img1Nup');
188
  if ( $begn2 == 0 ) { $b1 = $cusrnd; } else { $b1 = $cusads.$begn2; array_push($AdsIdCus, $begn2); };
189
  if ( $endi2 == 0 ) { $b2 = $cusrnd; } else { $b2 = $cusads.$endi2; array_push($AdsIdCus, $endi2); };
190
+ for($i=1;$i<=$rc;$i++) {
191
+ if ( $para2[$i] == 0 ) { $b3[$i] = $cusrnd; } else { $b3[$i] = $cusads.$para2[$i]; array_push($AdsIdCus, $para2[$i]); };
192
+ }
193
  if ( $imge2 == 0 ) { $b4 = $cusrnd; } else { $b4 = $cusads.$imge2; array_push($AdsIdCus, $imge2); };
194
  if( $begn1 ) {
195
  $content = '<!--'.$b1.'-->'.$content;
197
  if( $endi1 ) {
198
  $content = $content.'<!--'.$b2.'-->';
199
  }
200
+ for($i=$rc;$i>=1;$i--) {
201
+ if ( $para1[$i] ){
202
+ $sch = "</p>";
203
+ $content = str_replace("</P>", $sch, $content);
204
+ $arr = explode($sch, $content);
205
+ if ( (int)$para3[$i] < count($arr) ) {
206
+ $content = implode($sch, array_slice($arr, 0, $para3[$i])).$sch .'<!--'.$b3[$i].'-->'. implode($sch, array_slice($arr, $para3[$i]));
207
+ } elseif ($para4[$i]) {
208
+ $content = implode($sch, $arr).'<!--'.$b3[$i].'-->';
209
+ }
210
+ }
211
+ }
212
  if ( $imge1 ){
213
  $sch = "<img";
214
  $bch = ">";
222
  $content = implode($sch, $arr);
223
  }
224
  }
225
+ }
226
 
227
  /* ... Tidy up content ... */
228
  $content = '<!--EmptyClear-->'.$content."\n".'<div style="font-size:0px;height:0px;line-height:0px;margin:0;padding:0;clear:both"></div>';
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
4
  Tags: WordPress Plugin, adsense, google adsense, random adsense, random ads, advertising, adsense insertion, ad manager, ad, yahoo, google, ads, text insertion, widget, sidebar, admin, posts, plugin
5
  Requires at least: 2.5
6
  Tested up to: 3.0.1
7
- Stable tag: 1.7
8
 
9
  Quick Adsense offers a quicker & flexible way to insert Google Adsense or any Ads code into a blog post.
10
 
@@ -17,7 +17,7 @@ In general, placing Adsense randomly within a post is a good way to experiment a
17
  Here are some **features** that come with this plugin:
18
 
19
  1. Absolutely NO author revenue reward or revenue sharing from your Adsense or that kind of features.
20
- 1. Default Ads positioning: Assign Ads at the beginning of post, assign Ads at the end of post, assign Ads after certain paragraphs & assign Ads after certain images.
21
  1. Flexible Ads placement, insert Ads specifically or randomly anywhere within a post.
22
  1. Simple configuration interface, requires no coding knowledge: Just copy and paste AdSense code, tick & select options, the plugin will then do the rest for you.
23
  1. Support any Ads code, not limited to Adsense code only.
@@ -49,6 +49,12 @@ Please feedback to [http://techmilieu.com/quick-adsense](http://techmilieu.com/q
49
 
50
  == Change Log ==
51
 
 
 
 
 
 
 
52
  = 1.7 =
53
  * Fix the error message problem when the plugin is first activated. Error message: "The plugin generated 'n' characters of unexpected output during activation ..."
54
  * Date: 13-Aug-2010
4
  Tags: WordPress Plugin, adsense, google adsense, random adsense, random ads, advertising, adsense insertion, ad manager, ad, yahoo, google, ads, text insertion, widget, sidebar, admin, posts, plugin
5
  Requires at least: 2.5
6
  Tested up to: 3.0.1
7
+ Stable tag: 1.8
8
 
9
  Quick Adsense offers a quicker & flexible way to insert Google Adsense or any Ads code into a blog post.
10
 
17
  Here are some **features** that come with this plugin:
18
 
19
  1. Absolutely NO author revenue reward or revenue sharing from your Adsense or that kind of features.
20
+ 1. Default Ads positioning: Assign Ads at the beginning of post, assign Ads at the end of post, assign Ads after certain paragraphs (3 options available) & assign Ads after certain images.
21
  1. Flexible Ads placement, insert Ads specifically or randomly anywhere within a post.
22
  1. Simple configuration interface, requires no coding knowledge: Just copy and paste AdSense code, tick & select options, the plugin will then do the rest for you.
23
  1. Support any Ads code, not limited to Adsense code only.
49
 
50
  == Change Log ==
51
 
52
+ = 1.8 =
53
+ * Text correction: Change the words "must be identical" to "must not be identical".
54
+ * Add two more functionality for default Ads positioning after certain paragraphs, make it up to the total of three.
55
+ * Also, option to display ads at End of Post if the above function is selected & fewer paragraphs are found.
56
+ * Date: 20-Nov-2010
57
+
58
  = 1.7 =
59
  * Fix the error message problem when the plugin is first activated. Error message: "The plugin generated 'n' characters of unexpected output during activation ..."
60
  * Date: 13-Aug-2010
screenshot-2.png CHANGED
Binary file