Archive for the ‘microisv’ Category

ViEmu around the world

Monday, April 2nd, 2007

It’s not my fault. Ian Landsman started, and I just couldn’t resist. His blog post describes a cool php component to use the Google Maps API and show a list of addresses in a map. He used it to show where Helpspot (his popular help desk software application) customers are. And I had to do it. A couple of hours and quite a few manual fixes later, here are some cool takes (not all of the addresses resolved, and the ones who payed through Paypal, including as a few Chinese customers, aren’t shown here either):


All around the world!


The U.S. and Canada (most of my customers)


Europe (UK addresses don’t show up)


Japan and Korea - there are a lot of customers in Japan, but I had to reduce it to just cities


The bay area.


Seattle


Southern California


And an overview of the East Coast.


Even in the land down under!

And here are a few exotic places - now how cool is that?







I’m planning to set up a ViEmu-specific blog in the next few days, and I was meaning to post this there - but I just couldn’t resist! I may even add some of this to the ViEmu home page, it makes for a good, reassuring visual explanation that ViEmu is used by lots of people around the world!

March’07 Status Update & Interesting Lesson

Saturday, March 31st, 2007

As a first interesting point, ViEmu sales are very strong now. At the level of sales I had reached in the second half of 2006, I could live off of ViEmu exclusively, even if a bit tightly. I’ve definitely lived with quite a lot less than that. In February, I released ViEmu for Word & Outlook and updated the web site design to present the three products and to get a more professional look. I was expecting a lot of existing ViEmu/VS customers to buy the Word & Outlook version - I offered a 15% discount as an incentive and to show my appreciation for their support. Quite a few bought the new product, but nowhere near a significant fraction (surprise). Anyway, February sales were about 30% higher than in January. I was also expecting lower sales in March, as the existing-customer-conversion factor would disappear, but nope. March sales have been over 30% higher than in February. Surprise again, this time a happy one.

This means that I can currently work full time in ViEmu and the text editor. Which, by the way, I’m already doing. I still have some ties to my previous day job, helping out now and then with areas which have not been covered by anyone else, but it’s a small part of my time. Hopefully, this will diminish further over the next weeks and months, until my involvement there is virtually non-existent. In any case, this is the moment sales allow fulltime dedication with ample room for slack – about 2 years since I first started, and 1.5 years since the release of ViEmu/VS 1.0. I’m single and have no major financial obligations, and I can live on quite little, so someone with a family and a morgage to pay would probably need more than that, but I hope this can be an interesting data point for others starting up out there – development takes time, marketing and building up awareness takes time, taking the product to a mature stage takes time, reaching the point where hundreds of people will talk about your product and support in such a favorable way that others will easily decide to buy, also takes time. Definitely wall-clock effort time, but calendar time is also necessary.

As a subjective summary, it’s taken longer than I expected, but the sales level achieved by ViEmu is way higher than I ever expected. I never thought it could pay a full-time salary for someone to maintain it. In the future, as the text editor becomes the main source of revenue, ViEmu sales will support having one person full- or part-time maintaining the product.

This month I’ve been less active than usually. Several things have confabulated to result in this. For one, I was planning to move to a new town after I finished the Word & Outlook version, and I have just done so. A lot of time this month has gone into finding an apartment to rent, buying all the necessary stuff, sorting out all the bureaucracy, multiple visits to the closest Ikea, and just generally getting installed in the new place. Now I’m starting to feel at home at the new apartment and able to concentrate in work somewhat again. I’ve kept taking care of support all the time, of course, as it’s the key point to keep customers happy and the business working, but I haven’t been able to do anything major.

But as a second important factor, I started reducing the stress I was submitting myself to – I was working way too many hours a day, and the last part, implementing ViEmu for Word and Outlook, had been as close to a nightmare as possible. I will give you some stats on lines-of-code counts which will show it, but the main point is that dealing with Word has been a huge effort. Difficult to do, so much that at certain points I had doubts that I’d be able to pull it off, and with that kind of difficulty that erodes you as you fight and overcome it: poorly thought interfaces, undocumented behavior, tests that require three days to implement only to find out that it’s not workable and you have to find another way around… If I was tired for two years of excessive work, this was the cherry on top. Once I got to release it and fix the most important flaws, I needed to take some rest. And my body has decided that I need an intense rest to compensate. For the past few days, I’ve been almost without energy, sleeping a lot, and not able to put a lot of effort or concentration into anything. It was probably something to expect. Anyway, I’m going to take everything in a more relaxed way for the next few weeks and see how I feel. “One task a day”, or something similar, should be doable and I will certainly enjoy the much needed recovery. This morning I implemented support for the “Orcas” version of Visual Studio (which is available as a preview), and this afternoon I’m writing this blog post, enough for a Saturday. I will also start exercising regularly, which should help in feeling better - and losing the 10kg (20 pounds) or so I’ve gained courtesy of ViEmu.

Even amidst all of this, I have been able to start slowly pounding away at the text editor. I’ve already forgone the possibility of releasing 1.0 by the summer, as that would require a level of work I cannot put in right now, but I will be working in it during the next few weeks and months, and hopefully having something working soon enough. I’m still agonizing over the name, fortunately I have some time before I have to make a final decision.

I was talking about lines of code. This is a breakdown of my current codebase (all in C++):

Core library (including regular expression engine): 15,500 lines
Vi/vim emulator: 15,000 lines
Visual Studio and SQL Server integration: 21,450 lines
Word & Outlook integration: 21,300 lines
Text editor: 38,150 lines

The last chunk (the text editor) is, as of yet, unreleased code, and still contains quite a few known problems. All the rest is released and quite solid, production quality code.

Over 100k lines of code, a single person over a period of two years, initially while holding a full-time day job – you can understand while I need some rest now. You can see how the integration in the environment can be pretty hefty, quite a lot larger than the actual vi/vim emulation core. I don’t repeat myself too much, as much as possible is reused by isolating as common templates or libraries (the whole vi/vim emulator is a bunch of templates that can hook into any of the supported environments).

The good thing of this? It’s some pretty solid technology that can’t be replicated easily. And there are some things there that I can and plan to use in additional products.

I promised an interesting lesson – where has the sales increase come from? On one hand, the number of orders has increased: increased popularity, better and more products, a more professional-looking web site, a more professional image given by the wider line-up of available products… I guess all of them are meaningful factors. But there is an additional factor: market segmentation, in an unusual way. Some time ago, I considered the idea of having “standard” and “professional” versions, at different price points. This allows you to charge a bit higher to those that can afford it like companies or professionals – or to charge less to those who can pay less, however you want to see it. But I ended up thinking that it didn’t make sense for a vi emulator. The goal for an emulator is clear, the features are already defined by the emulated product, and when the goal has been so clearly set for so many years, and one can’t make a meaningful standard/professional feature distinction, it would just look lame to arbitrarily cut functionality. So I put the idea aside.

