Gossamer Forum
Home : Products : Gossamer Links : Version 1.x :

Banner Rotation, AdvertPro, and Links SQL

Quote Reply
Banner Rotation, AdvertPro, and Links SQL
I've been twidling with this and the next version of links. Trying to get my feet wet. You'll see test banners showing up in the beta faq (see the New Links) forum as I work on it.

But, after we've made the decision to kill the last of the click-banner programs, I finally have a way to describe these services (I have 20+ months of stats to back it up):

CPC: A way for advertisers who want click-through traffic not to pay for it.
CPM: A way for advertisers who want display advertising not to pay for it.

What this means, is that CPC banners tend to get no clicks, but broad-display (up to 70% or more of available impressions), while the CPM banners get more limited display, and up to 6.7% click-through rate.

This is an advisory warning, that in any banner program I work on, I'm going to make it ferret out this stuff, and display it prominently.

I'm curious how other sites have dealt with this, or if no one has bothered to look at their stats from the advertising "services" such as ValueClick and FocusIn. Don't even get me started on the "affiliate" programs :( those rates are significantly worse, and last year's holiday traffic/stats reports still haunt me.

I'm viewing the advertising module from the point of view of SELLING (not giving away) advertising space. That means limited support for "services" and "affiliate" programs, and better support for targeted display (pre-paid) banners.

Since this is going to probably be based on the AdvertPro engine, a commercial poduct, it's not targeted at smaller sites.

So, I'm curious how you all view this....

Where does your revenue stream come from? (banner/advertising wise).


PUGDOGŪ
PUGDOGŪ Enterprises, Inc.
FAQ: http://postcards.com/FAQ


Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
Pugdog,

This may well be off-topic (I'm not sure if you're looking for 'program' thoughts or about advertising in general), but:

My biggest bug-bear with internet ads is "commission" based campaigns. In effect someone has to do the following: 1) View the ad - 2) Click on the ad - 3) View the merchants products - 4) Select the products - 5) and purchase them ... ALL IN ONE SESSION!!!

I've found, through over a year of trialing and testing such campaigns that they simply don't work for the publisher (the site displaying the ads) as the requirement for someone to do all the above in one sitting is extremely rare. Ask yourself when was the last time you bought something without shopping around first?

What effectively happens is that for 99.9% of the time the publisher gives away ad-space and helps the merchant increase their branding - all for little or nothing in return! I've dropped virtually every one of my 'commission' based ads, in favour of CPM and CPC (at least you get something for CPM and CPC ads).

Despite all that, the CPM market is currently in a down-turn because the investment in new .com's has decreased, and the increase in the number of new sites offering ad-space means there are currently more ad-spaces than ads. The CPC market also doesn't earn you a great deal unless you have 'massive' traffic, but it is a way of getting something for your ads when someone clicks on them (unlike the commission based ads where the clicks earn you nothing for the majority of the time).

The best source of advertising revenue comes from a 'direct' campaign where you deal directly with an advertiser or agency for a specific 'buy' from you site. You get 100% of the campaign value since there is no middle-man (most CPM networks take a 'cut' of the revenue for supplying you with ads - which is fine if you can't attract the 'big' advertisers).

I often look-in on the following forum where publishers talk all the time about the various campaign types, agencies/networks, and the state of net-advertising in general, and its a good place to go for an all-round perspective on what's happening:

http://gethighforums.com/...ne=30&LastLogin=

I've personally taken the time to setup 400+ target regions within my Qango sites and provide a full and comprehensive set of information pages for potential advertisers. If you want to have a look at how I approach my ad-sales, take a look here (there's lots of info on what I offer, and a rate card so that people can see what's available right away without having to email for info!):

http://www.qango.com/...cs/info/advertising/ - this isn't a sales pitch, rather an example of how I approach my ad-sales for Qango.

I'm of the mind that as a publisher my ad-space has real 'value'. Newspapers and magazines don't run ad campaigns and then ring the client afterwards asking "Did you make any sales/leads?", and then bill the client based on the sales/leads that the ad generated. In the same way, I want advertisers to pay for using my ad-space. But, whilst it is always best to 'sell' the space and earn revenue each time you display an ad for a client, the reality is that you need to be really 'big' to earn the top-dollar for your space, otherwise you have to make the best of what's available and take what you can!


All the best
Shaun

Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
I do appreciate that. For awhile I really thought I was alone :)

