AdSense: allow choosing ad size for mobile, including responsive
This commit is contained in:
		
							parent
							
								
									62377e6111
								
							
						
					
					
						commit
						9df93c03a7
					
				| 
						 | 
				
			
			@ -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'),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,23 +1,11 @@
 | 
			
		|||
{{#if showAd}}
 | 
			
		||||
  {{#if site.mobileView}}
 | 
			
		||||
    <div class="google-adsense-label" style={{adTitleStyleMobile}}><h2>ADVERTISEMENT</h2></div>
 | 
			
		||||
    <div class="google-adsense-content" style={{adWrapperStyleMobile}}>
 | 
			
		||||
      <ins class="adsbygoogle"
 | 
			
		||||
        style={{adInsStyleMobile}}
 | 
			
		||||
        data-ad-client="ca-pub-{{publisher_id}}"
 | 
			
		||||
        data-ad-slot={{ad_mobile_code}}
 | 
			
		||||
        data-ad-format={{autoAdFormat}}>
 | 
			
		||||
      </ins>
 | 
			
		||||
    </div>
 | 
			
		||||
  {{else}}
 | 
			
		||||
    <div class="google-adsense-label"><h2>ADVERTISEMENT</h2></div>
 | 
			
		||||
    <div class="google-adsense-content" style={{adWrapperStyle}}>
 | 
			
		||||
      <ins class="adsbygoogle"
 | 
			
		||||
        style={{adInsStyle}}
 | 
			
		||||
        data-ad-client="ca-pub-{{publisher_id}}"
 | 
			
		||||
        data-ad-slot={{ad_code}}
 | 
			
		||||
        data-ad-format={{autoAdFormat}}>
 | 
			
		||||
      </ins>
 | 
			
		||||
    </div>
 | 
			
		||||
  {{/if}}
 | 
			
		||||
  <div class="google-adsense-label"><h2>ADVERTISEMENT</h2></div>
 | 
			
		||||
  <div class="google-adsense-content" style={{adWrapperStyle}}>
 | 
			
		||||
    <ins class="adsbygoogle"
 | 
			
		||||
      style={{adInsStyle}}
 | 
			
		||||
      data-ad-client="ca-pub-{{publisher_id}}"
 | 
			
		||||
      data-ad-slot={{ad_code}}
 | 
			
		||||
      data-ad-format={{autoAdFormat}}>
 | 
			
		||||
    </ins>
 | 
			
		||||
  </div>
 | 
			
		||||
{{/if}}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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."
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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: ''
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue