Merge pull request #37 from nlalonde/master

Ad every nth post, better descriptions, dfp refactor
This commit is contained in:
Neil Lalonde 2016-04-21 18:58:10 -04:00
commit a84ec3dd1e
7 changed files with 234 additions and 227 deletions

View File

@ -1,12 +1,7 @@
import loadScript from 'discourse/lib/load-script';
var const_width = '';
var const_height = '';
var const_mobile_width = 320;
var const_mobile_height = 50;
var currentUser = Discourse.User.current();
var _loaded = false,
var currentUser = Discourse.User.current(),
_loaded = false,
_promise = null,
ads = {};
@ -60,77 +55,64 @@ function custom_targeting(key_array, value_array, location) {
}
}
function defineSlot(placement, settings) {
function defineSlot(divId, placement, settings, isMobile) {
var ad, width, height;
if (ads[placement]) {
return ads[placement];
if (ads[divId]) {
return ads[divId];
}
if (isMobile) {
// There are no settings for customizing the mobile ad sizes.
width = 320;
height = 50;
}
if (placement === "topic-list-top" && settings.dfp_topic_list_top_code && settings.dfp_topic_list_top_ad_sizes) {
const_width = parseInt(splitWidthInt(settings.dfp_topic_list_top_ad_sizes));
const_height = parseInt(splitHeightInt(settings.dfp_topic_list_top_ad_sizes));
if (Discourse.Mobile.mobileView) {
var topic_list_top_mobile = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_mobile_topic_list_top_code, [320,50], 'div-gpt-ad-topic-list-top').addService(window.googletag.pubads());
ads['topic-list-top'] = topic_list_top_mobile;
custom_targeting((keyParse(Discourse.SiteSettings.dfp_target_topic_list_top_key_code)), (keyParse(settings.dfp_target_topic_list_top_value_code)), topic_list_top_mobile);
if (isMobile) {
ad = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_mobile_topic_list_top_code, [width,height], divId).addService(window.googletag.pubads());
custom_targeting((keyParse(Discourse.SiteSettings.dfp_target_topic_list_top_key_code)), (keyParse(settings.dfp_target_topic_list_top_value_code)), ad);
} else {
var topic_list_top = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_topic_list_top_code, [parseInt(splitWidthInt(settings.dfp_topic_list_top_ad_sizes)), parseInt(splitHeightInt(settings.dfp_topic_list_top_ad_sizes))], 'div-gpt-ad-topic-list-top').addService(window.googletag.pubads());
ads['topic-list-top'] = topic_list_top;
custom_targeting((keyParse(settings.dfp_target_topic_list_top_key_code)), (keyParse(settings.dfp_target_topic_list_top_value_code)), topic_list_top);
width = parseInt(splitWidthInt(settings.dfp_topic_list_top_ad_sizes));
height = parseInt(splitHeightInt(settings.dfp_topic_list_top_ad_sizes));
ad = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_topic_list_top_code, [width, height], divId).addService(window.googletag.pubads());
custom_targeting((keyParse(settings.dfp_target_topic_list_top_key_code)), (keyParse(settings.dfp_target_topic_list_top_value_code)), ad);
}
} else if (placement === "topic-above-post-stream" && settings.dfp_topic_above_post_stream_code && settings.dfp_topic_above_post_stream_ad_sizes) {
if (isMobile) {
ad = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_mobile_topic_above_post_stream_code, [width,height], divId).addService(window.googletag.pubads());
custom_targeting((keyParse(settings.dfp_target_topic_above_post_stream_key_code)), (keyParse(settings.dfp_target_topic_above_post_stream_value_code)), ad);
} else {
width = parseInt(splitWidthInt(settings.dfp_topic_above_post_stream_ad_sizes));
height = parseInt(splitHeightInt(settings.dfp_topic_above_post_stream_ad_sizes));
ad = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_topic_above_post_stream_code, [width, height], divId).addService(window.googletag.pubads());
custom_targeting((keyParse(settings.dfp_target_topic_above_post_stream_key_code)), (keyParse(settings.dfp_target_topic_above_post_stream_value_code)), ad);
}
} else if (placement === "topic-above-suggested" && settings.dfp_topic_above_suggested_code && settings.dfp_topic_above_suggested_ad_sizes) {
if (isMobile) {
ad = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_mobile_topic_above_suggested_code, [width,height], divId).addService(window.googletag.pubads());
custom_targeting((keyParse(settings.dfp_target_topic_above_suggested_key_code)), (keyParse(settings.dfp_target_topic_above_suggested_value_code)), ad);
} else {
width = parseInt(splitWidthInt(settings.dfp_topic_above_suggested_ad_sizes));
height = parseInt(splitHeightInt(settings.dfp_topic_above_suggested_ad_sizes));
ad = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_topic_above_suggested_code, [width, height], divId).addService(window.googletag.pubads());
custom_targeting((keyParse(settings.dfp_target_topic_above_suggested_key_code)), (keyParse(settings.dfp_target_topic_above_suggested_value_code)), ad);
}
} else if (placement === "post-bottom" && settings.dfp_post_bottom_code && settings.dfp_post_bottom_ad_sizes) {
if (isMobile) {
ad = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_mobile_post_bottom_code, [width,height], divId).addService(window.googletag.pubads());
custom_targeting((keyParse(settings.dfp_target_post_bottom_key_code)), (keyParse(settings.dfp_target_post_bottom_value_code)), ad);
} else {
width = parseInt(splitWidthInt(settings.dfp_post_bottom_ad_sizes));
height = parseInt(splitHeightInt(settings.dfp_post_bottom_ad_sizes));
ad = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_post_bottom_code, [width, height], divId).addService(window.googletag.pubads());
custom_targeting((keyParse(settings.dfp_target_post_bottom_key_code)), (keyParse(settings.dfp_target_post_bottom_value_code)), ad);
}
return ads['topic-list-top'];
}
if (placement === "topic-above-post-stream" && settings.dfp_topic_above_post_stream_code && settings.dfp_topic_above_post_stream_ad_sizes) {
const_width = parseInt(splitWidthInt(settings.dfp_topic_above_post_stream_ad_sizes));
const_height = parseInt(splitHeightInt(settings.dfp_topic_above_post_stream_ad_sizes));
if (Discourse.Mobile.mobileView) {
var topic_above_post_stream_mobile = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_mobile_topic_above_post_stream_code, [320,50], 'div-gpt-ad-topic-above-post-stream').addService(window.googletag.pubads());
ads['topic-above-post-stream'] = topic_above_post_stream_mobile;
custom_targeting((keyParse(settings.dfp_target_topic_above_post_stream_key_code)), (keyParse(settings.dfp_target_topic_above_post_stream_value_code)), topic_above_post_stream_mobile);
}
else {
var topic_above_post_stream = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_topic_above_post_stream_code, [parseInt(splitWidthInt(settings.dfp_topic_above_post_stream_ad_sizes)), parseInt(splitHeightInt(settings.dfp_topic_above_post_stream_ad_sizes))], 'div-gpt-ad-topic-above-post-stream').addService(window.googletag.pubads());
ads['topic-above-post-stream'] = topic_above_post_stream;
custom_targeting((keyParse(settings.dfp_target_topic_above_post_stream_key_code)), (keyParse(settings.dfp_target_topic_above_post_stream_value_code)), topic_above_post_stream);
}
return ads['topic-above-post-stream'];
}
if (placement === "topic-above-suggested" && settings.dfp_topic_above_suggested_code && settings.dfp_topic_above_suggested_ad_sizes) {
const_width = parseInt(splitWidthInt(settings.dfp_topic_above_suggested_ad_sizes));
const_height = parseInt(splitHeightInt(settings.dfp_topic_above_suggested_ad_sizes));
if (Discourse.Mobile.mobileView) {
var topic_above_suggested_mobile = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_mobile_topic_above_suggested_code, [320,50], 'div-gpt-ad-topic-above-suggested').addService(window.googletag.pubads());
ads['topic-above-suggested'] = topic_above_suggested_mobile;
custom_targeting((keyParse(settings.dfp_target_topic_above_suggested_key_code)), (keyParse(settings.dfp_target_topic_above_suggested_value_code)), topic_above_suggested_mobile);
}
else {
var topic_above_suggested = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_topic_above_suggested_code, [parseInt(splitWidthInt(settings.dfp_topic_above_suggested_ad_sizes)), parseInt(splitHeightInt(settings.dfp_topic_above_suggested_ad_sizes))], 'div-gpt-ad-topic-above-suggested').addService(window.googletag.pubads());
ads['topic-above-suggested'] = topic_above_suggested;
custom_targeting((keyParse(settings.dfp_target_topic_above_suggested_key_code)), (keyParse(settings.dfp_target_topic_above_suggested_value_code)), topic_above_suggested);
}
return ads['topic-above-suggested'];
}
if (placement === "post-bottom" && settings.dfp_post_bottom_code && settings.dfp_post_bottom_ad_sizes) {
const_width = parseInt(splitWidthInt(settings.dfp_post_bottom_ad_sizes));
const_height = parseInt(splitHeightInt(settings.dfp_post_bottom_ad_sizes));
if (Discourse.Mobile.mobileView) {
var post_bottom_mobile = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_mobile_post_bottom_code, [320,50], 'div-gpt-ad-post-bottom').addService(window.googletag.pubads());
ads['post-bottom'] = post_bottom_mobile;
custom_targeting((keyParse(settings.dfp_target_post_bottom_key_code)), (keyParse(settings.dfp_target_post_bottom_value_code)), post_bottom_mobile);
}
else {
var post_bottom = window.googletag.defineSlot('/' + settings.dfp_publisher_id + '/' + settings.dfp_post_bottom_code, [parseInt(splitWidthInt(settings.dfp_post_bottom_ad_sizes)), parseInt(splitHeightInt(settings.dfp_post_bottom_ad_sizes))], 'div-gpt-ad-post-bottom').addService(window.googletag.pubads());
ads['post-bottom'] = post_bottom;
custom_targeting((keyParse(settings.dfp_target_post_bottom_key_code)), (keyParse(settings.dfp_target_post_bottom_value_code)), post_bottom);
}
return ads['post-bottom'];
if (ad) {
ads[divId] = {ad: ad, width: width, height: height};
return ads[divId];
}
}
@ -164,41 +146,44 @@ function loadGoogle() {
// Ember component - the class is the adblock and css
export default Ember.Component.extend({
const_width: const_width,
const_height: const_height,
const_mobile_width: const_mobile_width,
const_mobile_height: const_mobile_height,
width: 728,
height: 90,
classNameBindings: ['adUnitClass'],
classNames: ['google-dfp-ad'],
loadedGoogletag: false,
refreshOnChange: null,
// Part of the divID of the div part of the GPT
divId: function() {
return "div-gpt-ad-" + this.get('placement');
if (this.get('postNumber')) {
return "div-gpt-ad-" + this.get('placement') + '-' + this.get('postNumber');
} else {
return "div-gpt-ad-" + this.get('placement');
}
}.property('placement', 'postNumber'),
adUnitClass: function() {
return "dfp-ad-" + this.get("placement");
}.property('placement'),
adWrapperStyle: function() {
return `width: ${this.get('const_width')}px; height: ${this.get('const_height')}px;`.htmlSafe();
}.property('const_width', 'const_height'),
adWrapperStyleMobile: function() {
return `width: ${this.get('const_mobile_width')}px; height: ${this.get('const_mobile_height')}px;`.htmlSafe();
}.property('const_mobile_width', 'const_mobile_height'),
return `width: ${this.get('width')}px; height: ${this.get('height')}px;`.htmlSafe();
}.property('width', 'height'),
adTitleStyleMobile: function() {
return `width: ${this.get('const_mobile_width')}px;`.htmlSafe();
}.property('const_mobile_width'),
return `width: ${this.get('width')}px;`.htmlSafe();
}.property('width'),
checkTrustLevels: function() {
return !((currentUser) && (currentUser.get('trust_level') > Discourse.SiteSettings.dfp_through_trust_level));
}.property('trust_level'),
refreshAd: function() {
var ad = ads[this.get('placement')];
if (!ad) { return; }
var slot = ads[this.get('divId')];
if (!(slot && slot.ad)) { return; }
var self = this;
var self = this,
ad = slot.ad;
if (this.get('loadedGoogletag') && this.get('refreshOnChange')) {
window.googletag.cmd.push(function() {
@ -213,11 +198,13 @@ export default Ember.Component.extend({
loadGoogle(this.siteSettings).then(function() {
self.set('loadedGoogletag', true);
window.googletag.cmd.push(function() {
var ad = defineSlot(self.get('placement'), self.siteSettings);
if (ad) {
ad.setTargeting('discourse-category', self.get('category') ? self.get('category') : '0');
let slot = defineSlot(self.get('divId'), self.get('placement'), self.siteSettings, self.site.mobileView);
if (slot && slot.ad) {
slot.ad.setTargeting('discourse-category', self.get('category') ? self.get('category') : '0');
self.set('width', slot.width);
self.set('height', slot.height);
window.googletag.display(self.get('divId'));
window.googletag.pubads().refresh([ad]);
window.googletag.pubads().refresh([slot.ad]);
}
});
});

View File

@ -1,10 +1,9 @@
{{#if checkTrustLevels}}
{{#if site.mobileView}}
<div class="google-dfp-ad-label" style={{adTitleStyleMobile}}><h2>ADVERTISEMENT</h2></div>
<div id={{divId}} style={{adWrapperStyleMobile}} class="dfp-ad-unit" align=center></div>
<div id={{divId}} style={{adWrapperStyle}} class="dfp-ad-unit" align=center></div>
{{else}}
<div class="google-dfp-ad-label"><h2>ADVERTISEMENT</h2></div>
<div id={{divId}} style={{adWrapperStyle}} class="dfp-ad-unit" align=center></div>
{{/if}}
{{/if}}
{{/if}}

View File

@ -1,9 +1,9 @@
{{#if postSpecificCountAdsense}}
{{google-adsense placement="post-bottom"}}
{{google-adsense placement="post-bottom" postNumber=post_number}}
{{/if}}
{{#if postSpecificCountDFP}}
{{google-dfp-ad placement="post-bottom" category=topic.category.slug}}
{{google-dfp-ad placement="post-bottom" category=topic.category.slug postNumber=post_number}}
{{/if}}
{{#if postSpecificCountAmazon}}
{{amazon-product-links placement="post-bottom"}}
{{amazon-product-links placement="post-bottom" postNumber=post_number}}
{{/if}}

View File

@ -8,16 +8,24 @@ export default {
PostModel.reopen({
postSpecificCountDFP: function() {
return this.get('post_number') === parseInt(siteSettings.dfp_nth_post_code);
return this.isNthPost(parseInt(siteSettings.dfp_nth_post_code));
}.property('post_number'),
postSpecificCountAdsense: function() {
return this.get('post_number') === parseInt(siteSettings.adsense_nth_post_code);
return this.isNthPost(parseInt(siteSettings.adsense_nth_post_code));
}.property('post_number'),
postSpecificCountAmazon: function() {
return this.get('post_number') === parseInt(siteSettings.amazon_nth_post_code);
return this.isNthPost(parseInt(siteSettings.amazon_nth_post_code));
}.property('post_number'),
isNthPost: function(n) {
if (n && n > 0) {
return (this.get('post_number') % n) === 0;
} else {
return false;
}
}
});
withPluginApi('0.1', api => {

View File

@ -1,66 +1,71 @@
en:
site_settings:
dfp_publisher_id: "Input your publisher ID"
dfp_through_trust_level: "Show your ads to users based on trust levels"
dfp_topic_list_top_code: "Enter the code of the ad unit to display at topic list top location. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_mobile_topic_list_top_code: "Enter the code of the ad unit to display mobile ads at topic list top location. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_topic_list_top_ad_sizes: "Choose your ad size"
dfp_target_topic_list_top_key_code: "Input custom targeting keys - inventory Level"
dfp_target_topic_list_top_value_code: "Input custom targeting values - inventory Level"
dfp_topic_above_post_stream_code: "Enter the code of the ad unit to display at topic above post stream location. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_mobile_topic_above_post_stream_code: "Enter the code of the ad unit to display mobile ads at topic above post stream location. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_topic_above_post_stream_ad_sizes: "Choose your ad size"
dfp_target_topic_above_post_stream_key_code: "Input custom targeting keys - inventory Level"
dfp_target_topic_above_post_stream_value_code: "Input custom targeting values - inventory Level"
dfp_topic_above_suggested_code: "Enter the code of the ad unit to display at topic above suggested location. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_mobile_topic_above_suggested_code: "Enter the code of the ad unit to display mobile ads at topic above suggested location. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_topic_above_suggested_ad_sizes: "Choose your ad size"
dfp_target_topic_above_suggested_key_code: "Input custom targeting keys - inventory Level"
dfp_target_topic_above_suggested_value_code: "Input custom targeting values - inventory Level"
dfp_post_bottom_code: "Enter the code of the ad unit to display at post bottom location. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_mobile_post_bottom_code: "Enter the code of the ad unit to display mobile ads at post bottom location. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_nth_post_code: "Choose a post number for your ad to show in the post bottom location - this is the nth post"
dfp_post_bottom_ad_sizes: "Choose your ad size"
dfp_target_post_bottom_key_code: "Input custom targeting keys - inventory Level"
dfp_target_post_bottom_value_code: "Input custom targeting values - inventory Level"
adsense_publisher_code: "Input your publisher ID"
adsense_through_trust_level: "Show your ads to users based on trust levels"
adsense_topic_list_top_code: "Enter code of the ad unit to display at topic list top location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_mobile_topic_list_top_code: "Enter code of the ad unit to display mobile ads at topic list top location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_topic_list_top_ad_sizes: "Choose your ad sizes"
adsense_topic_above_post_stream_code: "Enter code of the ad unit to display at topic above post stream location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_mobile_topic_above_post_stream_code: "Enter code of the ad unit to display mobile ads at topic above post stream location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_topic_above_post_stream_ad_sizes: "Choose your ad sizes"
adsense_topic_above_suggested_code: "Enter code of the ad unit to display at topic above suggested location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_mobile_topic_above_suggested_code: "Enter code of the ad unit to display mobile ads at topic above suggested location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_topic_above_suggested_ad_sizes: "Choose your ad sizes"
adsense_post_bottom_code: "Enter code of the ad unit to display ads at post bottom location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_mobile_post_bottom_code: "Enter code of the ad unit to display mobile ads at post bottom location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_post_bottom_ad_sizes: "Choose your ad sizes"
adsense_nth_post_code: "Choose a post number for your ad to show in the post bottom location - this is the nth post"
amazon_through_trust_level: "Show your ads to users based on trust levels"
amazon_topic_list_top_src_code: "Enter src code to display at topic list top location"
amazon_topic_list_top_ad_width_code: "Input your ad width"
amazon_topic_list_top_ad_height_code: "Input your ad height"
amazon_mobile_topic_list_top_src_code: "Enter src code to display mobile ads at topic list top location"
amazon_mobile_topic_list_top_ad_width_code: "Input your ad width (mobile)"
amazon_mobile_topic_list_top_ad_height_code: "Input your ad height (mobile)"
amazon_topic_above_post_stream_src_code: "Enter src code to display at topic above post stream"
amazon_topic_above_post_stream_ad_width_code: "Input your ad width"
amazon_topic_above_post_stream_ad_height_code: "Input your ad height"
amazon_mobile_topic_above_post_stream_src_code: "Enter src code to display mobile ads at topic above post stream"
amazon_mobile_topic_above_post_stream_ad_width_code: "Input your ad width (mobile)"
amazon_mobile_topic_above_post_stream_ad_height_code: "Input your ad height (mobile)"
amazon_topic_above_suggested_src_code: "Enter src code to display at topic above suggested"
amazon_topic_above_suggested_ad_width_code: "Input your ad width"
amazon_topic_above_suggested_ad_height_code: "Input your ad height"
amazon_mobile_topic_above_suggested_src_code: "Enter src code to display mobile ads at topic above suggested"
amazon_mobile_topic_above_suggested_ad_width_code: "Input your ad width (mobile)"
amazon_mobile_topic_above_suggested_ad_height_code: "Input your ad height (mobile)"
amazon_post_bottom_src_code: "Enter src code to display at post bottom"
amazon_post_bottom_ad_width_code: "Input your ad width"
amazon_post_bottom_ad_height_code: "Input your ad height"
amazon_mobile_post_bottom_src_code: "Enter src code to display mobile ads at post bottom"
amazon_mobile_post_bottom_ad_width_code: "Input your ad width (mobile)"
amazon_mobile_post_bottom_ad_height_code: "Input your ad height (mobile)"
amazon_nth_post_code: "Choose a post number for your ad to show in the post bottom location - this is the nth post"
dfp_publisher_id: "Input your publisher ID"
dfp_through_trust_level: "Show your ads to users based on trust levels. Users with trust level higher than this value will not see ads."
dfp_topic_list_top_code: "Enter the code of the ad unit to display above topic lists. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_topic_list_top_ad_sizes: "Choose your ad size for the ad unit above topic lists."
dfp_mobile_topic_list_top_code: "Enter the code of the ad unit to display above topic lists on mobile view. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_target_topic_list_top_key_code: "Input custom targeting keys - inventory Level"
dfp_target_topic_list_top_value_code: "Input custom targeting values - inventory Level"
dfp_topic_above_post_stream_code: "Enter the code of the ad unit to display above the title of a topic on the topic page. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_topic_above_post_stream_ad_sizes: "Choose your ad size for the ad unit at the top of the topic page."
dfp_mobile_topic_above_post_stream_code: "Enter the code of the ad unit to display above the title of a topic on the topic page on mobile. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_target_topic_above_post_stream_key_code: "Input custom targeting keys - inventory Level"
dfp_target_topic_above_post_stream_value_code: "Input custom targeting values - inventory Level"
dfp_topic_above_suggested_code: "Enter the code of the ad unit to display after the last post in a topic, above the suggested topics. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_topic_above_suggested_ad_sizes: "Choose your ad size for the ad unit after the last post in a topic."
dfp_mobile_topic_above_suggested_code: "Enter the code of the ad unit to display after the last post in a topic, above the suggested topics. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_target_topic_above_suggested_key_code: "Input custom targeting keys - inventory Level"
dfp_target_topic_above_suggested_value_code: "Input custom targeting values - inventory Level"
dfp_nth_post_code: "Show an ad after every N posts, where N is this value."
dfp_post_bottom_code: "Enter the code of the ad unit to display in between posts after every nth post. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_post_bottom_ad_sizes: "Choose your ad size for the ad unit shown in between posts."
dfp_mobile_post_bottom_code: "Enter the code of the ad unit to display in between posts after every nth post on mobile. This is the short code (max 100 chars) of the ad unit, not the JavaScript code."
dfp_target_post_bottom_key_code: "Input custom targeting keys - inventory Level"
dfp_target_post_bottom_value_code: "Input custom targeting values - inventory Level"
adsense_publisher_code: "Input your publisher ID"
adsense_through_trust_level: "Show your ads to users based on trust levels. Users with trust level higher than this value will not see ads."
adsense_topic_list_top_code: "Enter code of the ad unit to display at topic list top location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_mobile_topic_list_top_code: "Enter code of the ad unit to display mobile ads at topic list top location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_topic_list_top_ad_sizes: "Choose your ad sizes"
adsense_topic_above_post_stream_code: "Enter code of the ad unit to display at topic above post stream location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_mobile_topic_above_post_stream_code: "Enter code of the ad unit to display mobile ads at topic above post stream location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_topic_above_post_stream_ad_sizes: "Choose your ad sizes"
adsense_topic_above_suggested_code: "Enter code of the ad unit to display at topic above suggested location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_mobile_topic_above_suggested_code: "Enter code of the ad unit to display mobile ads at topic above suggested location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_topic_above_suggested_ad_sizes: "Choose your ad sizes"
adsense_post_bottom_code: "Enter code of the ad unit to display ads at post bottom location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_mobile_post_bottom_code: "Enter code of the ad unit to display mobile ads at post bottom location. This is the number assigned to the ad unit, not the JavaScript code."
adsense_post_bottom_ad_sizes: "Choose your ad sizes"
adsense_nth_post_code: "Show an ad after every N posts, where N is this value."
amazon_through_trust_level: "Show your ads to users based on trust levels. Users with trust level higher than this value will not see ads."
amazon_topic_list_top_src_code: "Enter src code to display at topic list top location"
amazon_topic_list_top_ad_width_code: "Input your ad width"
amazon_topic_list_top_ad_height_code: "Input your ad height"
amazon_mobile_topic_list_top_src_code: "Enter src code to display mobile ads at topic list top location"
amazon_mobile_topic_list_top_ad_width_code: "Input your ad width (mobile)"
amazon_mobile_topic_list_top_ad_height_code: "Input your ad height (mobile)"
amazon_topic_above_post_stream_src_code: "Enter src code to display at topic above post stream"
amazon_topic_above_post_stream_ad_width_code: "Input your ad width"
amazon_topic_above_post_stream_ad_height_code: "Input your ad height"
amazon_mobile_topic_above_post_stream_src_code: "Enter src code to display mobile ads at topic above post stream"
amazon_mobile_topic_above_post_stream_ad_width_code: "Input your ad width (mobile)"
amazon_mobile_topic_above_post_stream_ad_height_code: "Input your ad height (mobile)"
amazon_topic_above_suggested_src_code: "Enter src code to display at topic above suggested"
amazon_topic_above_suggested_ad_width_code: "Input your ad width"
amazon_topic_above_suggested_ad_height_code: "Input your ad height"
amazon_mobile_topic_above_suggested_src_code: "Enter src code to display mobile ads at topic above suggested"
amazon_mobile_topic_above_suggested_ad_width_code: "Input your ad width (mobile)"
amazon_mobile_topic_above_suggested_ad_height_code: "Input your ad height (mobile)"
amazon_post_bottom_src_code: "Enter src code to display at post bottom"
amazon_post_bottom_ad_width_code: "Input your ad width"
amazon_post_bottom_ad_height_code: "Input your ad height"
amazon_mobile_post_bottom_src_code: "Enter src code to display mobile ads at post bottom"
amazon_mobile_post_bottom_ad_width_code: "Input your ad width (mobile)"
amazon_mobile_post_bottom_ad_height_code: "Input your ad height (mobile)"
amazon_nth_post_code: "Show an ad after every N posts, where N is this value."

View File

@ -20,12 +20,12 @@ adsense_plugin:
type: enum
choices:
- 728*90 - leaderboard
- 336*280 - large rectangle
- 336*280 - large rectangle
- 300*250 - medium rectangle
- 970*90 - large leaderboard
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 180*150 - small rectangle
- 200*200 - small square
- 250*250 - square
@ -43,12 +43,12 @@ adsense_plugin:
type: enum
choices:
- 728*90 - leaderboard
- 336*280 - large rectangle
- 336*280 - large rectangle
- 300*250 - medium rectangle
- 970*90 - large leaderboard
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 180*150 - small rectangle
- 200*200 - small square
- 250*250 - square
@ -66,20 +66,20 @@ adsense_plugin:
type: enum
choices:
- 728*90 - leaderboard
- 336*280 - large rectangle
- 336*280 - large rectangle
- 300*250 - medium rectangle
- 970*90 - large leaderboard
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 180*150 - small rectangle
- 200*200 - small square
- 250*250 - square
adsense_post_bottom_code:
adsense_post_bottom_code:
client: true
default: ''
max: 50
adsense_mobile_post_bottom_code:
adsense_mobile_post_bottom_code:
client: true
default: ''
max: 50
@ -89,15 +89,15 @@ adsense_plugin:
type: enum
choices:
- 728*90 - leaderboard
- 336*280 - large rectangle
- 336*280 - large rectangle
- 300*250 - medium rectangle
- 970*90 - large leaderboard
- 468*60 - banner
- 234*60 - half banner
adsense_nth_post_code:
- 468*60 - banner
- 234*60 - half banner
adsense_nth_post_code:
client: true
default: ''
max: 50
min: 1
dfp_plugin:
dfp_publisher_id:
@ -111,26 +111,26 @@ dfp_plugin:
client: true
default: ''
max: 50
dfp_mobile_topic_list_top_code:
client: true
default: ''
max: 50
dfp_topic_list_top_ad_sizes:
client: true
default: '728*90 - leaderboard'
type: enum
choices:
- 728*90 - leaderboard
- 336*280 - large rectangle
- 336*280 - large rectangle
- 300*250 - medium rectangle
- 970*90 - large leaderboard
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 180*150 - small rectangle
- 200*200 - small square
- 250*250 - square
dfp_target_topic_list_top_key_code:
dfp_mobile_topic_list_top_code:
client: true
default: ''
max: 50
dfp_target_topic_list_top_key_code:
default: ''
type: value_list
client: true
@ -142,25 +142,25 @@ dfp_plugin:
client: true
default: ''
max: 50
dfp_mobile_topic_above_post_stream_code:
client: true
default: ''
max: 50
dfp_topic_above_post_stream_ad_sizes:
client: true
default: '728*90 - leaderboard'
type: enum
choices:
- 728*90 - leaderboard
- 336*280 - large rectangle
- 336*280 - large rectangle
- 300*250 - medium rectangle
- 970*90 - large leaderboard
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 180*150 - small rectangle
- 200*200 - small square
- 250*250 - square
dfp_mobile_topic_above_post_stream_code:
client: true
default: ''
max: 50
dfp_target_topic_above_post_stream_key_code:
default: ''
type: value_list
@ -173,25 +173,25 @@ dfp_plugin:
client: true
default: ''
max: 50
dfp_mobile_topic_above_suggested_code:
client: true
default: ''
max: 50
dfp_topic_above_suggested_ad_sizes:
client: true
default: '728*90 - leaderboard'
type: enum
choices:
- 728*90 - leaderboard
- 336*280 - large rectangle
- 336*280 - large rectangle
- 300*250 - medium rectangle
- 970*90 - large leaderboard
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 468*60 - banner
- 234*60 - half banner
- 125*125 - button
- 180*150 - small rectangle
- 200*200 - small square
- 250*250 - square
dfp_mobile_topic_above_suggested_code:
client: true
default: ''
max: 50
dfp_target_topic_above_suggested_key_code:
default: ''
type: value_list
@ -201,28 +201,29 @@ dfp_plugin:
type: value_list
client: true
max: 50
dfp_nth_post_code:
client: true
default: ''
min: 1
dfp_post_bottom_code:
client: true
default: ''
max: 50
dfp_mobile_post_bottom_code:
client: true
default: ''
max: 50
dfp_nth_post_code:
client: true
default: ''
dfp_post_bottom_ad_sizes:
client: true
default: '728*90 - leaderboard'
type: enum
choices:
- 728*90 - leaderboard
- 336*280 - large rectangle
- 336*280 - large rectangle
- 300*250 - medium rectangle
- 970*90 - large leaderboard
- 468*60 - banner
- 234*60 - half banner
- 468*60 - banner
- 234*60 - half banner
dfp_mobile_post_bottom_code:
client: true
default: ''
max: 50
dfp_target_post_bottom_key_code:
default: ''
type: value_list
@ -242,26 +243,26 @@ amazon_plugin:
default: ''
amazon_topic_list_top_ad_width_code:
client: true
default: ''
default: ''
amazon_topic_list_top_ad_height_code:
client: true
default: ''
amazon_mobile_topic_list_top_src_code:
client: true
default: ''
amazon_mobile_topic_list_top_ad_width_code:
amazon_mobile_topic_list_top_ad_width_code:
client: true
default: ''
amazon_mobile_topic_list_top_ad_height_code:
amazon_mobile_topic_list_top_ad_height_code:
client: true
default: ''
amazon_topic_above_post_stream_src_code:
client: true
default: ''
amazon_topic_above_post_stream_ad_width_code:
amazon_topic_above_post_stream_ad_width_code:
client: true
default: ''
amazon_topic_above_post_stream_ad_height_code:
amazon_topic_above_post_stream_ad_height_code:
client: true
default: ''
amazon_mobile_topic_above_post_stream_src_code:
@ -270,13 +271,13 @@ amazon_plugin:
amazon_mobile_topic_above_post_stream_ad_width_code:
client: true
default: ''
amazon_mobile_topic_above_post_stream_ad_height_code:
amazon_mobile_topic_above_post_stream_ad_height_code:
client: true
default: ''
amazon_topic_above_suggested_src_code:
amazon_topic_above_suggested_src_code:
client: true
default: ''
amazon_topic_above_suggested_ad_width_code:
amazon_topic_above_suggested_ad_width_code:
client: true
default: ''
amazon_topic_above_suggested_ad_height_code:
@ -294,9 +295,10 @@ amazon_plugin:
amazon_post_bottom_src_code:
client: true
default: ''
amazon_nth_post_code:
amazon_nth_post_code:
client: true
default: ''
min: 1
amazon_post_bottom_ad_width_code:
client: true
default: ''

View File

@ -81,4 +81,10 @@ register_css <<CSS
font-weight: normal;
}
.google-dfp-ad.dfp-ad-post-bottom {
.google-dfp-ad-label, .dfp-ad-unit {
margin: 0 0 0 52px;
}
}
CSS