From that point of view, then, what do you need in a banner management/ad management system?



PUGDOGŪ
PUGDOGŪ Enterprises, Inc.
FAQ: http://postcards.com/FAQ


Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
BTW... I looked at your site (you've come a long way, all those late nights have paid off) and your advertiser section is really great.

Should be a good guideline for people to follow.

You've broken your site down into zones and regions similar to the way I have, (at least on paper), but I have also added the sidebar for 120x30/60/90/120/240 banners, which can hold up to 5 banners (I'm still trying to figure out a non-intensive way of letting sidebar only hold 5 banners or 15 - 30 pixel units of advertising -- ie: 5 120x90 banners max. (my pages go deep enough to display that next to content on 99% of all pages) That means a 120x240 banner would be paired with at most two other banners (complicated, but I know what I'm trying to do <G>)

I think you had said you were using advertpro, so how did you create the overlapping zones/etc.

What I want to do, in the long run, is something I said in a previous very, very long winded post a few months ago.

1) Advertisers set up accounts.

2) They can add banners to their accounts either as general banners (default group) or as banner-families (related banners that would be rotated/displayed together).

3) A banner is a single sort of display unit that may come in any of the 5 or 7 sizes supported by industry standards, and/or the site. (So banner Red_dress_01a can have sizes 468x60, 234x60, 120x60, 88x31, etc). If the banner is selected for a region, only the correct size would display, if available).

4) The site is divided into display slots (usually called regions)

5) These regions (display slots) are grouped into zones, which are just groups of regions.

6) A campaign would consist of banner-families and regions or zones.

7) An advertiser creates campaigns by selecting banners and banner-families and inserting them into a group. That group is then displayed/deployed over a group of zones.

8) A publisher, determines regions (banner slots) and zones, and rules for those display areas (such as CPC/CPM,etc).

It's complicated, especially on first read, but the more I play with this, the more simple it seems.

Any thoughts? Comments? Anyone??


PUGDOGŪ
PUGDOGŪ Enterprises, Inc.
FAQ: http://postcards.com/FAQ


Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
Interesting Thread...a bit robust for my banner exchange project...but interesting.

One thing I would like to "throw in the pot" is the flexibility to not ONLY create campaigns, but easily modify them, so that if advertisers want to change the zone, size, etc., they can easily do this...one suggestion might be to have separate tables for the sizes or an AKO structure to connect between the advertiser account and banner tables. I know this might be a "given", but it was not explicitly stated above.

Regards,

Eliot Lee
Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
Well, in my plan above, because a banner is a set of banners of different sizes, this should be taken into account automatically.

The only "errors" it should print out are warnings if the selected campaigns do not contain any banners for the selected zones or regions.

Flexibility is my key operating goal here. In looking at the problem, I have a problem with the management features of most programs -- now (before setting up) -- and looking down the road on how to update and expire or continue existing campaigns.

I'm trying to find a way to allow the advertisers to manage their rotations/zones, and have that automatically figured into their account debits. That way, if an advertiser wants to pull a banner, or change a rotation, they can, on a space-available basis.

I'm not sure what you mean by the sizes, but here's a go at what I'm planning-- see if it fits your needs.

1) Figure the account is set up,and the advertiser is uploading new banners.
2) on the create screen, there is a way to upload one banner for each of the 7 or 8 sizes (or the sizes supported by the site).
3) A "banner" is thus an "object" with a polymorphic behaviour (sort of).
4) Once banners are entered, the advertiser can add them to a banner-family.
A banner-family is a group of related banners that can be rotated together.
For example, a banner promoting a certain style dress in 4 different patterns.
5) So far there is "no charge" incurred for this.
6) A campaign is where banners or banner families are grouped with regions or zones. This is something that does have a price assigned to it, either in a CPC or CPM sort of method. Maybe in a combination, due to the zones displayed in.
7) The advertiser can pick the number of displays, clicks or length of time each banner is to run, and then the length of time a campaign is to run. Banners that expire before the end of a campaign, are retired as they come due.
8)The publisher picks the price of each region (slot) and/or the price of each Zone. If a zone has a price, it overrides the region (slot) pricing. If not, the prices for each individual region can be used. An advertiser and/or zone discount can be applied.

Did I miss anything?

PUGDOGŪ
PUGDOGŪ Enterprises, Inc.
FAQ: http://postcards.com/FAQ


Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
Also, the more processing a banner rotation script has to do to serve a banner, the slower the performance of the system.

