Showing posts with label ads. Show all posts
Showing posts with label ads. Show all posts

Friday, December 11, 2015

Residual Traffic from my Ad

Remember about a month ago when my ad for Amphibian.com finished its run on TopWebcomics.com? I wrote about how I was tracking its effectiveness using a special URL and a cookie:
Tracking Visitors from Ads with Express Middleware
Today I was curious just how many comics are still being viewed because of the ad almost a month later. I ran my database queries again and found that over the past 3 weeks (all outside of the ad's run) there have been 183 visits to the main page of Amphibian.com by people who have the cookie.

While not an astounding number, I'm still pleased with it. It means there are quite a number of new people coming to read the comics that would not be had I not run the ad.

In related news, I'm having a lot of trouble staying in the top 100 this month. Voting is fierce in December, I suppose. I could use a few more votes if you have a second. Just click here.

Remember to take a look at today's comic, even if you never clicked on the ad or visited TopWebcomics.com. It doesn't matter to me why you look at them. Just do it!

Amphibian.com comic for 11 December 2015

Monday, November 16, 2015

Review of my TopWebcomics Ad

Instead of doing another post about game progress today, I thought that I'd just give a quick update on my ad I ran on TopWebcomics.com for the past several weeks. My run just ended on Saturday, and I'd like to review it.

To review, I put a special parameter in the link from the ad that I could use to track people who visit Amphibian.com as a direct result of clicking the ad. Here's the stats for the past 4 weeks:

Total Comics Viewed44,121
Comics Viewed by Someone Who Clicked on the Ad15,285
Comics Viewed not related to the Ad28,836

So much like last time I checked, which was only a few days after the ad started running, about a third of the comics viewed were a direct result of the advertising. Combine this with the fact that overall site traffic has increased by around 50% since the ad started, and I would have to conclude that TopWebcomics advertising has blown away my Facebook advertising in terms of getting traffic to the site. As a bonus, 6 people added my comic to their "Favorites" list on TopWebcomics.com over the past 4 weeks. While that doesn't seem like a big number, it is an increase of 50% as well.

My ad, in case you missed it.
I ended up with a cost-per-click of around $0.04. But once someone clicked through to my site, it was highly likely that they stayed and viewed several comics. Most of the increase in views was a direct result of people browsing through the complete set of comics after visiting the site for the first time. About 25% of the people who originally came from the ad came back on their own at least once.

Overall, I would say that I am highly satisfied with my experience advertising with TopWebcomics. I would do it again.

In other news, the test level for the 8-bit style platformer that I'm making with Phaser is now live at https://amphibian.com/eight-bit. Give it a try if you have a few minutes, and feel free to send feedback. I'll try to make some significant updates this week, but I'm also working on adding some new features to the comic as well. Here's the link to today's comic, even without those new features.

Amphibian.com comic for 16 November 2015

Friday, October 9, 2015

First Impressions from my TopWebcomics.com Ad

Here's my ad, but you don't have to click on it.
As I mentioned last week, I am running a month-long ad banner on TopWebcomics.com. It just started appearing on Wednesday. In the past, I tried promoting Amphibian.com on Facebook but did not get really great results. My hope is that advertising on a site devoted to web comics will have provide better returns.

Okay, first of all let's address the irony of running ads to promote a comic that I refuse to monetize with ads. I don't think I'm too much of a hypocrite. Right now, I don't need ad revenue to fund the server that runs Amphibian.com so I am free to try other methods of earning money from the comics. And I don't hate all ads on the Internet, I just feel like in many cases they've become so horrible that they actually detract from the content on many web pages. Ad blockers have only gotten more popular because ads have gotten more horrible. My decision to pay for ad promotion on TopWebcomics helps their site, which has already been driving a fair amount of traffic to my comics (as long as I stay near the top of the 2nd page). Even if no one sees my ad because they're all running ad blockers, I feel like I'm giving back to the site.

So how many people have seen the ad?

Well, I don't know. Unlike Facebook advertising, I don't know how many people have seen it. But I can tell how many comics have been viewed because of it. I am using a referral code in the banner's URL and a cookie to track how many times a person who came to the site by clicking on the ad views a comic for the next month.

So far, over 800 comics have been viewed as a direct result of the ad. That's approximately 29% of the comics viewed since the ad started running just 48 hours ago. Not a bad start.

Other interesting things to note
  • A majority of the people coming from the ad are jumping back to the first comic and reading the early ones as well as the current ones.
  • There has been a significant increase in the percentage of visitors to the site who are using iOS devices. Maybe my mobile-first approach to webcomics will finally pay off?
  • Spiders are not a problem. Is it because they don't do cookies, or follow ad banner links, or include query strings on links they follow? I'm not super-knowledgeable in this field of Internetting, so I don't know. I'm only reporting what I see.

That's all for today. I hope you like today's comic, which pokes fun at ageism in the software industry (at 36, I'm starting to feel it) by making clearly absurd claims as to the origin of new programming languages. Or maybe I'm on to something...

Amphibian.com comic for 9 October 2015

Friday, October 2, 2015

Tracking Visitors from Ads with Express Middleware

I'm getting ready to run another month of promotion for Amphibian.com. This time I'll be running an ad on TopWebcomics.com, a webcomics list and voting site.

The best list of active web comics, including mine!
Unlike before, when I ran ads on Facebook, I'd like to get a better idea about how people interact with the site after coming from an ad banner. This is sometimes called conversion tracking, but since I'm not really trying to convert any clicks to purchases I'm not sure the term applies. I am trying to convert people to regular readers of the comic, so maybe it does. In any case, I added a piece of middleware to my Express web app in order to track visitors from ads.

Amphibian.com is built using Node with the Express framework. I use various Express middlewares to add features to the site, such as access control, logging, multipart uploads, etc. I've written quite a bit about these in the past (here, here, and here, for example). I wrote a custom middleware and modified my logging middleware in order to create this ad tracking feature.

Here's how it should work... I create my ad banner and give it to a site to display, along with a URL. Instead of just plain http://amphibian.com, I assign each ad its own unique code and append that to the URL as part of the query string. For example, I tell TopWebcomics that I want my ad banner to link to http://amphibian.com/?s=abcdefg. When I see a value for s (I use "s" for "source") on the query string of any comic access, I add the value (abcdefg in this example) to the request object in a special field. Then in my logger, I look for a value in that field and write it to the database along with the rest of the request data. Now I'll be able to query my database later and determine which accesses originated with a user clicking on the banner. If I ran more than one banner at a time, I could just give them each a different code and compare their performances.

My tracker middleware looks like this:

module.exports = function() {

    var tracker = function(req, res, next) {

        var src = null;

        if (req.query.s) {

            src = req.query.s;
            res.cookie("s", src, { maxAge: 2629746000 });

        } else if (req.cookies.s) {

            src = req.cookies.s;

        }

        if (src !== null) {
            req["click-source"] = src;
        }

        next();

    };

    return function(req, res, next) {
        tracker(req, res, next);
    };

};

The code is fairly simple. First I check the query string for an s field (line 7). If present, I set the source code variable to its value and set a cookie with the same value. The cookie has an expiry time one month in the future. If the request does not have a s value in the query string but does have the cookie value, I set the source code variable from the cookie. This is how I know if you come back to the site later without clicking on the ad - you'll have the cookie. As long as you clicked on the ad once, I count the ad as being the source of all your visits for the next month.

The source code gets put on the request object in a field called "click-source" there on line 19. This is the field that I check in the logger middleware and, if found, write to the database.

One final note about using this middleware. Since it relies on the cookie-parser middleware to populate the request's cookies field, I have to make sure that I set my Express app to use the cookie-parser first. Express chains the middlewares together in the order they are declared.

var cookieParser = require('cookie-parser');
var adTrack = require('./sourceTracker');
var logging = require('./logger');

// ... other stuff ...

app.use(cookieParser()); // required before source tracker
app.use(adTrack());
app.use(logging());

// ... other stuff ...

So my plan for tracking conversions is simple, and only took a few minutes to implement. After I run this ad for a month I'll be sure to write up my results and what, if any, improvements I want to make for the next time I try a promotion. Until then, keep reading the comics by clicking on the link below.

Amphibian.com comic for 2 October 2015

Monday, November 24, 2014

So, about those cookies...

Today I am finally going to talk about cookies. Yes, the tagline of the blogs does read "Software, and frogs, and cookies" but if you've been reading it for a while you've probably noticed a distinct lack of cookies. I actually did talk about cookies in my review of the iPhone game Cookie Dozer back in 2010, but that's been the only time. Four years! And I've never before shared any information about the kind of cookies you can actually eat. Keep reading.

If you've ever read my comic you'll know that it's mostly bad technology puns. That has never been more evident than today, where we find the frogs handing out chocolate chip cookies to track potential customers instead of using the web browser key/value storage mechanism.

You might have not given it much thought before, but just how does Facebook know to put up an ad for some item I was just looking at on Amazon? The answer is because both sites use third-party cookies to track your web activity. It works something like this...
You view a product page on Amazon. Somewhere on that page is an invisible element, often an image, served by a third-party website. Let's say it comes from example.com, for example. Since it gave you some content, it can also set a cookie that only example.com can read. It will generate some unique identifier for your activity and store that in a cookie on your browser. On the server site, they put the cookie id in a database along with information about the page you were on when you got the cookie.
The next day you visit Facebook to share some cute picture of your cat. Facebook also serves you an element from example.com, in this case probably an ad banner. But since example.com can read any other cookies set by example.com, they pull the id out of the cookie you got when you visited Amazon the day before. They quickly look up in their database what page you were on when you got the cookie and then respond with an ad banner for that specific product.
You say to yourself, "Oh, yeah. I wanted to buy that yesterday but I forgot." Then you click on the ad and buy the item. 
Some people get really bent out of shape about this practice. Yes, it's true that if enough sites on the Internet serve you content from example.com, they could build up quite a lot of data about you and your browsing habits. For the most part, they just want to use it to more precisely target advertising at you. There is always the potential, however, that this data could be used for something more nefarious. Fortunately, most modern browsers make it easy enough for you to block third-party cookies (meaning when you go to Amazon.com, you can only get cookies from Amazon.com - not from example.com) and you're fairly safe.

Over the years, the use of cookies in this way has given them a bad name. Really, there's nothing wrong with a site like amphibian.com setting a cookie in your browser when you are actually on amphibian.com. Websites legitimately do this to overcome the stateless nature of web applications.

To make you feel better about cookies, today's comic will set a harmless cookie in your browser. It can only be read by the comic website, and it doesn't contain any information about you. But it does contain a recipe for chocolate chip cookies!

If you want to see it, open up your browser's developer console and type the following command:
$.cookie('frog-tracking-cookie');
Just hit enter, and you should see the cookie recipe. I kept it short, but you should be able to understand it.

If you've gone as far as entering that command, you may also be interested to learn why it works. I use the jquery.cookie plugin for reading and writing cookies from the comic. On some future date, the comic will attempt to read back the cookie it sets today...you'll just have to wait and see what happens!

Amphibian.com comic for 24 November 2014