Howard Ha
  • Blog
  • About
  • Business Opportunities
  • Contact

Ads in Captcha: Risk and Opportunity

12/19/2010

5 Comments

 
As with all industries, the online ad industry is constantly innovating ways to make money.  In online advertising, a good number of players are chasing after the lucrative market to bring publishers incremental revenues without dipping into existing inventory (aka their banner inventory).

Lately I've started noticing two promising potential avenues of revenue, each with companies contacting me to implement their services on our sites. One is the attempt to monetize image views with ad overlays (I'll talk about these another time), and the other an attempt to monetize Captcha's by serving ads instead of gobbledygook in the Captcha field.

The Opportunity

This "Ads in CAPTCHA" model is actually pretty brilliant from the perspective of a publisher, and potentially very low impact from the perspective of users.  Here's why:

  1. CAPTCHAs are on a lot of sites and are generally something users expect to find.  This means inventory already exists.
  2. Content engagement in CAPTCHAs is naturally high, because users need to decipher the CAPTCHA to post.  Users would concentrate more on the ad content in the CAPTCHA in order to complete the captcha test.
  3. CAPTCHAs are normally notoriously hard to read, and take a while to type.  A Captcha ad would be the opposite: advertisers would want to make the CAPTCHA intentionally EASY to read so as to maximize the impact of their message, and the message would be in natural english, which would be faster to type.
  4. If done right, the user will be subjected to quality sponsor messages which they resonate with, which I think enhances their experience compared to a string of random letters or weird words.

The Risk

Offsetting the opportunity for publishers is the risk of driving away user engagement:
  1. CAPTCHAs are in a much more intimate and involved part of the usage chain.  You are basically subjecting users who want to engage on your site to a forced ad message.
  2. If the CAPTCHA ads are annoying or unprofessional, you drive away potential commenters
  3. There are some users who are morally opposed to ads, who may refuse to participate in CAPTCHA protected items simply on basis of principle.
  4. Adblock plugins may automatically block your CAPTCHA, leading to loss of engagement with users using such plugins.

The Problem

I think the Ads in CAPTCHA model is pretty good, but I see current implementations as seriously flawed.  Firstly, the ones I've seen so far are HUGE.  Easily 5-10x bigger than the CAPTCHA we use on Neoseeker, and something like 50% bigger than the already massive reCAPTCHA module.

Secondly, the few ads I've demo'd go about it all wrong, they are confusing and require typing ridiculous messages.  They also contain tons of text, like 2 phrases, or a slogan and a short message "Prices are right, get your lowest price always!"

Thirdly, there appears to be a ridiculous experimental foray into video captcha's, whereby the user has to watch a video and type something "revealed" by the video, said video being a TV like ad of course.

Fourth: the market is young, and I see alot of defaulted inventory on the example sites I see.  Like many nascent ad formats, this is a chicken and egg problem, and my firm belief is that premium publishers should NOT donate their inventory to help establish companies trying to break into this type of ad market.

Fifth: as with many other form factors, I fear advertisers trying to get too much out of the medium.  I am certain the huge CAPTCHA module has to do with the need for ads to stand out.  I also worry advertisers would like the time spent per user on ad to be high, resulting in ads that require quite a bit of time for the user to decipher.
Lastly, I consider CAPTCHA to be a necessary evil, but one that I'd like to see done away with altogether in favour of better filtering, or other methods. Turning CAPTCHA into a revenue stream puts publishers at odds with making their sites as user friendly as possible, which is to say, zero captcha, while still filtering out as much spam as possible.

Doing it right

I think ads in CAPTCHA can be done in a way that respects users and also helps brands engage their audience and bring them meaningful brand messages.

