Add group options to Advertising Plugin


#1

Continuing the discussion from Advertising Plugin for Discourse - Serve Ads on your Discourse Forum (Official Endorsed):

So… it would be great if the Advertising Plugin for Discourse has got the option to show/hide ads for specific user group.


(Mariano Rodriguez) #2

I’m in with this feature request, I’m starting to use Patreon and I’d like to offer a tier with no ads in the site. Would this feature be too difficult to implement?


#3

This is also what I came looking for. I’ll probably grant relevant trust to patreon subs until then, but that does indeed feel inappropriate.


(Bart) #4

It would be great to get some feedback from the developers of this plugin. If it’s not on the roadmap I’m willing to sponsor the development of this feature.


#7

Any update?

I’m just thinking… there is no javascript code to “detect” the user group for hide the ads by DOM? :thinking:


(Bart) #8

I’ve achieved this with the following code that adds the users’s groups to the body tag:

<script>
// https://meta.discourse.org/t/css-classes-for-group-membership-for-simplified-ui-mode/60838/2
if (window.jQuery) {
    window.jQuery(function ($) {
        var u = Discourse.User.current();
        if (u !== null){
            u.findDetails().then(function(u) {
                // console.log(u.groups);
    	        var arrayLength = u.groups.length;
                for (var i = 0; i < arrayLength; i++) {
    	            $('body').addClass('group-'+u.groups[i].name);
    	        }
            });
        }
    });
};
</script>

This code performs one additional call to the Discourse API to fetch the group information, but only once during the initial page load so the impact is minimal.

Next, target the right groups in CSS and hide banners for them:

/* remove ads for Patreon supporters */
.group-patreon-casual .google-adsense,
.group-patreon-commercial .google-adsense,
.group-patreon-serious .google-adsense {
	display:none;
}

Turn off Ads for a User Group or Groups?
AdSense Auto ads