Archive by Author

Coolest mISV Product Ever

I just learned that JOS regular Phil makes software for chimney sweeps.  If the prospect of this doesn’t make you smile, you have neither soul nor taste in Disney movies.

Chim-chiminey chim-chiminey chim chim charoo, I does what I likes and I likes what I do…  

Chim-chiminey chim-chiminey chim chim, cheree, a sweeper’s as lucky as lucky can be. 

Lesson: Check To Make Sure You Have Uploaded The Correct Installer

I made some major changes to Bingo Card Creator last, oh, Thursday I think it was, and then built and uploaded.  Unfortunately, this is largely a manual process and I missed the critical “copy the new installer from the build directory to the web directory before sync’ing the local copy of my website and the FTP server”.  Which means everyone has been getting the old version.  D.  O.  H.  Well, no sense crying over spilled milk.

Drop-Dead Simple Update Checking

I just had this brainstorm and wanted to share.  It should be live in my program by, oh, the end of today:

Checking for updates is a wonderful thing to enable, both because it makes sure your customers have the best-and-brightest version of your product available, and because it lets you see on your web logs “Ahah, that install actually succeeded”.  I wanted to have it ready for my first release (there have been at least 10 mini-releases since then, all with the same version number) but couldn’t figure out a way to do it simply.

Enter the drop-dead simple version checking solution: make a directory on your website (I’d put it in robots.txt too with an exclusion, as its going to have duplicate content and you don’t want it to be a search result anyway).  Populate it with a bunch of HTML files corresponding to your version numbers (e.g. v1.0.htm, v1.01a.htm, beta_release.htm, whatever you want).  All the ones but the “latest” one say “You need to update your software.  Here’s how:”, with your favorite tracking code embedded.  The latest one says “Yep, your software is up to date”, has the tracking code, and maybe gives a bit of advice or something (hey, why miss an opportunity to sell to people).  Every time you add a new version, you change the version number in the executable/resource file/wherever, rename your up-to-date page to the new number, and put an out-of-date page in place of the old page.

BAM.  This takes only 10 seconds per update, requires no additional programming, and can be done in 100% static HTML (no need to query a CGI script or anything).  Then you put a Check for Updates item in your Help menu, and perhaps pop up a window on program execution the first time its executed (“Thank you for using X.  Would you like to check for updates now?”) and perhaps every 2 weeks or a month after the program is installed.  Its not quite as seemless to the user as, say, Firefox’s automatic updating, but it’s a heck of a lot simpler for you.

Re-evaluating My Opinion of YSM

(YSM = Yahoo Search Marketing, aka Overture)

I may have been too hasty in my dismissal of YSM.   Yes, their interface is terrible.  Yes, their three day delay between me putting in a new ad and it showing up makes constant refinement impossible.  Yes, their integration into Analytics sucks (I still can’t make it work right — all of my Yahoo searches are detected as organic regardless of what I do).

But, well, numbers do not lie.   My second round of Yahoo ads (I optimized the text a bit, not nearly as obsessive as I am about AdWords since the process is SO much worse) has been performing well.  How well?

Well, for comparison, in the last 7 days on Google I’ve been averaging about 50 cents CPA (cost per action = how much I pay Google for every trial download they drive to me) and a 20% CR.  Those are a little lower than I expected, but some days I’m spiking to 30 cents/35%, which is much closer to where I want to be.  Some of that is just random jittering when working with very small numbers, some of that is me constantly tweaking stuff on Google.

So, comparing by comparison, a week’s worth of my barely-optimized Yahoo ads: 29 cents.  40% conversion.  Good God.  Apparently the teachers are all over Yahoo.  Accordingly, despite the fact that I truly *hate* logging into their service to change things (whereas Google is more fun than some games I’ve paid money for… cheaper, too, come to think of it), I’ve given them a reprieve and authorization to charge me another $30 for August.  I’m still going to give Google $90 over the same period, at least if I can manage it :)

