Add-on [XenMods] Advertising

Daniel Hood

Well-known member
Ad Manager

I'm currently developing an advertisement manager. This addon will allow users of your site to purchase ad space. This is early on in development. I currently just have the ability to create campaigns and edit existing ones, add funds to your account via paypal, and displaying the ads in a "bd Widget Framework" widget. Screenshots are included.

The entire system can be configured to your preferences. The tab name, the titles of the pages, the page description, all the text for options when setting up a campaign, etc are controlled by phrases. Each widget has settings to control the width and height of the banners being displayed along with a setting for the default html to be rendered if there are no campaigns currently running for that widget.

Setting up a campaign is as easy as naming it, setting the target url, picking the ad slot (widget), and setting your bid along with the max budget for both life time and daily cap (0 if you don't want it to be capped until the life time budget is reached). The minimum bid is set in the admin panel.

Campaign.webp

I'm going to be adding a button next to "Delete" for attachments that allows you to pick which image is used for your campaign.

The main page when you view the ad center (named Advertise With Us on my site) is a page that shows your current funds with an input box to add funds.

Funds.webp

Currently PayPal is the only processor supported. You can set two options for adding funds: minimum amount and a processing fee. You can turn off either by setting to 0. Everything is in USD currently.

Once you enter in an amount you are prompted to confirm.

AddFunds.webp

It may take a minute to process but once Paypal notifies of completion, the funds are added to your account and you can set up your campaigns.

We log the number of impressions daily, lifetime impressions, and the number of clicks.

When you set up a campaign, if there are no others, you will be charged the minimum bid value. If there is another bid and you're way above it, you'll be charged a penny more than the next highest bid.

More screenshots coming soon. Admin panel still needs to be completed (which will show over all statistics for every campaign, the amount of advertisers, logs for each time funds are added to accounts, etc). The statistics page for advertisers still needs to be made also.

Let me know your suggestions or critiques.
 
Last edited:
Thank you for creating this! I remember asking for this in this thread and after the replies in there I thought it would be awhile before something like that got made until I made another thread on your site and lo and behold you decided it was a great idea and went through with it. This is really awesome and my most anticipated addon at the moment. I really appreciate you developing this especially seeing how Google Adsense has been screwing us over even when we do something as simple as monetizing our YouTube.
 
Finally. This is amazing news as similar to DRE I have wanted something like this for xenforo.

Feature Requests:
- Any chance for both impression bidding and fixed-rate ads for specified time lengths such as weekly or monthly with recurring payments.
- Discount codes?
- backfill with adsense/ad code?
- works with xfrocks pay gates? Would love to offer stripe payments in addition to PayPal

Question:
How does the bidding work? Is it you pay for specific I,press ions or compete against others? Any minimum bid?

Looks good so far.
 
- Any chance for both impression bidding and fixed-rate ads for specified time lengths such as weekly or monthly with recurring payments.

I am planning to have a date span option for campaigns.

- Discount codes?

I was originally going to make it where you purchase point packages but I thought a new currency would just be confusing. How would you want a discount code to work? Say I enter "discount" which is good for 10%, would I get $50 for $45?

- backfill with adsense/ad code?

Each widget allows for a default html section, if you want adsense there, you can put your adsense code. If you want a nice "advertise here" that links to the ad center, you can do that too.

- works with xfrocks pay gates? Would love to offer stripe payments in addition to PayPal

Currently does not, didn't know he had pay gates.

Question:
How does the bidding work? Is it you pay for specific I,press ions or compete against others? Any minimum bid?

You can set a minimum bid. The bidding works like this: if I bid $1.01 and you bid $3.00, your ad will run for $1.02 cpm rate until someone goes above me or you. You'll always bid $0.01 more than the next highest bid without going over your bid setting.

Looks good so far.

Thank you.
 
Was thinking discount would be permision based (select user groups allowed to use discount) and if you purchase 10k impression it might cost $10 instead of $20 with a 50% code. Perhaps limit number of uses and date range for discount.


Looks like this will be a day 1 purchase :D
 
This add on looks good.

Is there a way to allow advertisers to target an area? I had a Dallas transmission shop buy a banner spot on my forum for two months. Is there a way that they can decided that they only want to to show the banner to people from the Dallas area?

Can we have the option to allow both CPM and time base ad or just have one or the other?

Can we have the option to have to manually approve banners before they go up?

James
 
This add on looks good.

Thanks.

Is there a way to allow advertisers to target an area? I had a Dallas transmission shop buy a banner spot on my forum for two months. Is there a way that they can decided that they only want to to show the banner to people from the Dallas area?

Currently, I don't have plans for geotargeting. I could add it but it will either require you having database tables for ips/locations or pinging an external server, which I wouldn't mind if it was mine but it may eat a bunch of bandwidth so it'd probably be a monthly additional fee (the good news it'd only be necessary if the campaign had it set, so you could in theory charge the advertiser more for that service and it wouldn't effect you at all). I'll look into this, it probably won't be in the initial release.

Can we have the option to allow both CPM and time base ad or just have one or the other?

Well I imagine the time based ads would still be charged a cpm fee, it would just turn itself off after the date range is up instead of when the life time budget is reached.

Can we have the option to have to manually approve banners before they go up?

James

I can add that.
 
What do you mean by define your own ad specs?
Daniel,

Let me make a disclaimer - I'm not really aware of what are the planned / implemented features of the add-on. But I'll let you know what I'd like to have in the add-on.

What We Do:-

1. Have a media kit put up as a page that informs the advertisers about the ad-spots available on the site and gives them an insight about the audience profile.

2. We ask advertisers to contact us through a contact us form and then we handle all the negotiations with them.

What we'd like to have -

1. Display a page to the advertisers that gives them necessary information [how about providing information about traffic to the forum for the past 30 days?]

2. As a publisher, I define several spots on the site (may not be standard IAB sizes) and define a CPM / Flat Rate for each of the ad-spots.

3. Advertiser goes to "Buy Advertisement" page on the site, gets various options to a) pick up the spot b) define the duration of the campaign c) upload the banners and set a start date (which would be determined by availability of the space) d) they get options on how many impressions will they get for the amount they've specified. etc.

