FEAT: ads.txt support

Adds a plugin setting that holds text content served on a new /ads.txt route.
This commit is contained in:
Penar Musaraj 2019-02-04 16:14:43 -05:00
parent 79d5f144a6
commit d6af1d2e20
3 changed files with 98 additions and 76 deletions

View File

@ -51,6 +51,7 @@ en:
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."
adsense_ads_txt: "Contents of your ads.txt file. More details available at <a href='https://support.google.com/adsense/answer/7532444?hl=en' target='_blank'>this Google AdSense help page</a>."
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"

View File

@ -1,20 +1,20 @@
adsense_plugin:
adsense_publisher_code:
client: true
default: ''
default: ""
regex: '^[\d]*$'
adsense_through_trust_level:
client: true
default: 2
enum: 'TrustLevelSetting'
enum: "TrustLevelSetting"
adsense_topic_list_top_code:
client: true
default: ''
default: ""
max: 50
regex: '^[\d]*$'
adsense_topic_list_top_ad_sizes:
client: true
default: '728*90 - leaderboard'
default: "728*90 - leaderboard"
type: enum
choices: &adsense_choices
- responsive
@ -36,94 +36,98 @@ adsense_plugin:
- 690*250
adsense_mobile_topic_list_top_code:
client: true
default: ''
default: ""
max: 50
regex: '^[\d]*$'
adsense_mobile_topic_list_top_ad_size:
client: true
default: 'responsive'
default: "responsive"
type: enum
choices: *adsense_choices
adsense_topic_above_post_stream_code:
client: true
default: ''
default: ""
max: 50
regex: '^[\d]*$'
adsense_topic_above_post_stream_ad_sizes:
client: true
default: '728*90 - leaderboard'
default: "728*90 - leaderboard"
type: enum
choices: *adsense_choices
adsense_mobile_topic_above_post_stream_code:
client: true
default: ''
default: ""
max: 50
regex: '^[\d]*$'
adsense_mobile_topic_above_post_stream_ad_size:
client: true
default: 'responsive'
default: "responsive"
type: enum
choices: *adsense_choices
adsense_topic_above_suggested_code:
client: true
default: ''
default: ""
max: 50
regex: '^[\d]*$'
adsense_topic_above_suggested_ad_sizes:
client: true
default: '728*90 - leaderboard'
default: "728*90 - leaderboard"
type: enum
choices: *adsense_choices
adsense_mobile_topic_above_suggested_code:
client: true
default: ''
default: ""
max: 50
regex: '^[\d]*$'
adsense_mobile_topic_above_suggested_ad_size:
client: true
default: 'responsive'
default: "responsive"
type: enum
choices: *adsense_choices
adsense_post_bottom_code:
client: true
default: ''
default: ""
max: 50
regex: '^[\d]*$'
adsense_post_bottom_ad_sizes:
client: true
default: '728*90 - leaderboard'
default: "728*90 - leaderboard"
type: enum
choices: *adsense_choices
adsense_mobile_post_bottom_code:
client: true
default: ''
default: ""
max: 50
regex: '^[\d]*$'
adsense_mobile_post_bottom_ad_size:
client: true
default: 'responsive'
default: "responsive"
type: enum
choices: *adsense_choices
adsense_nth_post_code:
client: true
default: ''
default: ""
min: 1
adsense_ads_txt:
client: false
default: ""
textarea: true
dfp_plugin:
dfp_publisher_id:
client: true
default: ''
default: ""
dfp_through_trust_level:
client: true
default: 2
enum: 'TrustLevelSetting'
enum: "TrustLevelSetting"
dfp_topic_list_top_code:
client: true
default: ''
default: ""
max: 50
dfp_topic_list_top_ad_sizes:
client: true
default: '728*90 - leaderboard'
default: "728*90 - leaderboard"
type: enum
choices: &dfp_choices
- 728*90 - leaderboard
@ -161,102 +165,102 @@ dfp_plugin:
- 168*28
dfp_mobile_topic_list_top_code:
client: true
default: ''
default: ""
max: 50
dfp_mobile_topic_list_top_ad_sizes:
client: true
default: '320*50 - mobile leaderboard'
default: "320*50 - mobile leaderboard"
type: enum
choices: *dfp_choices
dfp_target_topic_list_top_key_code:
default: ''
default: ""
type: value_list
client: true
dfp_target_topic_list_top_value_code:
default: ''
default: ""
type: value_list
client: true
dfp_topic_above_post_stream_code:
client: true
default: ''
default: ""
max: 50
dfp_topic_above_post_stream_ad_sizes:
client: true
default: '728*90 - leaderboard'
default: "728*90 - leaderboard"
type: enum
choices: *dfp_choices
dfp_mobile_topic_above_post_stream_code:
client: true
default: ''
default: ""
max: 50
dfp_mobile_topic_above_post_stream_ad_sizes:
client: true
default: '320*50 - mobile leaderboard'
default: "320*50 - mobile leaderboard"
type: enum
choices: *dfp_choices
dfp_target_topic_above_post_stream_key_code:
default: ''
default: ""
type: value_list
client: true
dfp_target_topic_above_post_stream_value_code:
default: ''
default: ""
type: value_list
client: true
dfp_topic_above_suggested_code:
client: true
default: ''
default: ""
max: 50
dfp_topic_above_suggested_ad_sizes:
client: true
default: '728*90 - leaderboard'
default: "728*90 - leaderboard"
type: enum
choices: *dfp_choices
dfp_mobile_topic_above_suggested_code:
client: true
default: ''
default: ""
max: 50
dfp_mobile_topic_above_suggested_ad_sizes:
client: true
default: '320*50 - mobile leaderboard'
default: "320*50 - mobile leaderboard"
type: enum
choices: *dfp_choices
dfp_target_topic_above_suggested_key_code:
default: ''
default: ""
type: value_list
client: true
dfp_target_topic_above_suggested_value_code:
default: ''
default: ""
type: value_list
client: true
max: 50
dfp_nth_post_code:
client: true
default: ''
default: ""
min: 1
dfp_post_bottom_code:
client: true
default: ''
default: ""
max: 50
dfp_post_bottom_ad_sizes:
client: true
default: '728*90 - leaderboard'
default: "728*90 - leaderboard"
type: enum
choices: *dfp_choices
dfp_mobile_post_bottom_code:
client: true
default: ''
default: ""
max: 50
dfp_mobile_post_bottom_ad_sizes:
client: true
default: '320*50 - mobile leaderboard'
default: "320*50 - mobile leaderboard"
type: enum
choices: *dfp_choices
dfp_target_post_bottom_key_code:
default: ''
default: ""
type: value_list
client: true
dfp_target_post_bottom_value_code:
default: ''
default: ""
type: value_list
client: true
@ -264,98 +268,98 @@ amazon_plugin:
amazon_through_trust_level:
client: true
default: 2
enum: 'TrustLevelSetting'
enum: "TrustLevelSetting"
amazon_topic_list_top_src_code:
client: true
default: ''
default: ""
amazon_topic_list_top_ad_width_code:
client: true
default: ''
default: ""
amazon_topic_list_top_ad_height_code:
client: true
default: ''
default: ""
amazon_mobile_topic_list_top_src_code:
client: true
default: ''
default: ""
amazon_mobile_topic_list_top_ad_width_code:
client: true
default: ''
default: ""
amazon_mobile_topic_list_top_ad_height_code:
client: true
default: ''
default: ""
amazon_topic_above_post_stream_src_code:
client: true
default: ''
default: ""
amazon_topic_above_post_stream_ad_width_code:
client: true
default: ''
default: ""
amazon_topic_above_post_stream_ad_height_code:
client: true
default: ''
default: ""
amazon_mobile_topic_above_post_stream_src_code:
client: true
default: ''
default: ""
amazon_mobile_topic_above_post_stream_ad_width_code:
client: true
default: ''
default: ""
amazon_mobile_topic_above_post_stream_ad_height_code:
client: true
default: ''
default: ""
amazon_topic_above_suggested_src_code:
client: true
default: ''
default: ""
amazon_topic_above_suggested_ad_width_code:
client: true
default: ''
default: ""
amazon_topic_above_suggested_ad_height_code:
client: true
default: ''
default: ""
amazon_mobile_topic_above_suggested_src_code:
client: true
default: ''
default: ""
amazon_mobile_topic_above_suggested_ad_width_code:
client: true
default: ''
default: ""
amazon_mobile_topic_above_suggested_ad_height_code:
client: true
default: ''
default: ""
amazon_post_bottom_src_code:
client: true
default: ''
default: ""
amazon_nth_post_code:
client: true
default: ''
default: ""
min: 1
amazon_post_bottom_ad_width_code:
client: true
default: ''
default: ""
amazon_post_bottom_ad_height_code:
client: true
default: ''
default: ""
amazon_mobile_post_bottom_src_code:
client: true
default: ''
default: ""
amazon_mobile_post_bottom_ad_width_code:
client: true
default: ''
default: ""
amazon_mobile_post_bottom_ad_height_code:
client: true
default: ''
default: ""
codefund_plugin:
codefund_property_id:
client: true
default: ''
default: ""
codefund_advertiser_label:
client: true
default: 'Advertiser'
default: "Advertiser"
codefund_advertiser_short_label:
client: true
default: 'Ad'
default: "Ad"
codefund_through_trust_level:
client: true
default: 2
enum: 'TrustLevelSetting'
enum: "TrustLevelSetting"
codefund_nth_post:
client: true
default: 4

View File

@ -5,3 +5,20 @@
# url: https://github.com/discourse/discourse-adplugin
register_asset "stylesheets/adplugin.scss"
after_initialize do
require_dependency 'application_controller'
class ::AdstxtController < ::ApplicationController
skip_before_action :check_xhr
def index
raise Discourse::NotFound unless SiteSetting.adsense_ads_txt.present?
render plain: SiteSetting.adsense_ads_txt
end
end
Discourse::Application.routes.append do
get '/ads.txt' => "adstxt#index"
end
end