This requires resolve on both the publisher and the CAPTCHA company's parts, as well as a healthy partnership with the advertisers.  Here's what I'd love to see:


  1. Users have the ability to disable CAPTCHAs from brands they do not want to see with a single click (learn from the Facebook model)
  2. Users can disable branded CAPTCHAs altogether with a single click
  3. Both of the above would execute NETWORK wide, so that every site using that CAPTCHA system will stop serving that specific brand or stop serving ads altogether.
  4. Publishers need a publishing back-end on which they can selectively decide what brand categories they wish to have on their CAPTCHA, as well as the ability to withdraw from brands they do not want represented.
  5. The CAPTCHA module has to be very small, certainly no bigger than reCAPTCHA and preferably slightly smaller
  6. The CAPTCHA ads must appear natural and inobtrusive.  They should not have fancy colours, flashing animations, and annoying attributes.
  7. The CAPTCHA ads should preferably contain a very simple and straightforward message and as little text as possible, not a slogan, or jingle quip.  The most ideal would be a single word, or 2-3 words.  If INTEL is a CAPTCHA sponsor they may ask you to type "Intel Inside" and nothing else would appear on the ad.


5 Comments

SELECT row number from MySQL While Sorting With Multiple ORDER BY Columns

10/29/2010

1 Comment

 
Today I came across an interesting MySQL problem.  I needed to SELECT data while also returning the row number of each row of data.  Normally to do this you do the following:
Conventional method:
SELECT @row := @row + 1 as row, t.*FROM some_table t, (SELECT @row := 0) r
But in my situation I needed to ORDER BY the data using multiple columns, and when you do this the row number gets completely broken (the order goes completely crazy).  So after searching and finding nothing I played with the query and came up with the below solution, which is to basically sort the results using as many ORDER BY criteria as you want, then SELECT it again and sort that using the row numbers:
Method to select when you ORDER BY multiple columns.
SELECT @row := @row + 1 as row, t.* FROM (SELECT t.*FROM some_table t ORDER BY t.col1, t.col2) as sorttbl, (SELECT @row := 0) r ORDER BY row
The above works in MySQL 5.1.x and should work in 4.1+.
1 Comment

Getting the Wordpress "read more" link to work in RSS feeds

8/10/2010

1 Comment

 
Sometime in 2008, around Wordpress 2.6 or so, the Wordpress team made an update to "fix" a bug with how "Read More" works in the RSS feeds.  Apparently the "Read More" feature was not intended to work in RSS feeds when you chose to show full posts in feeds (Settings > Reading > For each article in a feed, show > Full text).  Some users seemed to really like this "fix" but for TalkAndroid it was a nuissance because sites were using our RSS feed to reproduce our entire content on their own pages and the "Read More" tag was useful for splitting up our more original content.


After many hours of tooling around I found a reference to Customizing Read More and this handy post here which mentions enabling the "Read More" on pages aside from the main page of your blog.  Even those two pages were not enough.  I had to track down exactly where the RSS pages were and then hack them specifically to make it work.  Here's how to do it:

  1. Look for the wp-includes/feed-rss2.php and wp-includes/feed-rss.php scripts in your Wordpress folder
  2. Look for code that looks like "<content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>" and replace it with: "<content:encoded><![CDATA[<?php the_content('<strong>Read More...</strong>'); ?>]]></content:encoded>"
  3. Add <?php $more = false; ?> right before the content encode portion of the RSS files.  This part is necessary because the the_post() function sets $more to 1 and this prevents the Read More from working.

The final code looks something like this:
<?php
global $more;
$more = false;
?>
<content:encoded><![CDATA[<?php the_content('Read More...'); ?>]]></content:encoded>
1 Comment

Showing Code only to Guests in IPB 3 Templates

7/19/2010

2 Comments

 
In Invision Power Board 2 you could hide text in their templates by preventing it from showing to logged in users.  The code looked like this:

<if="$this->ipsclass->member['id'] == 0">
Hello, guest
</if>


In IPB3 templates this didn't work at all.  Instead, to limit your code to show only to guests and not to registered users use the following:

<if test="$this->memberData['member_id'] == 0">
Hello, guest
</if>
2 Comments

    About Me

    I'm a web entrepreneur.

    I have a passion for technology, web scalability, gaming, life, reading, and many other things.

    I believe in good, trust, enjoying the little things, and the pursuit of perfection.

    Archives

    December 2010
    October 2010
    August 2010
    July 2010

    Categories

    All
    Captcha
    Ipb
    Mysql
    Rss
    Wordpress



    Follow Me:
    • Facebook
    • Twitter
    • darkcobalt (Neoseeker related tweets)
    • RSS Feeds
    Click to set custom HTML
    www.flickr.com
    howardhaGo to howardha's photostream
Powered by Create your own unique website with customizable templates.