4. Advertiser sets up everything and makes the payment. The administrator / moderator (usergroup permissions based) approves the banner and the overall engagement. Once the campaign is approved, it goes live on the set date and time and remains live.

The idea here is to completely automate everything. Like our own miniature ad-words, adsense program.

If this can be developed, I'll be willing to pay about $100 for a license.
 
1. Display a page to the advertisers that gives them necessary information [how about providing information about traffic to the forum for the past 30 days?]

Like how many page visits? or would you rather display forum stats like: threads, posts, members logged in for the past month and then the same information for the past week?

2. As a publisher, I define several spots on the site (may not be standard IAB sizes) and define a CPM / Flat Rate for each of the ad-spots.

This is half way how it is: you can pick any template hook and/or any page (or all) to display a widget (our ad slots are widgets powered by bd Widget Framework), you define the width and height of the banners for that section. Currently, there's just a global CPM minimum but after thinking about it and responding to these posts. I'll probably make each widget have it's own definable cpm. Flat rate I assume would be like $x/day? I could probably factor that in.

3. Advertiser goes to "Buy Advertisement" page on the site, gets various options to a) pick up the spot b) define the duration of the campaign c) upload the banners and set a start date (which would be determined by availability of the space) d) they get options on how many impressions will they get for the amount they've specified. etc.

4. Advertiser sets up everything and makes the payment. The administrator / moderator (usergroup permissions based) approves the banner and the overall engagement. Once the campaign is approved, it goes live on the set date and time and remains live.

Currently, when the user adds them, it just adds it. I can change this to require approval though (based on settings).

The idea here is to completely automate everything. Like our own miniature ad-words, adsense program.

If this can be developed, I'll be willing to pay about $100 for a license.

That is the goal. I'm looking at between a $50-75 license. Might do $50 with 6 months of updates, $20 per 6 months after that. Not entirely sure about how to do the pricing.
 
I have decided per this post: http://xenforo.com/community/threads/managing-directly-sold-ads.56710/page-2#post-631614 to do an alpha release for a discounted price. This addon (as of right now) is going to be $50. If you buy it at this point, you will receive free updates until the official release is done along with a year of updates after that, and then it'll be $25 per year for updates after that. The year does not start until it's completely done and ready for release. As a benefit for buying it early and helping work out the bugs and suggesting improvements, you get a $15 discount.

