From 9df93c03a7fddb0f48450a3042b19a6235d07598 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Tue, 30 May 2017 18:13:49 -0400 Subject: [PATCH] AdSense: allow choosing ad size for mobile, including responsive --- .DS_Store | Bin 6148 -> 0 bytes .../components/google-adsense.js.es6 | 40 +++---- .../templates/components/google-adsense.hbs | 30 ++---- config/locales/server.en.yml | 12 ++- config/settings.yml | 101 ++++++------------ 5 files changed, 65 insertions(+), 118 deletions(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index cf4c90877aa85bdcb7ab3ab25306099d091fd058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK-D(p-6h4#2xSN2is8H}`FDsOiAT9PTjj7;8AvDq=R^x7VO$OH8kli#$2;|zw z@c#*X0nsZTKp(}c_{~oxn<(B%kU8PZcjnBTGczAMGZ`XcjZsh|a)`)+3M`gU{6<8( z&=o0Yj}2rpM@H%WDCzo9;;-~J4#R+9VBHuHd$&X$rTB%E-@oEexCh;WviTh4QeS_Z z4)k9C;SVC7X4UF0p5*$d0IZOiUBo0Caxf4{cv?pCMU?&QuM%)RRE>D2jXSvPO(9vnR!Okciw{pRhv z_a8oemdhrF15U~{jTi6*MvlPq_Ari;xCg(8xdL)WAU2^6^+0h99m1CZgN4IVko^_9 zHJ1YGFR?+|jeO801}RY&1H|-u>ai&ln9Vp}z z09b@u3T$zci5OR7UE@q4S|Ch?0#zu}PYkBQ;dgbvy2hD86;4b)KA0Yv=@$x&oK9UF$-hLWPKa oGlen)g}#oZA+F+0s1&rh!T{Da&J@A}F@FRk4W=**{8I*g0(Eq=JOBUy diff --git a/assets/javascripts/discourse/components/google-adsense.js.es6 b/assets/javascripts/discourse/components/google-adsense.js.es6 index ecd93f2..9d206c4 100644 --- a/assets/javascripts/discourse/components/google-adsense.js.es6 +++ b/assets/javascripts/discourse/components/google-adsense.js.es6 @@ -2,12 +2,8 @@ import loadScript from 'discourse/lib/load-script'; var _loaded = false, _promise = null, - ad_mobile_width = 320, - ad_mobile_height = 50, currentUser = Discourse.User.current(), - publisher_id = Discourse.SiteSettings.adsense_publisher_code, - mobile_width = 320, - mobile_height = 50; + publisher_id = Discourse.SiteSettings.adsense_publisher_code; const mobileView = Discourse.Site.currentProp('mobileView'); @@ -52,7 +48,9 @@ if (Discourse.SiteSettings.adsense_publisher_code) { data["topic-list-top"]["ad_height"] = parseAdHeight(Discourse.SiteSettings.adsense_topic_list_top_ad_sizes); } if (mobileView && Discourse.SiteSettings.adsense_mobile_topic_list_top_code) { - data["topic-list-top"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_topic_list_top_code; + data["topic-list-top"]["ad_code"] = Discourse.SiteSettings.adsense_mobile_topic_list_top_code; + data["topic-list-top"]["ad_width"] = parseAdWidth(Discourse.SiteSettings.adsense_mobile_topic_list_top_ad_size); + data["topic-list-top"]["ad_height"] = parseAdHeight(Discourse.SiteSettings.adsense_mobile_topic_list_top_ad_size); } if (!mobileView && Discourse.SiteSettings.adsense_topic_above_post_stream_code) { data["topic-above-post-stream"]["ad_code"] = Discourse.SiteSettings.adsense_topic_above_post_stream_code; @@ -60,7 +58,9 @@ if (Discourse.SiteSettings.adsense_publisher_code) { data["topic-above-post-stream"]["ad_height"] = parseAdHeight(Discourse.SiteSettings.adsense_topic_above_post_stream_ad_sizes); } if (mobileView && Discourse.SiteSettings.adsense_mobile_topic_above_post_stream_code) { - data["topic-above-post-stream"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_topic_above_post_stream_code; + data["topic-above-post-stream"]["ad_code"] = Discourse.SiteSettings.adsense_mobile_topic_above_post_stream_code; + data["topic-above-post-stream"]["ad_width"] = parseAdWidth(Discourse.SiteSettings.adsense_mobile_topic_above_post_stream_ad_size); + data["topic-above-post-stream"]["ad_height"] = parseAdHeight(Discourse.SiteSettings.adsense_mobile_topic_above_post_stream_ad_size); } if (!mobileView && Discourse.SiteSettings.adsense_topic_above_suggested_code) { data["topic-above-suggested"]["ad_code"] = Discourse.SiteSettings.adsense_topic_above_suggested_code; @@ -68,7 +68,9 @@ if (Discourse.SiteSettings.adsense_publisher_code) { data["topic-above-suggested"]["ad_height"] = parseAdHeight(Discourse.SiteSettings.adsense_topic_above_suggested_ad_sizes); } if (mobileView && Discourse.SiteSettings.adsense_mobile_topic_above_suggested_code) { - data["topic-above-suggested"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_topic_above_suggested_code; + data["topic-above-suggested"]["ad_code"] = Discourse.SiteSettings.adsense_mobile_topic_above_suggested_code; + data["topic-above-suggested"]["ad_width"] = parseAdWidth(Discourse.SiteSettings.adsense_mobile_topic_above_suggested_ad_size); + data["topic-above-suggested"]["ad_height"] = parseAdHeight(Discourse.SiteSettings.adsense_mobile_topic_above_suggested_ad_size); } if (!mobileView && Discourse.SiteSettings.adsense_post_bottom_code) { data["post-bottom"]["ad_code"] = Discourse.SiteSettings.adsense_post_bottom_code; @@ -76,7 +78,9 @@ if (Discourse.SiteSettings.adsense_publisher_code) { data["post-bottom"]["ad_height"] = parseAdHeight(Discourse.SiteSettings.adsense_post_bottom_ad_sizes); } if (mobileView && Discourse.SiteSettings.adsense_mobile_post_bottom_code) { - data["post-bottom"]["ad_mobile_code"] = Discourse.SiteSettings.adsense_mobile_post_bottom_code; + data["post-bottom"]["ad_code"] = Discourse.SiteSettings.adsense_mobile_post_bottom_code; + data["post-bottom"]["ad_width"] = parseAdWidth(Discourse.SiteSettings.adsense_mobile_post_bottom_ad_size); + data["post-bottom"]["ad_height"] = parseAdHeight(Discourse.SiteSettings.adsense_mobile_post_bottom_ad_size); } } @@ -87,11 +91,6 @@ export default Ember.Component.extend({ publisher_id: publisher_id, ad_width: null, ad_height: null, - ad_mobile_width: ad_mobile_width, - ad_mobile_height: ad_mobile_height, - - mobile_width: mobile_width, - mobile_height: mobile_height, adRequested: false, @@ -99,7 +98,6 @@ export default Ember.Component.extend({ this.set('ad_width', data[this.placement]["ad_width"] ); this.set('ad_height', data[this.placement]["ad_height"] ); this.set('ad_code', data[this.placement]["ad_code"] ); - this.set('ad_mobile_code', data[this.placement]["ad_mobile_code"] ); this._super(); }, @@ -151,18 +149,6 @@ export default Ember.Component.extend({ return `display: ${this.get('isResponsive') ? 'block' : 'inline-block'}; ${this.get('adWrapperStyle')}`.htmlSafe(); }.property('adWrapperStyle', 'isResponsive'), - adWrapperStyleMobile: function() { - return (this.get('isResponsive') ? '' : `width: ${this.get('ad_mobile_width')}; height: ${this.get('ad_mobile_height')};`).htmlSafe(); - }.property('ad_mobile_width', 'ad_mobile_height'), - - adTitleStyleMobile: function() { - return `width: ${this.get('ad_mobile_width')};`.htmlSafe(); - }.property('ad_mobile_width'), - - adInsStyleMobile: function() { - return `display: ${this.get('isResponsive') ? 'block' : 'inline-block'}; ${this.get('adWrapperStyleMobile')}`.htmlSafe(); - }.property('adWrapperStyleMobile'), - checkTrustLevels: function() { return !((currentUser) && (currentUser.get('trust_level') > Discourse.SiteSettings.adsense_through_trust_level)); }.property('trust_level'), diff --git a/assets/javascripts/discourse/templates/components/google-adsense.hbs b/assets/javascripts/discourse/templates/components/google-adsense.hbs index f243126..daed48a 100644 --- a/assets/javascripts/discourse/templates/components/google-adsense.hbs +++ b/assets/javascripts/discourse/templates/components/google-adsense.hbs @@ -1,23 +1,11 @@ {{#if showAd}} - {{#if site.mobileView}} -

ADVERTISEMENT

-
- - -
- {{else}} -

ADVERTISEMENT

-
- - -
- {{/if}} +

ADVERTISEMENT

+
+ + +
{{/if}} diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index b0b0eb7..217c228 100755 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -36,16 +36,20 @@ en: 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_list_top_ad_sizes: "Choose your ad size" + adsense_mobile_topic_list_top_ad_size: "Choose your ad size" 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_post_stream_ad_sizes: "Choose your ad size" + adsense_mobile_topic_above_post_stream_ad_size: "Choose your ad size" 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_topic_above_suggested_ad_sizes: "Choose your ad size" + adsense_mobile_topic_above_suggested_ad_size: "Choose your ad size" 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_post_bottom_ad_sizes: "Choose your ad size" + adsense_mobile_post_bottom_ad_size: "Choose your ad size" 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." diff --git a/config/settings.yml b/config/settings.yml index b4b765d..76aaffe 100755 --- a/config/settings.yml +++ b/config/settings.yml @@ -12,16 +12,11 @@ adsense_plugin: default: '' max: 50 regex: '^[\d]*$' - adsense_mobile_topic_list_top_code: - client: true - default: '' - max: 50 - regex: '^[\d]*$' adsense_topic_list_top_ad_sizes: client: true default: '728*90 - leaderboard' type: enum - choices: + choices: &adsense_choices - responsive - 728*90 - leaderboard - 336*280 - large rectangle @@ -39,12 +34,17 @@ adsense_plugin: - 300*600 - half page ad - 320*100 - large mobile banner - 690*250 - adsense_topic_above_post_stream_code: + adsense_mobile_topic_list_top_code: client: true default: '' max: 50 regex: '^[\d]*$' - adsense_mobile_topic_above_post_stream_code: + adsense_mobile_topic_list_top_ad_size: + client: true + default: 'responsive' + type: enum + choices: *adsense_choices + adsense_topic_above_post_stream_code: client: true default: '' max: 50 @@ -53,30 +53,18 @@ adsense_plugin: client: true default: '728*90 - leaderboard' type: enum - choices: - - responsive - - 728*90 - leaderboard - - 336*280 - large rectangle - - 300*250 - medium rectangle - - 970*90 - large leaderboard - - 970*250 - billboard - - 468*60 - banner - - 320*50 - mobile leaderboard - - 160*600 - wide skyscraper - - 234*60 - half banner - - 125*125 - button - - 180*150 - small rectangle - - 200*200 - small square - - 250*250 - square - - 300*600 - half page ad - - 320*100 - large mobile banner - - 690*250 - adsense_topic_above_suggested_code: + choices: *adsense_choices + adsense_mobile_topic_above_post_stream_code: client: true default: '' max: 50 regex: '^[\d]*$' - adsense_mobile_topic_above_suggested_code: + adsense_mobile_topic_above_post_stream_ad_size: + client: true + default: 'responsive' + type: enum + choices: *adsense_choices + adsense_topic_above_suggested_code: client: true default: '' max: 50 @@ -85,30 +73,18 @@ adsense_plugin: client: true default: '728*90 - leaderboard' type: enum - choices: - - responsive - - 728*90 - leaderboard - - 336*280 - large rectangle - - 300*250 - medium rectangle - - 970*90 - large leaderboard - - 970*250 - billboard - - 468*60 - banner - - 320*50 - mobile leaderboard - - 160*600 - wide skyscraper - - 234*60 - half banner - - 125*125 - button - - 180*150 - small rectangle - - 200*200 - small square - - 250*250 - square - - 300*600 - half page ad - - 320*100 - large mobile banner - - 690*250 - adsense_post_bottom_code: + choices: *adsense_choices + adsense_mobile_topic_above_suggested_code: client: true default: '' max: 50 regex: '^[\d]*$' - adsense_mobile_post_bottom_code: + adsense_mobile_topic_above_suggested_ad_size: + client: true + default: 'responsive' + type: enum + choices: *adsense_choices + adsense_post_bottom_code: client: true default: '' max: 50 @@ -117,24 +93,17 @@ adsense_plugin: client: true default: '728*90 - leaderboard' type: enum - choices: - - responsive - - 728*90 - leaderboard - - 336*280 - large rectangle - - 300*250 - medium rectangle - - 970*90 - large leaderboard - - 970*250 - billboard - - 468*60 - banner - - 320*50 - mobile leaderboard - - 160*600 - wide skyscraper - - 234*60 - half banner - - 125*125 - button - - 180*150 - small rectangle - - 200*200 - small square - - 250*250 - square - - 300*600 - half page ad - - 320*100 - large mobile banner - - 690*250 + choices: *adsense_choices + adsense_mobile_post_bottom_code: + client: true + default: '' + max: 50 + regex: '^[\d]*$' + adsense_mobile_post_bottom_ad_size: + client: true + default: 'responsive' + type: enum + choices: *adsense_choices adsense_nth_post_code: client: true default: ''