The more that is inherent in the design of the system, the better.

Perhaps delegating the expiring of campaigns and ads to a cron job or as a daemon running in the background would solve many of the problems. The banner script concentrates only on pulling from the pool of existing banners, and the cron job/daemon managers what those banners actually are. An advertiser could get an extra exposure or impression, but that is not a "bad" thing, in and of itself.

PUGDOGŪ
PUGDOGŪ Enterprises, Inc.
FAQ: http://postcards.com/FAQ


Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
In Reply To:
Perhaps delegating the expiring of campaigns and ads to a cron job or as a daemon running in the background would solve many of the problems.
I would recommend adding a field called Active (Like what Monster.com does with its job and resume postings), then it would allow advertisers to expire or re-active advertisement campaigns. I am doing this with upgrading my Resume Postings (with the current version using DBMAN, I have the employers choose a number of days to run the ad and with resumes the default deletion period is 120 days, and then I run a script via Cron that checks the records by date added and remove date) feature I am working on. In the new upgraded feature, prospective employees and employers can activate or de-activate (expire) their resumes. I have learned a lot from my users who have complained that when their jobs/resumes are deleted, they have to re-enter their data. The employers re-open positions all the time and prospective employees like the flexibility of activating/de-activating since they do not have to spend more time re-enter data.

The main reason that I recommend an Active (ENUM ('Y','N')) field is that outright automatically deleting advertisements will raise frustrations of advertisers who would have to re-enter their information to re-active advertisment campaigns.

Another suggestion is tying the advertisement system with the Links table. I have done this for my banner exchange (although I am still working on the view bugs) that only Link Owners can add one banner per link they add and they cannot add a banner without first selecting a link they've added. When they select a link, then they are redirected to the Banner form where some of the fields, including Title are already filled in with the value from the associated record in the Links table. I have added a field for the LinkID that pulls the URL from the Links table, rather than re-printing the URL in the Banner table.

Regards,

Eliot Lee
Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
I agree on not deleting anything. "expiring" an ad just takes it from the active pool into the expired pool or used up pool.

As far as the link/banner. I can see that as a feature a site owner might want to offer, but for my needs, I don't have a use for that. It shouldn't be too hard to do in any system.

All the link would need is a field "banner" Y/N. The banner would just need a field "LinkID". Everything else would be in the various other database records. The only reason the Link field would need a banner flag is for performance. If most links don't have banners, it's a simple 'if' test, rather than a database query.

Keep it up. More things to work on :)

PUGDOGŪ
PUGDOGŪ Enterprises, Inc.
FAQ: http://postcards.com/FAQ


Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
OK here's my thoughts on how it could better manage accounts from the advertisers POV:

We'd need to have an account balance, which can be added to the account screen/table and be maintained by the software and Admin. Possibly a method of recording payments made to top-up the account as well so we get an account statement of sorts if there are any disputes with clients?

Then we'd need a system of deducting the relative amounts from the account balance based on the ads that we display/that get clicked.

Essentially there are two ways to go about this, either we set a flat rate for each 'zone/area/region/group', or set the rates for each individual advertiser.

To do it for the zones/regions is the simplest - we'd just need to add a 'rate' setting to the region, i.e.; CPM = $?, CPC = $?. This would enable the adveriser to select the rate they wish to use for that specific region (if only one amount is set it can become the default). The advertiser can then set the "max clicks" or "max impressions" from the banner account, and each impression/click is deducted from their balance based on its set rate!

To do it for each individual advertiser (the not-so-simple method), we'd need a method of identifying which types of ads we are offering so we can set a rate specific to that advertiser;

Ad Type Name:
Ad Model: Image/Text
Ad Width (Image ad): ___
Ad Height (Image Ad): ___
Ad Max. Characters (Text ad): ___

E.g.;

Full Banner, Image, 468, 60,
Half Banner, Image, 234, 60,
Button 1, Image, 120, 90,
Button 2, Image, 120, 60,
Micro Button, Image, 88, 31,
Text Long, Text, , , 200
Text Medium, Text, , , 120
Text Short, Text, , , 60

Somewhere on the account screen we'd add a section for Rates where we can set the ad-type available to them and what rate we are charging for this specific advertiser, i.e.;

Account Name: inserted already
Ad Type: select list generated from 'ad-types' table
Cost Per Impression (CPM): $____ (only fill-out one charge rate!!)
Cost Per Click (CPC): $____