You can purchase the add on here: http://xenmods.com/cart/product/xenmods-advertising-dev.8/. I project Nov 1st for a complete release. Here's a screenshot of the "Your Campaigns" page:

your_campaigns.webp

On the advertiser end, the only thing they can't do so far is view daily stats.

Admin end is still undeveloped (aside from changing the 3 options in the first post, phrases, and setting the ad slots via widgets).

*I can't edit the first post of this thread for some reason to add the screenshot there too.
 
Like how many page visits? or would you rather display forum stats like: threads, posts, members logged in for the past month and then the same information for the past week?

Well, most of the advertisers or advertising agencies we've worked with demand for
  • Latest monthly stats
  • Overall profile of the audience
  • Monthly impressions (for CPM)
We currently have all of this information in our Media Kit - which we've to update manually after regular intervals. If the add-on could display all the important information automatically (like visitors / pageviews in last 30 days), there would be a lot of time saving.

Not a single advertiser so far has asked about forum stats.

This is half way how it is: you can pick any template hook and/or any page (or all) to display a widget (our ad slots are widgets powered by bd Widget Framework), you define the width and height of the banners for that section. Currently, there's just a global CPM minimum but after thinking about it and responding to these posts. I'll probably make each widget have it's own definable cpm. Flat rate I assume would be like $x/day? I could probably factor that in.

There would be buyers who'd want to buy CPM, with fixed budget and there'd be advertisers who'd go for weekly/monthly/quarterly sponsorship irrespective of the impressions.

Plus, we've different CPMs / Fixed Rates for different spots. The spot at the top attracts max CPM/fixed rate while others get lesser.


Currently, when the user adds them, it just adds it. I can change this to require approval though (based on settings).
That'd be cool. I should have the power to approve the banners uploaded by the advertiser and approve the overall campaign as well. That is, if the advertiser pays online and there's any problem with the transfer, ads shouldn't go live unless I've approved them.

That is the goal. I'm looking at between a $50-75 license. Might do $50 with 6 months of updates, $20 per 6 months after that. Not entirely sure about how to do the pricing.
If the add-on makes sure that I don't have to 'sell' the ad-spots to the advertisers and advertisers get what they want (reports, ability to create campaigns et al), I don't mind paying $100, plus annual subscription fee for updates and features.

I'd ideally like to see this add-on does the job of Google Doubleclick for Publishers. I don't want all the features (aka Geotargetting, zones, etc.) but all the features that suit a large publisher / advertiser. :)
 
Well, most of the advertisers or advertising agencies we've worked with demand for
  • Latest monthly stats
  • Overall profile of the audience
  • Monthly impressions (for CPM)
We currently have all of this information in our Media Kit - which we've to update manually after regular intervals. If the add-on could display all the important information automatically (like visitors / pageviews in last 30 days), there would be a lot of time saving.

Not a single advertiser so far has asked about forum stats.

Unfortunately, I think you may still have to manually update these stats once a month. XenForo does not log that much about visits and stuff, I recommend using Google Analytics, which I could possibly fetch that data from, that'll be down the road though. In the mean time I'd recommend updating the phrase that controls that text. Pretty much all text within the add on uses phrases.

There would be buyers who'd want to buy CPM, with fixed budget and there'd be advertisers who'd go for weekly/monthly/quarterly sponsorship irrespective of the impressions.

Plus, we've different CPMs / Fixed Rates for different spots. The spot at the top attracts max CPM/fixed rate while others get lesser.

I'm going to be factoring the different cpm for different widgets (ad spots) today. Fixed rates/durations are going to be soon (no promises on when but it is a priority).

That'd be cool. I should have the power to approve the banners uploaded by the advertiser and approve the overall campaign as well. That is, if the advertiser pays online and there's any problem with the transfer, ads shouldn't go live unless I've approved them.

I agree with approving campaigns. Money wise, they won't be able to start a campaign until PayPal tells the system funds were added. I'll put a system in place to handle Cancels/Refunds, it's already there I just didn't think too much about it before and it'd allow the person to have a negative balance if they started a campaign with refunded money, it doesn't take the campaign(s) offline though, it will.