(Incidentally, this will likely end up pushing me temporarily above my $60 budget, since I currently have about $15 in net expenditures.  Counting ad expenses is a mess, though, one of those things they much teach you in business school: do you expense the ad when the click comes in?  Or when you mentally commit yourself to spending X over a certain period?  Or when your credit card is actually charged?  I’m on-budget if you consider numbers 1 and 3 and over-budget if you use #2.)

From "Minimize CPC" to "Maximize Conversions"

I just upped my spending limit to $3 a few days ago and expected triple the traffic vs $1.  Instead, I got roughly $1.25 worth of traffic a day.  Heh, whoops.  It turns out that I was so successful at minimizing my CPC I am now able to pay for all the clicks my ads would generate in a day, with money left over.  Time to see if I can’t increase the CTR a bit without increasing my cost per conversion that much…

Here’s my rolling weekly average:

Ad Group #1 (pitching BCC to someone searching for ways to make bingo cards): 600 impressions, 8% CTR, 23% conversion, .52 CPA

Ad Group #2 (pitching Dolch bingo cards, my killer app, to people searching for Dolch word lists): 2100 impressions, 1.5% CTR,  17% conversion (a bad week), .46 CPA
As a stopgap measure I’ve turned off the position preference, which should see my ads return to the #1 spot as well…  We’ll see if that helps conversions or not.

That reminds me, I should start advertising in Australia/Great Britain soon.

Another Payment Processor To Look At

I decided to switch my payment processing from Payloadz to www.e-junkie.com .  I’ll be keeping Payloadz around for their web store link but driving all the traffic from my site to e-junkie.  There are three major reasons:

Automatic Redirection: Its absolutely crucial to me that I be able to redirect customers back to my site after the transaction is completed.  Currently, I just want to capture the fact that they’ve made a purchase with Google Analytics.  However, I’m thinking of eventually displaying their registration code in-line in the page and dropping them directly at a quick-start guide.  e-junkie made this trivially simple to accomplish.  Payloadz… not so much.  I had to hack up a form myself for each link I wanted this behavior on, which was not an option considering that form would have to be in my site navigation on every page.

Rational Pricing: e-junkie is $5 a month, regardless of how much I sell.  Payloadz is… strange.  For sales under $100 in any consecutive 30 days I pay nothing.  If I get above $100, I have to pay $15, and that continues to $500.  At which point I have to pay $29.  And so on and so forth.  Frankly, I don’t know where my monthly sales are going to stabilize and don’t want them stabilizing at a point where I routinely pay 12-15% of sales to somebody doing, well, essentially not a heck of a lot for me.

Customer experience: Payloadz let me add my own text to emails to my customer, but I couldn’t change their default text, which was not applicable to my product and does not match my tone elsewhere.  e-junkie let me write my own email template, soup to nuts.  I also don’t have to have their corporate name present anywhere visible to the user at any point in the process, which I rather like because neither Payloadz nor e-junkie screams “responsible businessman of the sort I am glad to pay to get educational materials from”, which is sort of what I’m going for.

I would still heartily recommend Payloadz to people selling, say, $5 e-books on eBay.  And eventually I’ll stop paying e-junkie and roll my own IPN solution.  Perhaps.  I figure that will take me 2 hours, and $5 a month is not really worth 2 hours of my time…

I'm Cash-Flow Positive

Discounting the one-time startup costs (dang international fax that cost $17 or so) I’m currently profitable.  Basically, I’ve sold enough in July (by the 25th) to cover all costs for the month of July and also absorb that unfortunate decision to try selling on eBay.  If I get one more sale during the month, I will be strictly-speaking profitable.

My conversion rate of downloads to purchasers is a little hard to guesttimate since I got a massive surge of downloads from pirates last week.  If you treat all the pirates as potential customers, I have a conversion rate of just over 1%.  If you exclude all downloads from people referred by my weblog (JoSers who are not exactly in the market for elementary reading software) and by the pirates, my conversion rate is, and this is a back of the envelope calculation, about 5%.

My plan is, within the next week, to cancel my account with Overture and triple my budget on Google to $90 per month.  That would put my marginal costs at about $95 a month ($110 if sales exceed $100, and I rather expect that they will), which is slightly less than what I get from four sales.  I think thats easily achievable, considering that four sales was my initial goal for August and I’m already halfway there with a third of the advertising in a month where my target market is very not-motivated to buy.

I think I’ll celebrate with a milkshake.  Hmm, do any accountants in the audience have an opinion on whether I need to count that as an expense? :)