But when I released the Word & Outlook version, I also added very interesting discounts for packs of the different ViEmu products. If you buy two ViEmu versions, you get about 35% off in the second one. And if you buy the three of them, you get the three for the price of two. Since the target market, although not exactly the same, is very similar for the products, this indeed acts as a segmentation tool. Those who can’t spend too much buy just one of them, but those for whom $100 or $150 isn’t too much (that is, companies and professionals) often buy a two-pack or the full three-pack. And this makes the average order quite a bit higher than it used to be. Together with increased number of orders, this makes for a nice increase in dollar-sales.

Give it some thought, as it’s another segmentation strategy that can work for your own products!

PS: Post written using vi emulation in Word :)

ViEmu for Word and Outlook released

Thursday, February 8th, 2007

At long last, ViEmu for Word and Outlook 1.0 is out of the door:

ViEmu in Word 2007

Together with the new web design, you can have a look at it at viemu.com.

I’ve had a few sales already after being out for 12 hours or so, so it’s some kind of proof that there is some interest. Thanks to those who’ve bought it!

After this, I’m going knee-deep into the development of kodumi, my up-and-coming text editor. I’m thrilled to go back to it, and I hope I will be able to reach 1.0 in just a few months. The goals are very ambitious, but getting 1.0 out of the door is a priority, even as soon as it offers just a glimpse of what will be coming.

And I’m incredibly happy, not only to get on working in my editor, but also to *stop* having to fight against poor and hostile interfaces, as provided by other apps. It will be refreshing to fight my own interface designs instead of others’.

Thanks to Andrey, Jose, Dennis and Ian for posting about it on their blogs even before I did!

As an aside, I must say I like Word & Outlook 2007’s new interface very much. I think many people will want to have it as soon as they try it out.

Digg, reddit, vi/vim for Word and Outlook, and Happy New Year!

Tuesday, January 9th, 2007

Happy New Year everyone!

Here is my bandwidth graph for 2007 so far:

bandwidth graph

Yes, I got dugg and reddit-ed during the weekend. The first hump is reddit, the large spike afterwards is digg. The URL was from this blog, back in June’05:

The story of why I got started with vi/vim editing

I submitted it after seeing a post about “Bill Joy’s greatest gift to mankind: the vi editor” on the front page of programming.reddit.com. I didn’t expect so much popularity, but it seemed to resonate with the audience.

The comments both in reddit and in digg were very numerous and fun to read:

http://programming.reddit.com/info/x6zg/comments

http://digg.com/programming/Why_learning_vi_vim_still_makes_sense_in_2007

Having had about 20,000 people visit my blog during the weekend is always nice. It almost, but not quite, prevented me from concentrating on my current work:

ViEmu for Word screenshot

Yes, ViEmu for Word is already working. Yes, you can use Japanese text in ex commands and move around with a block cursor in proportional text and everything else… I expect to have a first alpha version for interested users ready during this week, hopefully becoming beta next week (feature-complete). After that, I’ll release as soon as possible. Getting this to work has been a *huge* pain, but hopefully it will be interesting to some users.

Ah, and it also works great in Outlook message windows! I’ll post another screenshot in a few days.

PS: Andrey released his latest product, BlackberrySpamFilter. Guess what it does? I think this will be a very successful product, and I wish him the best luck!

October ’06 Status update

Saturday, October 28th, 2006

It’s way past time I updated the blog with some more recent info. I hope you’ll understand time the 2nd scarcest resource of my single person startup, only right after cash, but very close.

For the past month, I’ve been able to do little more than answer support e-mails, respond to customer’s queries, and take note of the bugs/requests I’ve received. My day-job has required a lot of time and it has been pretty stressful, so I just forgot about trying to actually achieve anything.

I had been pretty busy working in ViEmu for the previous couple of months. I took a quiet August, I started surfing – which I love as a great summer activity – and I worked a lot in ViEmu/VS version 2.0. The worst part of it was a more than 10 hour symbol-less assembly debugging session of the innards of Visual Studio, in order to find a bug in one of the APIs and implement a feature I badly wanted to offer in 2.0 (automatic keybinding removal/management).

After this, I was able to release ViEmu/VS 2.0 back in mid September. The keybindings handling feature in particular has caused some trouble, so I will completely change the approach for the next major version (whenever that happens), but, all in all, 2.0 is a heck of an improvement over the previous 1.4 version. Sales have gone up, the feedback has been great, and I’m very satisfied with the result. It also makes use of the completely new ngvi emulation engine, which is also integrated in kodumi (my upcoming text editor), which will hopefully be released in early 2007. Having the engine confirmed to work right by hundreds of users gives me a great confidence in it.

I also released ViEmu for SQL Server Management Studio 2005. It has made a modest debut, with not too many sales, but it should be useful to some folks into heavy DB development, and turns ViEmu in a rounder offer.

I’ve updated the web site to offer ViEmu/SQL too, but I only did the minimum investment of time into this. And the reason is that I still plan to release a third ViEmu product before taking on kodumi development more seriously: ViEmu for Word and Outlook. Quite a few people have asked for it over time, I think integrating the ngvi engine in the Word framework won’t be too much trouble, and the main point is that I expect to make the maximum ROI from the effort invested so far. Vi/vim emulation will never be a huge market, and implementing it for many other environments wouldn’t be a sensible business decision, but having the triad of ViEmu/VS, ViEmu/SQL and ViEmu/Word+Outlook seems like the best trade-off of effort and potential. ViEmu sales are already in a place where I could live off of it, and adding up a third product could make it a comfortable situation to confront the release of kodumi 1.0 and developing the technology I intend to.

I will have to do a pretty complete redesign of viemu.com presenting the 3 products. And presenting multiple products is always much more difficult than presenting a single one. Given that this effort is in the near future, I decided to do the minimum redesign possible for the release of ViEmu/SQL.

