I was complaining yesterday about the login process that Contenture uses on its member sites to gain visitors. Rather than just complain, I thought I would give some constructive response to their request for feedback, which is coincidentally one of the topic areas that I like to study on this site.

Doing It Right vs. What We Actually Do

We developers talk a lot about how a project should be done "right", and hardly ever are they done that way. There is a very wide gap between what we should do (the stuff they make you take classes on in college, but you never do in real life) and what we actually do (the stuff we end up doing to make things happen in time and budget, but nobody ever bothers to teach in a class). I think that every developer cuts corners on either end, some more on one side than another, but there is someplace in the middle that makes it work. I like to think of this area as the back of the napkin.

Attached to this post is a flash applet showing something I drew depicting my impression of the Contenture login process. We've basically got two types of site, and three types of visitor. The first type of site is the content producer, someone who uses Contenture to remove ads and potentially display premium content to Contenture members. The other type of site is the affectionately named, "Affiliate Whore", whose only current business with Contenture is to make a quick buck from a new user signup.

There are three types of visitors to either of these sites:

  1. Visitors who are not Contenture members
  2. Visitors who are Contenture members but are not logged in
  3. Visitors who are Contenture members that are signed in

Of the three, the last is the easiest to figure out. The affiliate site doesn't really need to care who you are - it can display an affiliate link whether you're a member or not. The content producer will probably need to know that the visitor is a member and then display appropriate content for that user. That part is actually pretty easy with the way things are now.

User Stories

For visitors that are not Contenture members, both sites need a way to tell these visitors that they should sign up. When they choose to do so, they would be taken to a page that allows them to register for the program. Optionally, when the sign-up process is complete, they could be returned to the originating page. The affiliate-only site isn't going to care too much about the return, but the content producer is. An instant return visit from an new registered user guarantees at least one content-based hit on the site for the purposes of tracking payment to network members, of which that site will be one.

For visitors that are Contenture members but are not logged in - which happens in the case of users who roam between computers, use multiple browsers, or are developers that dump cookies every few hours - things are a little trickier. A site can't know that the user is a member if they're not logged in. They'd probably need to see a standard-looking "this site uses Contenture" banner/button/logo somewhere that they could click to get the standard login.