If the add-on makes sure that I don't have to 'sell' the ad-spots to the advertisers and advertisers get what they want (reports, ability to create campaigns et al), I don't mind paying $100, plus annual subscription fee for updates and features.

Please elaborate on the "reports", my current plan is a graph showing all the days they had activity. This graph will show each day's click count, impression count, and money used.

I'd ideally like to see this add-on does the job of Google Doubleclick for Publishers. I don't want all the features (aka Geotargetting, zones, etc.) but all the features that suit a large publisher / advertiser. :)

I've never used Google Doubleclick. It should suffice though :)
 
Have been thinking about this add-on for a few hours, and I started to wonder, won't this be kind resource intensive to run? My forum gets 20,000 page views or more per day, and I'm worried the VPS I'm using won't be able to handle the additional load....
 
Have been thinking about this add-on for a few hours, and I started to wonder, won't this be kind resource intensive to run? My forum gets 20,000 page views or more per day, and I'm worried the VPS I'm using won't be able to handle the additional load....

You should be fine. It does add a few queries, none are big though (assuming you don't have tens of thousands of campaigns). It requires a query to get the widgets and two queries per ad slot (one to get the highest bidding campaign that's active and one to update the impression count). These queries should be very quick as I indexed the fields that will be run plus it's not like posts, you aren't going to have millions of entries. If you have several ad slots, rendering the images (since they're hosted on your server) could potentially slow the page load, but I feel it won't have much effect.

[EDIT]

Here's my debug mode:

  1. SELECT * FROM xmadvertising_campaign
    WHERE
    (lifetime_budget > lifetime_used)
    and (daily_budget > daily_used or daily_budget = 0)
    and widget_id = ? and active = 1
    ORDER BY bid DESC LIMIT 2
    Params: 28
    Run Time: 0.000360
  2. SELECT campaign.*
    FROM xmadvertising_campaign as campaign
    WHERE campaign.campaign_id = ?
    Params: 1
    Run Time: 0.000363
  3. begin
    Run Time: 0.000095
  4. UPDATE `xmadvertising_campaign` SET `daily_used` = ?, `lifetime_used` = ?, `daily_impressions` = ?, `lifetime_impressions` = ? WHERE (campaign_id = 1)
    Params: 2.122, 6.33, 2122, 17906
    Run Time: 0.000213
  5. commit
    Run Time: 0.000071

Turns out it uses an extra one (guessing due to how XenForo_DataWriter::setExistingData() works?). Either way, quick. Granted I only have 3 campaigns, with only 1 active in my database.
 
Last edited:
Can you sell ads and then serve them via Robbo's Ad Manager?

Is there an option for the buyer to upload a banner? Can ad serving start on the fly with completed purchase or do they always require manual approvel?
 
Can you sell ads and then serve them via Robbo's Ad Manager?

No, I don't have access to his ad manager and I'm not entirely sure why you would want to do that though.

Is there an option for the buyer to upload a banner?

No option, but they need to by default or we have no image to display.

Can ad serving start on the fly with completed purchase or do they always require manual approvel?

Currently no approval system is in place at all, they deposit funds, start a campaign, it shows instantly (assuming nobody is beating their bid).
 
No option, but they need to by default or we have no image to display.

If there is no upload option how does the buyer get the site the banner they want to use when they purchase a campaign?

Also is there an option to add 3rd party code to show adsense.. commission junction etc if the slot has not yet been purchased by anyone?
 
If there is no upload option how does the buyer get the site the banner they want to use when they purchase a campaign?

Think I misunderstood. I was thinking an option like a toggle switch in the admin panel (which there isn't). I use the attachment system from every other part of XenForo to handle uploads. This is shown in the first screenshot of the original post.

Also is there an option to add 3rd party code to show adsense.. commission junction etc if the slot has not yet been purchased by anyone?
When you set a widget for the ad slot, there is an option for default html, you can paste your adsense code there. If there's no active campaigns for that ad slot, the html code you choose will be rendered. This can be used for an "advertise here" link, adsense code, or any other html.
 
Top Bottom