Some interesting facts:

  • July and August sales were slow (especially predictable for July, given June had been the last month of the previous pricepoint and I cannibalized a lot of natural July sales), but September managed to catch up with dollar-sales in June (the best selling month ever so far), and October has again broken that record, almost catching up with the maximum ever unit sales in June.
  • Finally, viemu.com has made it to the first page of both the “visual studio vi” and “visual studio vim” Google searches. As soon as I have an afternoon to sort it out, I will finally be redirecting the old “ngedit.com/viemu.html” page to “viemu.com”. It’s taken 6 months for Google to acknowledge the new location (I didn’t want to redirect straight away and risk losing the ranking, as it had taken many, many months to have that page on the first page for these very interesting searches).
  • I have a chart and an article almost ready, called “The Ultimate WM_KEYDOWN/WM_CHAR Table from Hell”. I’ve had to delve even more deeply in the broken-ness of the Win32 input model, as ViEmu 2.0 has full keyboard mapping support, and it’s simply amazing how broken it is. The previous article on the subject is, funnily, the 2nd Google result for “WM_CHAR”, right after the MSDN reference page, and the 4th or 5th for WM_KEYDOWN (and brings quite some traffic to my site). I believe the new chart will be very useful and it will be pretty popular on del.icio.us, etc… more exposure is always good.
  • As always, I still plan to blog profusely… in the future :). I certainly enjoy writing and sharing my experience, and it’s definitely useful for the business, but I still have to prepare ViEmu/Word+Outlook and get kodumi 1.0 ready before I can dedicate more time to blogging. Actually, there is some very interesting technology I am preparing for kodumi (and for other projects afterwards), and I’d love to blog about it. But I don’t have time for everything… As soon as I have a released product which appeals to a higher percentage of developers, it will make more sense to invest in blogging as a means to gain awareness.
  • Andrey Butov took the plunge, left his day job, and went fulltime into his business. The effects have already been noticeable: a new web site specialized in Wall Street Programmers, a new design for his main site, etc… He was even so kind as to feature ViEmu/VS in the front page of the new site! When he released his book So You Want To Be A Wall Street Programmer a few weeks ago, I decided to buy it and read it. The reason is not that I intend to ever work in Wall Street, I am as close to 100% sure as possible that I won’t. But I enjoy his writing style, and I was curious about the development industry over there. I found the book as interesting and entertaining as expected, and I also got a good idea of how the internal development in investment firms works. Since my products are and will keep being oriented towards developers, I found that the new knowledge would be useful for better targeting of my upcoming products. I’m familiar of how development works in 2 or 3 different industries, and I’m confident that I can target my products efficiently to those, but I’ve now added another one to the strategy-decisions mixing pot, an industry which can spend a lot of money, so I think I’ll be glad I spent the time to read the book. Recommended.

And a closing note with regards to blogging subjects: I’m doing some core technology development for kodumi. It’s quite probable that the blog will turn towards that subject area: basic computer science, parsers, languages, types, the nature of code and data, etc… I’ll still post about business and other issues, but I plan to blog a lot about the technology – I think it’s pretty groundbreaking and that it will be useful in many areas. So don’t be too surprised if you find a post here talking about really basic stuff (such as “what is a number”, “what is a type”, or “code and data are one and the same thing”).

But if you really, really want to read purely about setting up a small-software-company, you have to head over to Patrick McKenzie’s “MicroISV on a Shoestring” blog. Patrick is a smart guy (“smart” as in “really smart”), and he also writes very well, so his blog is the best account of going from zero to having a working business I’ve found. Recommended, too.

Fact sheet May’06

Thursday, May 25th, 2006

Fact #1: I haven’t posted on the blog for well over a month. With all the pending things I have (ViEmu 2.0, the text editor, my day job obligations, support, etc…), I can hardly find time to do so. Promises not kept: the “Friggin’ Darn Tough/Functional Dynamic Template-based C++” series, an article on ViEmu I promised to Keith Casey from CodeSnipers, an article with cool graphical charts on the digg effect as seen from viemu.com (more on this below), etc… Hopefully everything will come along. Until I build the business to the point where it will sustain me, I really just can’t afford do put my available energy in anything other than improving & supporting ViEmu, and preparing the next product.

Fact #2: The final name for the NGEDIT text editor will be kodumi. I wanted a name that sounded good, and which wouldn’t be limiting for the future evolution of the product. It means “hacking” in Esperanto, although Esperanto is not, like, so widespread that the meaning is the important part. I like how it sounds and I can identify with it. It still works when the product becomes more than a text editor. If the product is really good, which I’m hoping it will, this should ensure the name sticks. I’m open to feedback and criticism. I’m pretty stubborn and it’s unlikely I’ll change it, though.

Fact #3: The next product I release probably won’t be the kodumi text editor. There is quite some work yet to be done with kodumi before 1.0, and I’ll probably release another product based in another functional part of the editing core, as a VS add-in. Hopefully with a much larger appeal than a vi emulator. It will actually be based in one of the innovative features I’m planning for kodumi 1.0. It’s nice to have a product that has several offspring before being born.

On the other hand, given that I will probably be releasing this product, it may make sense to have a single site for all VS add-ins instead of a separate one for each product (such as viemu.com). Oh well… this right after moving to viemu.com… so much for my strategy forecast skills.

Fact #4: The amount of traffic you get from a reddit / del.icio.us / digg front page is amazing. I’ve also got thousands of visitors from StumbleUpon.

Here are some graphics that show it, as the graphical vi/vim cheat sheet I released made it (twice!) to those front pages. I apologize for not being able to write a full article on this, it would be worth an entire study.

In order to understand these properly, take into account that originally ViEmu was hosted at ngedit.com, and I moved it to its own domain viemu.com together with the release of the cheat sheet. The traffic graphs include both domains, as they’re served from the same account, but the Alexa graphs below show both domains with separate lines.

I released the cheat sheet on March 28. Here is the traffic for that day (click for a full sized image):

You can clearly see the moment it picks up to 100kbps sustained. The climb was caused by it getting to reddit’s homepage, which happened about half an hour after I submitted it (people liked it, so they voted for it, making it reach the front page - it’s not against their guidelines to submit your own stuff).

The traffic before the climb used to be typically low - very nichey product, a few blog readers, etc… enough to result in some sales, but nothing big.

I went to bed as soon as I saw it at the bottom of reddit’s front page. The next day would be crazier.

As a side effect, people started bookmarking it to their del.icio.us account for later reference. This is understandable given the “reference” nature of the cheat sheet. As soon as a fair number of people did this, it also appeared in del.icio.us’ popular page, thus getting more traffic from there.

This is the traffic on the 29th:

I apologize for not presenting a higher-resolution sampling, I forgot to save it from my hosting provider, and I can’t generate it again.