My premise is that the same link that you use the same affiliate sign-up link to go to a page that is both the new user sign-up form and the existing user login form. Even if the "join our program" link on the content publisher's site doesn't say "Contenture" in it (even though it should, for reasons I'll mention in a minute), they'll still arrive at the Contenture login page and will respond accordingly.

The Affiliate Link

The "join our program" link should definitely say "Contenture" somewhere in it. The reason is that if a visitor encounters a site that has a program described only as "Pay $X to avoid ads and obtain premium content", then he's already considering the money he has paid to Contenture and wondering if it's worth it to join a new site. Whereas if the banner/button says "Contenture" on it somewhere, the choice to continue with the login for an existing user is not an issue.

contenture_banner.pngAlso, my thoughts on what the button should say lean more toward providing an advantage to the visitor. So unless it's the only benefit, it shouldn't say "Support This Site". Supporting a site monetarily is an obvious benefit of paying for premuim content. What it should say is what the visitor gets from the site in exchange for signing up. My thoughts resulted in something to the effect of "Fewer ads and more premium content -- support this site with Contenture".

I've been struggling with Contenture for the past couple days. I think it's a great idea: users pay a nominal fee (starting from about $6) to gain membership in the Contenture network. Whenever a user visits a Contenture network site, that site gets a portion of the money contributed, and the visiting user gets any number of perks, including an ad-free visit or access to exclusive content. Anyone can easily add themselves to the Contenture network by dropping some javascript code into their site's footer, like I did. But there have been a few issues.

Yesterday, the network script couldn't even detect whether a paying user was a member. That has since been corrected, but there are a number of other odd things that leave me wondering whether the Contenture folks did any prototyping of their system.

For example, my biggest complaint about the system right now (assuming that I'm even getting paid visitors, which I can't tell by looking at my account on the Contenture site) is that there is no clear way to direct network members to log in to receive their benefits. If a person visits my site and is a member, but they're using a public computer and have not logged into Contenture, there should be a link on my site they can click on to log them in. Currently, the only way to associate my site with Contenture is to forward them to my affiliate link (if they sign up via that link, I make a dollar). The affiliate page on the Contenture site doesn't have a login form or link at all. This doesn't make any sense if my visitor is already a user. Worse yet, there's no way for a user, after logging in, to get back to my site.

Another problem with Contenture is that there is currently no visible tracking of the visitors that hit your site who are members. Fortunately, I've discovered a way to track that using Contenture's sister site, CetClicky.

If you have a GetClicky account and have already set up your site for Contenture, the setup for tracking Contenture users is not too difficult. Here's how you do it:

Step 1

Visit your GetClicky dashboard for your site, and click the Goals tab. On the Goals tab, select the Setup link, and create a new goal.

Basically, we're going to define being a logged-in Contenture user as a goal. So in the "Goal Name" field, put "Contenture". Set the goal to be a Manual Goal - one that we're going to tell GetClicky has happened using javascript instead of a URL. Leave the rest of the fields alone (or fill them in, if you have some idea of what a Contenture visitor earns you -- I don't have a clue), but be sure your goal is active, and then submit the form. Your form should look something like this:

Return to the Goals setup page, and you should see Contenture in the list. It looks like this:

Make a note of the number indicated here by the arrow. We're going to use that in Step 2.

Step 2

Open up your site in an editor, and locate your Contenture code.

The script looks something like this by default:

In the javascript there is a location for customizations. This is where we're going to be inserting things. The Contenture documentation is kind of light on what needs to go in here, but hopefully future enhancements to the service will help create this javascript for you, so you won't need to know any of this unless you're really wanting to get your hands dirty.

We're going to add these lines below the comment:

if( _ctr.is_user()){ // line A _ctr.hide_ads(); // line B _ctr.hide('#local_ads'); // line C var clicky_goal = { id: "294" }; // line D }

Line by line, here's what we're doing. Line A checkes to see if the user is a Contenture user. If so, it executes the three lines inside the braces. Line B hides all of the standards ads for registered users. This includes my Google ads. Line C hides my local ads for registered users. I do this by putting ads that I have sold on my own (or any other content I don't want to annoy registered users with) into a div like this:

Buy Viagra!

And the last line, Line D sets the GetClicky goal id for this action. The id is the one that we saw at the end of step 1. When you paste in this code, replace the id here with yours from your GetClicky goal. Note that this goal-setting code is only executed if the user is a registered Contenture member.

Finally, one more important thing. Put your GetClicky tracking code after your Contenture code. Otherwise, the goal tracking won't ever be sent back to GetClicky, and you'll just see a big 0 on the Goal page.

What's it look like?

You might be interested in knowing what the thing looks like when it's all set up. Well, when you've got it all connected properly, you can visit your Goal page in GetClicky, then choose the Contenture goal. When you do, you'll hopefully see larger numbers than I do:

Yes, that one Contenture user from Verizon is me. I clicked on my own site. Hopefully some of my $6 will eventually end up back in my pocket. I've applied the Contenture code here too, but it's having some issues (my fault) on the non-blog pages, and I don't track traffic here with GetClicky, but with Google Analytics instead.

All of that said about GetClicky, there are also ways you can track similar goals using Google Analytics instead. I'll leave that exercise for later.

What next?

Contenture remains a great idea in my mind. I think if people stop looking at it negatively as "people will only sign up if everyone uses it" and instead see it as a way for sites to put together a working, paid subscription system in a few minutes, then they'll see it in a better light. Nonetheless, on my laundry list of "What the heck?" missing features:

  • OAuth for membership
  • Javascript protection of premium content? Seriously?
  • Live visitor earnings reports
  • Full GetClicky integration
  • A directory of Contenture-enabled sites
  • A list of Contenture sites I've visited as a member
  • A system to opt-out of payment (and any advantages) on specific sites I visit
  • A combined login/signup form that is affiliate-aware
  • A way to direct logins and signups back to my site if I sent them there in the first place

I'm a bit put off by the kinks in the system that was announced like it was supposed to be ready for prime time at launch, especially from the nicely assembled GetClicky product team, but I'm looking forward to improvements in the system with hope that some of the above items enter the product soon.