1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

Support for ASP COOP ads and other ports.

Discussion in 'Co-op Advertising Network' started by LaCabra, Apr 30, 2005.

  1. #1
    I've been around Dp for a while now and have always appreciated everyone's feedback and support. There is great support around the PHP version of the COOP ads and unfortunately so and so support around the other ports of the network. I know its a free service and all that wonderful stuff, but lets cut to the chase, there are some folks out there (including me) that are sent into a tail spin when ever there is a new update. Don't get me wrong updates are necessary - I'm not bitching about updates. The problem I am seeing and I think I'm not alone in this - is that the unsupported ports suffer with every update and have too many versions kicking around. People that are running these ports are starting to leave the network because the lack of support and inconsistency of the programming. This hurts the entire network as a whole. Some of the other ad networks support multiple platforms.

    Sooo here goes - (IF SHAWN AGREES), I'm going to put my money where my mouth is. I am willing to "adopt a programmer" and pay this programmer, as a contractor for DP's development and maintenance of an ASP coop ads port. The programmer would be required to liase with Shawn and ensure that when a new PHP update is issued, the new ASP update follows immediately or soon after (quality assurance and testing would be required before realeasing it to the public). The programmer will be required create FAQs and setup instructions around the ASP port. Hence, the only ONE version of the ASP port would be published and come directly from DP and SUPPORTED.

    Can I get some feedback around this?
    cheers
    Frank
     
    LaCabra, Apr 30, 2005 IP
  2. rgeimer

    rgeimer Guest

    Messages:
    41
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #2
    Actually, I think the biggest thing that would help the port developers (I am one, the Java/JSP port) would be a well defined spec for the project as a whole. Trying to wade through uncommented PHP code and arbitrary changes to the format of the ad files downloaded from digital point makes porting a real chore.

    This doesn't need to be a huge project spec with UML diagrams and all that, but just a well defined file format (XML with a DTD or schema would be great, but just documentation on the existing format would help a lot) and a human readable document describing in abstract term (i.e. non PHP specific) the actions that an ad network client needs to take in order to properly serve ads and to validate.

    I don't think the burden should necessarily be on Shawn to do all this either. This forum could be the starting place for creating such a document. The port maintainers could post info as they understand it, and Shawn could correct it until we have something that everyone agrees is correct.

    Any thoughts?
     
    rgeimer, Apr 30, 2005 IP
  3. LaCabra

    LaCabra Goats R Us

    Messages:
    1,954
    Likes Received:
    241
    Best Answers:
    0
    Trophy Points:
    0
    #3
    GREAT POINT RGEIMER! Perhaps another forums strictly for port developers would be a great great starting point. All the necessary info could be posted there and viewable only by the developers for the ports.
     
    LaCabra, Apr 30, 2005 IP
  4. rgeimer

    rgeimer Guest

    Messages:
    41
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #4
    Thanks! Oh, and instead of being paid for developing ports, how about weight bonuses based on the number of users for a particular port (the user agent could be used to calculate this).
     
    rgeimer, Apr 30, 2005 IP
  5. LaCabra

    LaCabra Goats R Us

    Messages:
    1,954
    Likes Received:
    241
    Best Answers:
    0
    Trophy Points:
    0
    #5
    hahahahaha - may be an idea! Shawn could address that. I think that the more people that join the network and STAY, the better off we will all be. I was willing to fore go any bonuses myself primarily to just be on the network. Anyways there is more and more ad networks coming up and I think that DP will lose some of the members due to the lack of support for other platforms.

    cheers
    Frank
     
    LaCabra, Apr 30, 2005 IP
  6. rgeimer

    rgeimer Guest

    Messages:
    41
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #6
    Ok, I'll try to start the file format documentation. FYI, I have not updated my code to the latest version yet so this is based on the response to a request to ads.digitalpoint.com/network.php with a query parameter of b=www.example.com

    Here is what the response looks like:

    us82jsdd|400|900|4<ad_param><table cellpadding="1" cellspacing="0" style="width:468px; height:60px; background-color: #000;"><tr><td><table cellpadding="0" cellspacing="0" style="width:466px; height:58px; background-color: #cccccc;"><tr><td align="center" valign="middle"><b><a href="http://www.example.com/" />ANCHOR TEXT</a></b><br /><font size="-1">ADD DESCRIPTION</font></td></tr></table></td></tr></table>

    From what I understand, everything before <ad_param> is a parameter, and everything after is the ad itself. The params are separated by vertical bars, and the symantics are as follows:

    CSS_CLASS|MAX_ADS|MAX_WAIT|MIN_WAIT

    Definitions are below:

    CSS_CLASS: When an ad is displayed by the client, this param should be included as a class attribute in the anchor of the ad if, and only if, the request was from validate.digitalpoint.com. Example: <a href=... class="us82jsdd"> ...

    MAX_ADS: The maximum number of adds that should be cached by the client.

    MAX_WAIT: The maximum amount of time in seconds that a client can cache ads without requesting a new ad. Thus, if MAX_WAIT is 900, then if more than 900 seconds has passed since the last time a new ad was requested from Digital Point, then a new ad must be requested the next time an ad is served.

    MIN_WAIT: The minimum abount of time in seconds that a client must wait between ad requests. This prevents the Digital Point server from being flooded by requests.

    A note about the ad itself. Note that the anchor tag is ended by /> instead of >. It seems that the PHP code uses this as a marker for where to insert the CSS_CLASS param during validation. The client should always strip the extra / when serving an ad.

    As I said before, this is all for the previous version of the code. Could someone who has completed a port to the latest version update this? I would also appreciate any corrections if there is a mistake.
     
    rgeimer, Apr 30, 2005 IP
  7. digitalpoint

    digitalpoint Overlord of no one Staff

    Messages:
    38,333
    Likes Received:
    2,613
    Best Answers:
    462
    Trophy Points:
    710
    Digital Goods:
    29
    #7
    Here's a sample of the cache file:

    1114884801|216.9.35.51|us82jsdd|400|900|4|1|MSIE-Firefox-Safari-Netscape-Opera<ad_break>[an actual ad]<id>[ad_id]<ad_break>[an actual ad]<id>[ad_id]

    Which works out to:

    Timestamp of last time a new ad was received|IP address of the validation server|class|number of ads to store in cache|seconds between requesting a new ad|minimum number of seconds between requests (for inital filling of the cache)|boolean flag to log impressions or not|user agents that can report back impressions<ad_break>[an actual ad]<id>[ad_id]<ad_break>[an actual ad]<id>[ad_id]

    Most of the ASP ports lack very important items that are in the PHP version for more than taking up space. :) File Locking on the .txt file when writing to it, ALWAYS check that the .txt file is writable BEFORE making a request to the ad server (this gets a lot of site's IPs banned for making too many requests to the ad server [not caching ads]).
     
    digitalpoint, Apr 30, 2005 IP
  8. rgeimer

    rgeimer Guest

    Messages:
    41
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #8
    I would also like to propose an alternative response file format that is a little more self-documenting:

    <?xml version="1.0"?>
    <ad>
    <version>1.0</version>
    <css.verification.class>us82jsdd</css.verification.class>
    <max.ads>400</max.ads>
    <max.wait.sec>900</max.wait.sec>
    <min.wait.sec>4</min.wait.sec>
    <ad.text><![CDATA[<table cellpadding="1" cellspacing="0" style="width:468px; height:60px; background-color: #000;"><tr><td><table cellpadding="0" cellspacing="0" style="width:466px; height:58px; background-color: #cccccc;"><tr><td align="center" valign="middle"><b><a href="http://www.example.com/" />ANCHOR TEXT</a></b><br /><font size="-1">ADD DESCRIPTION</font></td></tr></table></td></tr></table>]]></ad.text>
    </ad>

    The query parameters to ads.digitalpoint.com/network.php could be something like format=xml&version=1.0&site=www.example.com

    Any opinions on this?

    Update: oops, missed you post Shawn. Anyway, this is for the old ad format as well, so if you think something like this is worthwhile, we will have to add the new params you mentioned above and allow for multiple ads.
     
    rgeimer, Apr 30, 2005 IP
  9. digitalpoint

    digitalpoint Overlord of no one Staff

    Messages:
    38,333
    Likes Received:
    2,613
    Best Answers:
    462
    Trophy Points:
    710
    Digital Goods:
    29
    #9
    The format is not going to move to an XML format, because it becomes a support issue when people don't have XML support compiled into their PHP installation (most do of course, but not all).
     
    digitalpoint, Apr 30, 2005 IP
  10. rgeimer

    rgeimer Guest

    Messages:
    41
    Likes Received:
    1
    Best Answers:
    0
    Trophy Points:
    0
    #10
    Ok, that's fine. I think the most important thing is that it is documented, so thanks for your explanation of the new format.

    One possibility that gives the best of both worlds would be an XML proxy. For example, someone might connect to a new file called networkx.php, which would call network.php and convert the text based markup to XML. This would provide a more readable format to those who would like it without adding to much extra burden on you, since such a conversion program would be very simple to write. Plus, it would have to be updated everytime the text format changed, so in a sense it would force you to document the changes :).

    If you don't want to undertake this task, though, I understand.

    One more thing that would help porters tremendously would be the use of meaningful variable names instead of just array positions. It wouldn't add much processing overhead to go from using $ads_temp[0] directly to something like the following, $cssClass = $ads_temp[0], then use $cssClass instead. You do that in a few cases, but expanding that technique plus some code commends would be really helpful.
     
    rgeimer, Apr 30, 2005 IP
  11. LaCabra

    LaCabra Goats R Us

    Messages:
    1,954
    Likes Received:
    241
    Best Answers:
    0
    Trophy Points:
    0
    #11
    Great, looks like we some interest here! If there are no ASP programmers that step up, I'll find one here locally and have them code it exactly how Shawn would like it and proceed to test and make it available to members running ASP. In the mean time RGEIMER if you can proceed with your port (Java/JSP). I will wait until Monday morning and then proceed to hire the programmer. Look forward to getting this done properly.

    cheers
    Frank
     
    LaCabra, May 1, 2005 IP