Anyway, please take into account that the lowest bar in the graph is as high as the 100kbps high in the previous one. It was pretty amazing. I first watched it for hours no end in reddit’s and del.icio.us’ homepage, and a lot of traffic coming. But then I submitted it to digg, and watched it play the voting game in digg’s “sub leagues” (the system is very different from reddit). And then the big spike came: it made it to digg’s front page. All hell broke loose, bandwidth requirements grew to 2Mbps sustained, and the number of visitors was amazing. It made reddit and del.icio.us look like a joke.

My hosting provider handled it without a hiccup. On the other hand, that very afternoon after submitting to digg, (1) there was a power outage at my building, (2) when it came back, my DSL service was down and unfixable according to my ISP, (3) I got a flat tire when driving to a friends’ in order to watch the digg effect, and mainly to be on the watch in case bandwidth went beyond the monthly limit, which happened, so (4) I had to upgrade my web hosting account. You can say I had all the hiccups web servers usually have in these cases.

Here you can see the traffic for the next two days:



You can see the long tail of the digg effect. Also, the cheat sheet got linked from many places around the web, and StumbleUpon started to pick it up as well.

Here you can see a graph of all of March’s traffic, a nice picture of the reddit, del.icio.us & digg effects:

And here is a glorious graph of all of 2006’s traffic:

I promise that I had traffic before March 29, even if here it’s squashed into oblivion!

Finally, I’ll bring you some captures of what alexa thinks of my domains (it doesn’t know they are related somehow).

First, here is the Alexa’s “Daily Reach” measure, for the last 12 months, 6 months and 3 months (just for your static zooming enjoyment):





I can almost tell you where each spike comes from: the first one, in May last year, comes from Eric Sink’s kind mention of my blog & NGEDIT. The second one comes after the release of ViEmu. The largish one before the digg effect comes from a mention in Bungie’s web newsletter (which, expectedly, led to thousands of hardcore gamers, only one of whom was courageous enough to actually download ViEmu), etc…

I chose to show the daily reach above just because it is the Alexa measurement which best shows the evolution of my web presence. Their best known stat is the “rank”, which ranks the site globally among all websites. They only plot it for the top 100,000 sites, but they give you the number in any case. Here are the graphs of the rank, for the last 12 and 3 months:



Actually, the second large spike you can see earlier this month was due to the cheat sheet making it once again to digg and del.icio.us’ front pages, this time as a direct link to the cheat sheet’s GIF file.

Amidst all of this traffic madness, there is another important source of visitors which is often overlooked. I know I did. The name is StumbleUpon. This is not a social links site, but a plugin that you install to your browser, and with which you both (a)vote sites up or down, and (b)discover sites other stumblers’ liked. The effect is much slower, but the amount of visitors it can bring during a few weeks competes with the likes of reddit and digg.

In order to show this better, I will show some visitor numbers by referrer (only for viemu.com). I’ve decided not to totalize them by domain, as the distribution of source pages also provides some interesting info. I haven’t included many other sources, generated from bloggers, news sites and site owners discovering it and linking to them.

March
Total unique visitors: 22,901

http://www.digg.com 3910
http://digg.com 3210
http://digg.com/programming/vi_vim_Graphical_Cheat_Sheet_Tutoria… 2665
http://www.digg.com/index/page2 543
http://www.digg.com/index/page3 631
http://www.digg.com/index/page4 238
http://www.digg.com/index/page5 95
http://digg.com/index/page2 398
http://digg.com/index/page3 500
http://digg.com/index/page4 184
http://digg.com/programming 141
http://www.digg.com/programming 141
http://reddit.com 1814
http://del.icio.us/popular/ 1116
http://del.icio.us 112
http://www.stumbleupon.com/refer.html 120
http://popurls.com 392
http://diggdot.us 154

April
Total unique visitors: 20,429

http://www.stumbleupon.com/refer.html 7858
http://digg.com/programming 127
http://www.digg.com/programming 121
http://digg.com/programming/page2 69
http://digg.com/programming/vi_vim_Graphical_Cheat_Sheet_Tutoria… 376
http://www.digg.com/search 68
http://del.icio.us 104
http://del.icio.us/search/ 70
http://hedera.linuxnews.pl/_news/2006/04/03/_long/3795.html 1883
http://www.linuxnews.pl 556
http://linuxnews.pl 536
http://www.wykop.pl 216

May
Total unique visitors: 6,208 (this doesn’t count those coming through the GIF link as that is not considered a “page” by awstats)

http://www.stumbleupon.com/refer.html 805
http://digg.com/programming/vi_vim_Graphical_Cheat_Sheet_Tutoria… 133
http://www.digg.com/programming/vi_vim_Graphical_Cheat_Sheet_Tut… 53
http://digg.com/search 36
http://digg.com/search/page2/ 19
http://del.icio.us/search/ 45

Just for fun, I have included the links from several sites in Poland during April. For some reason it was very popular there during that month. Maybe vi/vim is better suited to heavily accented languages like Polish?

Fact #5: I’d need to sell about 1.5x to 2x as much as I’m selling now to live off of the income from ViEmu. Not a big success 10 months after release. It’s ok, as I’ve learned a lot from the experience, and I needed to do most of it for kodumi anyway, which is the main goal. At least for the kodumi I want to develop and release.

Fact #6: vi/vim emulation for VS is not for the masses. I have gotten over 50k visitors to the site in the past two months. This is about more than 20x as much as I was getting beforehand. I guess a product with a more general appeal would have noticed an enormous spike in sales. I’ve only seen a smallish upwards trend. Even VS users are a minority among vi/vim fans! I’ve sworn not to switch over to a Dvorak keyboard layout until the business really takes off, I could end up targeting an even smaller market!

Fact #7: I don’t understand Google results. I’m on page number one for “vim tutorial”, but nowhere to be seen for “vi tutorial”. I was extra careful to write “vi/vim graphical cheat sheet and tutorial” everywhere, so that I would be found by any of the likely keywords, and the result is so bad it’s sick. Searching for “vi emulation visual studio” gets the old page, even if there are links to www.viemu.com all over the place. If there’s a sandbox, I don’t understand why it affects some keywords and not others. Is “vi” too short? Then how did my SEO work before with the ngedit.com address? I’m starting to experiment with creative redirections to the new site, but I’m going to do it the slow way in order to cut the losses in case Google doesn’t like my playing around.

Fact #8: it was cool to have the vi/vim cheat sheet translated into simplified Chinese by Donglu Feng, a nice guy who sent it over to me. It makes regular vi/vim seem a piece of cake:

Rough strategy sketch

Wednesday, March 22nd, 2006

I think I promised a general strategy post & a status report, some time ago. Here goes.

