Managing banner ad clickthroughs

One clickthrough per IP per day

The BrandNewDay ( ) function

First I initialized some variables. This code was added to global.asa's Application_OnStart function - IIS calls this function automatically when the server starts up...

function Application_OnStart ( )
{
    Application.Lock ( );
    // remember todays date
    var d = new Date;
    Application ( 'Today' ) = d.getDate ( );
    // initialize new stuff in utils/Init.asp
    Application ( 'BrandNewDay' ) = 1;
    // a list of IP addresses that have clicked an ad
    Application ( 'ClickFromIP' ) = '';
    Application.Unlock ( );
}

...then I reset the BrandNewDay when the date rolled over (incidentally, I can also reset it manually by calling the BrandNewDay.asp page, which is sometimes handy. I'll leave you to look at that page):

function Session_OnStart ( )
{
    Application.Lock ( );
    // is it a new day?
    var d = new Date;
    if ( Application ( 'Today' ) != d.getDate ( ) )
    Application ( 'BrandNewDay' ) = 1;
    Application.Unlock ( );
}


Now I know when the day changed I modified utils/Init.asp so that a new BrandNewDay ( ) function gets called when this Application variable is set. I also cleared the Application ( 'ClickFromIP' ) variable that I'll use in a minute:

// ============================================
// anything that needs doing once per day!
// ============================================
function BrandNewDay ( )
{
    if ( Application ( 'BrandNewDay' ) == 1 )
    {
        Application.Lock ( );
        // clear the list if IP addresses that are ignored
        Application ( 'ClickFromIP' ) = '';
        Application ( 'BrandNewDay' ) = 0;
        Application.Unlock ( );
    }
}

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.” - Tom Cargill