Its OK To Be Second Best

If you’re like me, you can’t afford at the moment to actually absorb a click from everyone who wants to click on your AdWords ad.  So, at some point in the day, you go over your budget and then its no more ads for you.  You can use this unfortunate circumstance to your advantage.  Go to your favorite ad group, check all the keywords, and click Edit Keyword Settings.  Now turn Position Preferences on, and back out to the keyword list screen.  Set your preference to exclude some ad positioning slots, preferably the top ones, and watch your CPC go down.  You’ll probably still run out of money during the day, but you’ll get more clicks for it.

Why does this work?  Well, by default, Google bids to win on your behalf, where winning is defined as “as high a position in the ad rankings as I can accomplish given my maxiumum bid”.  Suppose, for sake of argument, that I’m bidding on a particular keyword with my maximum bid being $.25.  I have competitors at $.20, $.10, and $.08.  By default (and assuming similar CTRs for all ads), Google will give me the top spot and charge me $.21.  If I’m capped at $1/day, that means five clicks and I’m done.  Some days you might get that in two hours.  However, if you either decrease your maximum bid by hand or put your position preference at 2-10 (which forces Google to bid down from your maximum bid until you’re not in the top spot), you’ll get the 2nd spot at $.11.  Allowing you to afford almost twice as many clicks per day.

I’ve been doing this for about 5 days now and I rather like it.  Lots of things are constantly changing in my AdWords account, but I’ve cut my CPC for my top keywords literally by 70%.

Before: my maximum bid was .25, and my average CPC hovered between .21 and .17 depending on the day (I’ve been getting it towards the lower end since Google’s recent quality-score update).   After the quality score update, I noticed that I was averaging position 1.2… and running out of money within 3 hours of my ads turning on (I have a 10%ish CTR for my best targeted ads).  Not good!

After: same .25 bid, about 8% CTR… and I’m paying nine cents each, for about a 2.8 average position.  I’m still getting my budget’s worth of clicks every day, execpt there’s a lot more of them.  My cost per trial download has declined from $.50 to $.30.

If you're coming here via Google…

… you’re probably in the wrong place. Dolch sight word bingo cards are on my company’s website. Thanks much for your interest! If you were in fact coming here to learn about the business of running a small software developer rather than looking for what I make, read on!

Five Programs I Will Eventually Donate $20 To

I finally fixed my layout woes.  After I had diagnosed the problem (bloody IE and its bloody standards noncompliance *grumble grumble* do you have any idea how long I defended you against Firefox *grumble grumble* how about showing a little loyalty here) I was able to fix the whole problem by passing my entire web directory through an XTML cleaner-upper.  Which reminds me that this project would absolutely not have happened without the following.  I hereby pledge $20 to each of them “in the indefinite future, when I have the money to spend”, because I’ve gotten that much use and more out of them and I am feeling in a profoundly appreciative mood to people who save me time at the moment.

  1. NVU – The last web editor I’ll ever use.  It doesn’t have everything I need, but it has 99% of it, and it beats the heck out of notepad.
  2. HTMLTrim/Tidy (half to each — HTMLTrim is a GUI interface to Tidy without which I would have had to actually WORK at getting the problem fixed) — The aforementioned automated pretty-print and HTML scrubbing program.  Saved me from having to write gawk scripts to do it for me, which is probably worth four hours of my time.
  3. Eclipse – My IDE of choice for this project.  Someday I’ll figure out how to do GUI design the on you, too.  In the meantime, you’re almost as cool as NetBeans and, in my personal experience, more stable.
  4. Filezilla – A bog-standard FTP client, except free.
  5. Paint.net — Photoshop, on a budget of “free”, for people who have less artistic talent than an avante garde artiste who outsources his creative efforts to housepets.  (A hearty thanks to the person who suggested it to me.)  As to why I don’t use GIMP: I just don’t bloody understand HOW to start using that application.  Paint.net is literally as easy to use as MSPaint, my former image editor of choice.