Development strategy

I am currently sharing my efforts between two development efforts. One of them, ViEmu, has been available for almost 8 months now. It has improved, a lot, and sales have been steadily climbing. Although not a stellar success, it’s working well beyond my realistic forecasts (not beyond my wildest dreams), and I’m really happy that I decided to do it.

The second one, code-named NGEDIT, has been in development for a bit over a year, and it’s still not ready for release. In the time I’ve been developing it, both my belief in the concept, and my disrespect for my own time estimations, have grown a lot. I would be very happy to release 1.0 around July or August, one year after the release of ViEmu, but I know it’s still optimistic. And that’s after I’ve decided to cut out most of the stuff for version 1.0!

Of course, apart from these clear-cut fronts, and not including my day job, there are other fronts I have to attend. Customer support, for example, or this blog, for that matter.

I’ll try to summarize, in a general sense, what my current plans for the next few months are. What the main goals are, and how I’m planning to achieve them.

The #1 goal, as you can guess, is to release NGEDIT version 1.0. This is a bit trickier than sounds. The act of releasing it is, in a general sense, more important than the exact functionality it brings. I have come to this conclusion after over a year in development, and the experience of ViEmu. Emotionally, it’s much better to be working on improving an existing product than it is to be working on a product for its first release, with no users or customers. As long as you are not too impatient to get a lot of sales, having actual users & feedback is a big boost for motivation. Having a few sales helps, as well. And, as long as the product is good and there is a need, sales only get higher as you improve the product.

In order to get this process working, I’ve cut out many planned features from 1.0, in order to release it before long. You might ask, why don’t you already release it in its current stage?

A common answer, but not too informative, would be to answer that it’s still too basic, or unusable. Well, not completely true, as I use it. But a better answer would involve some thought on the market I’m getting in. The text editor market is pretty saturated, and most products out there have many man-years of effort built in. There is at least a general perception of things a text editor must have. I think releasing it without these features would be too much of a stretch. Rest assured, I’ve carefully removed everything which isn’t essential for 1.0. As with ViEmu 1.0, the first release will be pretty basic, but it will hopefully be a better tool for at least some people out there, and that should trigger the initial dynamic of usage-feedback-improvement.

Apart from these essential elements, NGEDIT 1.0 will also sport some interesting things that are well outside the minimum requirements list. The very complete vi/vim emulation, for one, or the native management of text in any format (no conversion on load/save). There are a few more, but these are probably the most interesting to talk about. There are two main forces that have resulted in this uncommon feature set. The first is that I’m building NGEDIT 1.0 as the core framework for the really advanced features, which have some unique requirements. And the second is that I’m building it to become my favorite editor first, and only then a commercial product. This results in the need of powerful vi/vim emulation, which is bound not to have much relevance as a commercial feature.

So, we could say the road to NGEDIT 1.0 is drawn by three guiding principles, listed in increasing priority:

  • III: Build a good foundation for the future versions of the editor, if not fully realized, at least following a scalable design
  • II: Release the minimum product that makes sense
  • I: Build my favorite editor

This is not a list of principles I try to adhere to. It’s more of a recollection of the kind of decisions I’ve found myself taking on intuitive grounds. I’ve seen that I will trade the best design for some functionality, in order to be closer to release, and I’ve found that I’ve traded every sensible business principle by deciding to implement some very complete (and costly) vi/vim emulation. The fact that my sticking to vi/vim emulation has resulted in ViEmu, which is a nice product, (kind of) validates the principles. Actually, I think it validates them because I find myself enjoying the effort, which helps in sustaining the long term effort, and the business is gaining momentum. Apart from this, the ViEmu experience has been an incredible sandbox where to learn, and the lessons learned will play a nice role towards the actual release of NGEDIT. For example, the Google SEO front, and also the adwords & clickfraud front.

In a general strategic view, I’m meshing my efforts on NGEDIT 1.0 with steadily improving ViEmu. Even if ViEmu doesn’t have the business potential of NGEDIT, I think that making all the customers of ViEmu happy only helps with the later stages of building the business. One thing to which I haven’t paid too much attention is marketing ViEmu. I think I could easily improve the sales performance of ViEmu with some effort, but I also think this efforts falls on the other side of the line “makes sense over working on NGEDIT”. So far, a bit of Google-tweaking, a bit of adwords, a bit of word-of-mouth, and a deserted market have been successful in building up sales.

This is very different from what I think I should do if ViEmu were the product on which I wanted to base my business. I would have to be working 100% in promoting it while steadily improving it. But, frankly, I don’t think ViEmu would be a sensible sole-business product. Not everyone is dying for vi/vim emulation.

So, what do all the above principles result in, as practical acting? The first point is that, for the past few months, I’ve been (a)improving ViEmu little by little and releasing new versions, (b)designing and working on the core architecture of NGEDIT, and (c)crossporting ViEmu’s vi/vim core to NGEDIT. The reason for the third point was that, upon using NGEDIT myself, I was sorely missing good vi/vim functionality. It already had some nice vi/vim emulation, written in NGEDIT’s own scripting language, which was the seed for ViEmu, but ViEmu had grown way beyond this seed. Thus, principle (I) kicked in, and I started to crossport ViEmu’s vi/vim engine.

Why do I say crossport? The reason is that I have been rewriting the core in such a way that it can be used both within NGEDIT and within ViEmu. This has had some major requirements on the design of ngvi, as I like to call the new core, and it’s a reason it’s taken some serious time to develop. This effort has some nice side effects:

  • I now have a super-flexible vi/vim core that I can integrate in other products, or use to develop vi/vim plugins for other environments (ah, if only solving interaction problems with other plugins weren’t the worst part!).
  • I can now put in work that benefits both products.
  • I’ll talk about it later, but I have come up with some neat new programming tricks due to this effort. The payoff for this will come later on, but it’s there anyway.

The new core is almost finished, with only ex command line emulation left to be crossported. For testing, this core is being used in NGEDIT. That way, ViEmu can advance as a separate branch. As soon as ngvi is finished, I will start implementing ViEmu 2.0 based on ngvi. This new core already brings some functionality that ViEmu is lacking, and I will be just plain happy that most of ViEmu is now officially part of NGEDIT.

And after this, I have a couple major features in NGEDIT that need to be implemented, and a gazillion minor loose ends. If you are an experienced developer, you’ll know it’s those loose ends that put the July/August release date in danger.

Names, names, names