The 'rates' table will then hold the account name, the ad-type, and the rates for either CPM or CPC (we can't bill for both at the same time for the same ad!!).

In the 'regions' settings we can put which 'ad-type' will be used by that region, allowing us to identify what we look for when calculating the 'rate' to deduct from the account balance.

On the banner[/i] screen we can first 'ask' which ad-type they want to use and pre-select the groups/zones/regions based on those available for this ad-type. We can also use the 'account name' to pre-set the rates we are charging, and offer either a "max clicks" or "max impressions" input boxes.

Then when we call a banner:

get region for banner call
get ad-type (from the region settings)
get active banner for this region
get account name for banner

Now we can use the info to query the 'rates' table and deduct from the account:

account name, ad-type > looks in the rates table for current charge rate
choice > gets the respective rate that has an amount filled-in (either CPM or CPC)
if choice = CPM > add 1 to impression count and deduct 'rate' from account balance > if impressions = max impressions, set banner to 'off'
if choice = CPC > add 1 to impression count and, if clicked, deduct 'rate' from account balance > if total clicks = max clicks, set banner to 'off'
etc.

I'm sure there's a lot more to it than that, and my logic probably has a lot of flaws, but its a start and I'm sure others can find additional things that could be done with such a system and maybe find easier ways of managing all the account balancing, etc.

Anyway, I've got to get on with my site management so I'll leave this with you other 'big thinkers' and see what you make of it Smile


All the best
Shaun

Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
I'm still working on this, and the more I play with the advertising programs, the more problems I see. I can understand why many companies build their own, or why there are probably multi-thousand dollar programs out there for different markets.

Anyway, how do you integrate the purchasing pattern/desires of your customers (from your advertising grid) onto the AdvertPro system?

Have you created all the possible permutations of regions into zones? Or is there a way for zones to be dynamically generated (like I'm trying to do)

PUGDOGŪ
PUGDOGŪ Enterprises, Inc.
FAQ: http://postcards.com/FAQ


Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
Shaun,

I checked out that forum you pointed to... and i have to say, I'm totally, and thouroughly depressed.

In between the gripes, are the real horror stories, of sites with 6.5 million slots, and no advertisers, and advertisers promising up to $40/CPM but paying less than $1 in actuality.

What's even more depressing are the sites managing to get $2 or more per M and COMPLAINING!!! I'd happier than a pug in a pasta factory if I could get that for my inventory! I totaled up FocusIN, and they paid $0.17/M for my inventory last month. Needless to say, they are history.


PUGDOGŪ
PUGDOGŪ Enterprises, Inc.
FAQ: http://postcards.com/FAQ


Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
Things seem to have died off on a number of fronts (these forums not withstanding!)

I've taken a good hard look at AdCycle (even in his code he regrets some of the initial hard-coding) and I have played with AdvertPro trying to integrate that with Links, and with a couple of other programs.

I have a few questions that I'd like a little feedback on.

Is there a preference for banners stored in MySQL, or stored on disk? I'm not sure what the performance difference would be (this had been discussed a long while ago), but management features would be somewhat easier if the blob was stored in the database, rather than all over the disk.

Is there a limit to what sort of data serving that can be don with blobs?

I've looked at most of the programs out there, and I'm ready to start finalizing some sort of database structure, so input would be appreciated!

After looking at this problem for several months, I still think proper database design will eliminate a lot of the problems showing up in other programs, and allow for significantly less overhead in the banner calling routines.


PUGDOGŪ
PUGDOGŪ Enterprises, Inc.
FAQ: http://postcards.com/FAQ


Quote Reply
Re: Banner Rotation, AdvertPro, and Links SQL In reply to
Hi Pugdog,

I have started mucking around making a PHP/MySQL banner program, and I feel that storing the banners outside of MySQL is going to be about the same speed - but it just makes it easier and more convienient to store them outside of MySQL.

Another suggestion, keep going with the Cron Job idea to manage which ads are still valid. Ads need to be dished out fast, and it is vital to be able to just pull out a banner and show it as fast as possible. In the one I am writing, I am just going to set a 5 or 10 min cron to switch the valid field to what it should be - Probably have it run every 2 hours or so on my site, which doesn't get that much traffic.

Anyway - These things are hard to develop, but will be worth it in the end ;-)

Discuss webhosting at
The Webhost Area Forums!
http://www.webhostarea.com/forums/