As I mentioned recently, NGEDIT will not be the name of the final product. I already have the candidate for the name, and there’s only one thing pending before it becomes official: I need to check it with a Japanese person. I haven’t been very successful through asking here on the blog, or through asking the Japanese customers of ViEmu. Understandably, I haven’t insisted too much on my Japanese customers – they are customers after all!

I don’t want to reveal the name just yet, as I don’t want even more confusion if it ends up not being the final name. I would also like to have at least a placeholder page ready when I reveal the name.

Apart from this name change, I also intend to do something with the blog’s name. I plan to blog more and more in the future, as the business doesn’t critically require all my energy. I also plan to cover other areas: programming languages, software design, A.I., O.S.S., operating systems, I’d even like to write on things like economy or the psychology of programming! I think a more general name would be a good idea.

Given that the new editor will have its own new name, that I plan to move ViEmu to is own domain (viemu.com, already up with a simple page), and that the blog needs another name, ngedit.com will very likely end up pretty empty.

All that pagerank accumulated for nothing… sigh! In any case, now should be the best moment to do the deep reforms.

I’ll let you know as these names are ready for general exposure.

Tha blog

If anyone has been reading long enough, you will have probably noticed that I post less often that I used to. The main reason is that development itself already drains most of my available energy. There is not much I can do about that, except wait for days where I have more energy, and wait for the moment when NGEDIT is already released. I will feel much better when NGEDIT is out there, and I think I’ll be able to concentrate better on other things. Having put so much effort so far, and not having it available for download & for sale puts a lot of pressure.

But there are also other reasons. For one, I have many interesting topics I’d like to cover, but which I don’t want to cover just yet. I prefer to wait until I have a working product, before bringing up some of these areas. Should be better business-wise.

This ends up meaning that I don’t want to write about the stuff I want to write about. Ahem.

Anyway, I have come up with an area I’d like to cover with a series of posts. It’s about the techniques I have been using for the development of ngvi, which could be described as the application of dynamic & functional programming to C++. Part of the techniques will be applicable to C++ only, but many other apply to general imperative/OO programming. Hopefully it will be interesting to (some of) you.

Google *loves* the H1 tag

Friday, March 3rd, 2006

(The short version, in case you don’t want to read more: have H1 tags in your pages, containing the keywords you’re interested in. It pays off)

Isn’t it frustrating when your page doesn’t even appear in Google for your target keywords? It can be even worse:

  • you may not be targeting competitive keywords at all, and there may be no competing products at all.
  • There can be several other pages, about your product, and linking to your page, actually appearing on the results!

This is what was happening to me with the main page of my product, ViEmu. ViEmu provides vi/vim emulation within visual studio, so pretty obviously the target keyphrases are “vi visual studio” and/or “vim visual studio”. The product and the page have been there, accessible through http://www.ngedit.com/viemu.html since late last July. There have been quite many mentions of it, which link to that page, from blogs, review sites, etc… The page has been indexed all along, and appearing on the top results page of Google for things like “visual studio vi emulation” or, quite obviously, “viemu”. But it didn’t even register on the much more interesting “vi visual studio” and “vim visual studio” search phrases. By this, I mean it was nowhere to be seen on the first 40 pages of results or so. What’s even funnier is that many of the mentions of my page did appear there, even on the first few pages.

I have an adwords campaign (read my report on adwords for details on the effectiveness, click fraud, etc), which helps out, but I’d really prefer to be on the main results. What’s more, I couldn’t easily understand why I wasn’t.

Trying to understand how Google sorts its results is a tricky task, as well as a moving target. But I had an advantage: a certain review from Tobias Gurock over at Gurock Software was scoring incredibly on search results - it was on the first or second page of the results for the interesting searches! So I decided to have a look at it and try to find out why Google liked it so much.

The first thing to check, obviously, was whether that page had a significantly higher PageRank, or many more incoming links. Actually, it seemed to be about the same as mine (PR5), so that probably wasn’t it. Even other reviews, with much lower PR, did at least appear after page 3 or 4 of the results.

So that left the actual content itself. After some review, discarding the title, presence of the keywords, etc… I got it down to two differences:

  • The name of the html file, in their case, contains the keywords (it’s “http://software.gurock.com/postings/vi-emulation-for-visual-studio/25/”)
  • …and their H1 tag is “Vi emulation for Visual Studio” (today it also includes a self-link, but I think it used to contain just the text before they moved to WordPress)

Changing the filename was out of question – with all the links out there, I wouldn’t want to lose that. A 301 http redirect may be a possibility, but I was weary of Google consequences (I could make it even worse, possibly losing the accumulated PR).

But the H1 tag… see, my original web site design did not include an H1 tag at all. Along the product’s logo, I had a graphical rendering of the name – not leaving room for a text H1 tag.

So, I decided to “upgrade” those pages to having an H1 tag. The contents of the tag: pretty obvious, “ViEmu: vi/vim emulation for Visual Studio”. The text rendering of this title looked fine, so on February the 11th, I uploaded the new ViEmu pages. And started waiting.

Google comes often to my site (daily?), so that was fast. About a week afterwards, Google’s cache started showing the new content. So now I knew it was already there. The search results, anyway, kept on the same.

But around the 21st (last Tuesday), I found out to my grateful surprise that my page started appearing on the first results page, around #5. During all of last week, it was a bit unstable – some searches would work fine, but searching a few hours later would show the old results with my page nowhere. This week, finally, about 90% of the searches already show the new results!

I attribute the instability to the results requiring propagation around Google’s servers, which is expectedly a slow process. I’m guessing (and hoping) it will disappear altogether in a few more days.

Lessons learned? Always include a header in your design (I guess an image with alt text may work as well, but I’m not trying). Name the html files with the relevant keywords, not just with your product name.

And be prepared to learn a lot!

The cheesy post of the year…

Wednesday, February 1st, 2006

Ok, not that I promise not to make another cheesy post during the whole 2006.

First things first, congratulations to Dimitris Giannitsaros. He made it all the way to releasing MagnaCRM 1.0, his web-based customer relationship marketing application last week. He even managed to post a mini-postmortem on the process. After (figuratively) seeing him work during the past year or so, I’m happy that he made it there. As far as my experience goes, getting to the first release is probably the toughest part of the way. Then customers or prospects ask for concrete stuff, and that really propels your improving the product.

I congratulated him by e-mail during the past week, so, hey, don’t be too hard on me for bloggratulating one week late.

Seeing him reach 1.0 made me think. Well, not that I don’t think regular days, but it made me think in a particular direction that led me to this blog post.

I started developing NGEDIT in February last year. About at that same time, I started hanging around the incredibly useful Business of Software forum forum frequently, reading the experiences of others, asking for advice myself, and offering the occasional help when I felt I could.

Setting up one-man software shop is lonely. That means, it’s tough. You’ve got nobody with whom to share the efforts or the joy of reaching milestones. I’ll bet this is one of the top reasons few people do it (comparatively speaking). When you go to an office, you have coworkers with whom to share your joys and woes. When you are at home, you are the only one who feels the pain of rewriting the third vi/vim emulator in a row. You can post to the blog and exchange emails on the subject, but it’s not the same. You can tell your non-geek friends or SO if you have one, but you’ll have a hard time just explaining what you’re talking about. It’s just not the same as living through it together.

Well, maybe the vi/vim thing was specific to my case, but you get the point.

Given this state of affairs, you actually feel a weird feeling of companionship with other guys doing the same effort across the globe. Weird, because you don’t know their faces, but real, because you guess they’re going through a tough effort very similar to yours.

So?

The point is that you feel a certain kind of attachment, and you actually enjoy their success. It’s the guys who took the wild road at the same time as you.

Each one’s a different case, different circumstances, and completely different products. There’s the Gurock brothers, who develop & sell tools for smart trace & debugging your code. Their review of my product back in August is also the second largest portal to my website, only after google (although I’ve managed to get some of that through www.viemu.com, which with its single page seems much more interesting too Google than my main site).

There’s also Ian, who started with one project last year but got around to successfully launching notify-wire first with what seems a very promising start. He was the one who initially told me to start a blog even before the product was ready, for which I’m really grateful.

Then there’s Andy Brice, who for some reason chose to release a table arrangement seating plan and seems to be doing well at it. He uses to post interesting studies at the forum, and often helps me over e-mail with tricky issues like payment processing, names, etc…

There is also Gavin Bowman, who shares his effort between Oriador Rota (an app to plan staff scheduling) and WebHelperBrowser (a tool to permanently save the content of web pages), and who likes to post on personal productivity insights, and has recently started to post a nice weekly digest of interesting MicroISV posts and events.

How not to mention Ian Landsman, who we’ve been able to see through the 1.0 release of his helpdesk software application, and recently beating the $10,000 mark in sales, who posts really useful info on his blog, and seems to have a no-nonsense approach to his business (together with an attention to detail that I already told him I thought could only result in a successful product).

Want to find more of these kind of initiatives? You can always head over to Baruch Even’s Planet MicroISV aggregator and see many other initiatives in action.

Also Jose Gonzalvo, who released dbdesc, a little utility to document your database while he’s preparing another, larger application.

And how to forget Bob Walsh, who with his MicroISV blog, his MicroISV site, his recent book, the BoS forum moderation, and his really frequent posts there, has me utterly amazed as to the amount of work a single person can do.

To close the list, my hat off to Eric Sink and Joel Spolsky, the first one for coining the MicroISV term and posting plenty of interesting information in his blog (and, of course, for posting the link that first brought lots-of-traffic to this blog), and the second one for the very entertaining writings which have brought together in a single place all these very interesting people.

I just wanted to share some of the people I follow in the MicroISV world. What do all of them have in common? They work hard. Really hard.

So: it can be done. All these cases show it. It does require a tremendous effort, though. It takes such hard work that, if you do it, you will get to really learn the names of the chaps doing the same thing around the globe.

PS: It was difficult to write this post. It took a couple of rewrites. Too cheesy. Anyway, don’t despair, because I already have the almost-monthly ’strategy post’ lurking in my mind. I really like posting about my strategy, and the good thing is that I never run out of material: I change it almost every month.

ViEmu, adwords and clickfraud

Friday, December 9th, 2005

While I was doing some http logs analysis on the number of downloads of ViEmu, my commercial vi/vim emulator for Visual Studio, some interesting information turned up. Given that I think it may be useful to other entrepreneurs using adwords to promote their business, and that I have also received several requests for my experience with adwords, I’ll be sharing that information in this post. Hopefully it will save a few bucks for other fellow developers.

Some warnings are due before I delve into the details. First, I don’t really have any evidence of clickfraud - there simply are some things in my logs which look, hm, weird, and they may be a signal of something else. But it could all be due to my more-than-limited understanding of adwords. Given that I’m not spending much, I haven’t spent too much time investigating it. It would be wasting that time which is better spent in other areas.

As well, I haven’t taken the time to read all the information available on the net on these issues, so please feel free to point out the possible flaws in my reasoning.

As to the applicability of my case to other people, I guess my case is not the most common one, as I think I’m the only advertiser working on many of my keywords. Given this, there is hardly any bidding at all, and click prices are very cheap (5 euro cents/click). It must work very differently if you are advertising on keywords with a tough competition (I guess I will be able to comment on that once I release the NGEDIT text editor).

Anyway. I set up my google adwords campaing at the end of July, as I released ViEmu 1.0. It took a few hours or days for advertisements to appear for relevant searches, but it’s been working almost unattended since. I changed a minor detail in the ad text, and I added other keyword combinations as google searches reached my site and taught me what terms people actually use to search for in case they’re interested in vi/vim integration with Visual Studio.

Given I had hardly researched at all, I learnt stuff as things happened. When I set up the campaign, I saw I had to pay about 4 euro cents per click. But afterwards, I had to raise the bid to 5 cents/click, as google warned me and turned off advertising for some key phrases because of a price that was too low. This is pretty simple to see at your adwords.google.com account.

I also started getting hits from those clicks. I found them as hits referred from “pagead2.googlesyndication.com/…” where the “…” is a really long and complex reference. It actually took me a while to realize thouse clicks were from google adwords.

There have also been other weird hits, which had a referer address of “searchportal.information.com” followed by some kind of encoded ID (such as “UVsPWVALXVUMVV8LWQgQRggaCFIXE1Y_CFEIDA0BAQ”). These addresses took me to a search page which has the nasty habit of becoming a “frame parasite” to your web surfing, and used to encode URLs to those ID strings and route everything through their site. I had severe doubts that someone educated enough to use vi/vim would surf with such a bugger.

Anyway, back to my http log review, I started doing an analysis on my November data. I usually keep track of how many downloads of my product there are a month, and try to study the correlation with monthly sales (given the 30 day trial period, tracking is a bit difficult, but I think general trends are still there). I decided to classify all hits to www.ngedit.com in November to be able to tell how many of those came from IP addresses that ended up downloading the trial version of product.

I used vim on the log files to do this process. vi/vim is pretty good for this kind of text processing and I had the desired list in a short while, although it did involve some of that vi black magic.

Anyway, it turned out that, out of the ~20,000 hits of the month, over 6,000 belonged to IP addresses that downloaded ViEmu. As an aside, it was higher than I expected. But now that I could focus better on less information, I could start seeing some new information. I removed all lines not containing “pagead2″ in this reduced hit log (ad-vi-tisement: “:v/pagead2/d”), and got myself down to just 11 lines - and to my amazement, there were only 3 IP addresses! One IP appeared only once, but the other two appeared 5 times each. In the full log, there were 24 hits from pagead2, and the repetition of IPs was kind of “hidden” (I hadn’t done a :!sort on them to see the unique addresses).

I nslookup’ed both addresses, which actually only differed in the last byte of the IP address, and only ‘localhost’ was returned from the reverse DNS lookup. I went back to the full hit log, removed everything but IPs belonging to the same subnetwork (n.n.n.*), and I also found out that some of the “searchportal.information.com” links belonged to them. Things started to make some sense.

Let me show you one of the googlesydication referers at this point (broken up in lines for nice display):

http://pagead2.googlesyndication.com/pagead/ads?
client=ca-pub-0919305250342516
&dt=1131084326621
&lmt=1131084326
&format=336x280_as
&output=html
&url=http%3A%2F%2F72.14.203.104%2Fsearch%3Fq%3Dcache
  %3Aq1fqcI2sut4J
  %3Awww.lyrics007.com
  %2FBeverly%252520Craven%252520Lyrics
  %2FPromise%252520Me%252520Lyrics.html
  %2Bpromise%2Bme%26hl%3Dvi
&color_bg=FFFFFF
&color_text=000000
&color_link=0000FF
&color_url=008000
&color_border=FFFFFF
&ref=http%3A%2F%2Fwww.google.com.vn%2Fsearch
  %3Fhl%3Dvi
  %26q%3Dpromise%2Bme
  %26btnG%3DT%25C3%25ACm
  %2Bki%25E1%25BA%25BFm
  %2Bv%25E1%25BB%259Bi
  %2BGoogle
  %26meta%3D
&cc=161
&u_h=600
&u_w=800
&u_ah=570
&u_aw=800
&u_cd=32
&u_tz=420
&u_his=12
&u_java=true

That’s a URL!

I started trying to decipher these URLs. Watching other pages that implement adsense, and how they appear on google’s cache, I deduced the referer for this click (for which I was being charged), came from a google cache page (”url=http://72.14.203.104/search…”). It was a cached page from www.lyrics007.com, which is a repository of song lyrics. The google cache had been accessed from a search at google Vietnam (a trip to www.google.com.vn showed that). The search seemed to include part of the lyrics and “vi” with some weird unicode characters in between (I’m as of yet unsure of whether those %25BB are geometric signs or diacritic marks).

Who gets payed for that click? I think the owner of www.lyrics007.com does. A whois look up showed that the hosting provider is located in Houston, Texas, and that it is registered by someone in Hong Kong.

If I visit any of the lyrics pages, sure, the Google ads are relevant to the content of the page. But it seemed that the ad for ViEmu appeared when looking at a google-cached copy of the page. It’s weird but it may happen. I think the “vi” with weird characters in between may have tricked the adsense engine into showing my ad.

The visits coming from ‘lyrics007′ showed different types of activity. Sometimes just a hit to the ‘html’ file, other times regular page viewing involving hits for the graphics on the page, and even downloading the product! I even found other hits from the same IP addresses coming from ’searchportal.information.com’.

So what may have happened? I have two possible explanations.

One is that a developer in Vietnam was looking for the lyrics to some song, using www.google.com.vn. Developers also listen to music and check lyrics once in a while. He clicked on the google cache, in order to access the page, and Google picked my ad (as, obviously, adsense technology is imperfect and the relevance of the ad is just an heuristic). While humming to the tune of the song, the guy in question saw the ad to my product, and was excited to finally see vi emulation in Visual Studio. He clicked on the ad and came to my site. He even downloaded it.

This would mean that I payed google and lyrics007.com for reaching a potential customer of mine - someone who I wouldn’t have reached easily in another way. Fair enough.

The weird thing is that this same guy has some other friends using the computer (or sharing the IP address) who went through exactly the same process several other times during the month. With different song lyrics, of course. And some of the times, their browser crashed before even hitting the ‘css’ file or the page graphics (or maybe they surf with images deactivated?).

They even downloaded ViEmu several times during the month - they must have a messy download directory.

This also happenend from other domains, not only lyrics007. I haven’t researched them much, but they seem to come from nearby areas. If all of the cases have similar explanations, then the domain holders / adsense publishers are not to blame at all.

And then I have a second possible explanation.

Some guy in Hong Kong has set up several domains with song lyrics and other easily accessible content downloaded from other sites. As those guys are damn smart, they have figured a way to force a google cache access to their page into showing any adsense ad. I’ve been trying to do it myself, and haven’t been able to, but the cache does show weird adsense results. Then, they have some kind of bot which accesses those pages and simulates clicks on the ads. They probably click on many “cheap” advertisers & keywords like mine, but every once in a while they might click on a 50 cent or even a $1 ad. I guess they can make quite some cash that way, apart from the legitimate traffic that their site drives. They even use another method based on ’searchportal.information.com’ URL hijacking, which hides even more information from advertisers. And they have even improved the bot to fake normal access to web sites.

I can’t know which one is the right explanation. But, I talked to Andy Brice of PerfectTablePlan, and followed his suggestion of turning off advertising on the “content” network (adsense). I’m only advertising on google’s own search results, for which only google gets paid, and which removes the clickfraud incentive for 3rd party publishers.

I’ve also limited ads to specific countries. Mainly, I’ve limited the countries to those on which I already have customers:

  • USA
  • Canada
  • Russia
  • UK
  • Australia
  • Netherlands
  • Germany
  • Finland
  • Norway

I’ve also added other countries which I think are as likely as those to get me customers: Sweden, France, New Zealand, etc… but that’s about it.

Given that I have been spending less than €10 a month, the scam hasn’t been problematic for me. That’s the main reason it took me several months to investigate and optimize the issue - doesn’t make sense to optimize expenses when they are among the lowest ones.

I expect my adwords costs to go down to one tenth of what they have been - which I think amounts to pretty much the legitimate/interesting traffic that I was getting anyway.

I’m pretty happy for the result of google ads - one customer did tell me that they had found about ViEmu through an ad in google search. That single sale makes up for the rest, which I like to understand as the cost of my training with google adwords.

I hope this post doesn’t upset google - I believe it helps other people make a better use of adwords, and thus also helps google have more happy customers!