So, it’s done – the initial release of the eHow Earnings Tracker is available from the Mozilla Addons site. Head on over to my downloads page for more details on obtaining the addon. The tracker is currently classified as “experimental” which is just Mozilla’s way of saying that they haven’t reviewed it and placed their stamp of approval on it. Apparently there are over 400 addons in the review queue so that won’t be happening any time soon
.
I must say that overall, it was a very smooth process to get my addon hosted by Mozilla. I just had to create an account, fill out a few fields, and upload the addon. The hardest part was deciding which software license I wanted to release my code under. The legalese was overwhelming and I just picked the simplified BSD license. I have no idea if it was the right choice or not.
The tracker is currently pretty barebones, but it is functional from the limited testing I did with it. A few fellow eHow writers (Carol McKenzie, Dianne Cass, and knyc) were kind enough to volunteer their services in testing it out for a few days before I start broadcasting its availability to the eHow community.
What it Does
As I originally mentioned, eHow gives writers very limited earnings data. Currently there is no way to writers to figure out which articles get income on a day to day basis without doing a whole lot of manual work. The tracker collects data each time that it is run and keeps a history so that writers can see earnings increase over time on a per article basis. Since earnings updates only occur at most once per day, the tracker keeps data on a per day basis. This means that if the tracker is run multiple times during a single day, it only keeps the last set of data for that day.
Using the tracker is very easy. Upon installation, it adds submenus to both the main Tools menu and the context menu. The user simply needs to navigate to one of their article earnings pages and select the menu option “Update Earnings”. The tracker will then read all of the earnings pages and generate an HTML report. The HTML report is currently very barebones and ugly but the plan is to fix that up.
eHow Earnings Tracker context menu
How it Works
The tracker works by first examining the URL of the web page that’s currently in the browser. eHow has very specific URL formats for the earnings pages so the tracker can figure out whether or not it can be run.
Once it is run, the tracker examines the HTML of the page and extracts data based on HTML elements and CSS class names. It can also figure out how to navigate to the other earnings pages by using the “Next” anchor link at the bottom of the page and gathers information off each page as it loads.
HTML structure of the eHow article earnings pages
The tracker stores its data in an XML file in the Firefox profiles directory. If you’re curious, you can track it down by looking in the same directory as the URL that appears in the HTML report after the tracker is run. The file is called eHowEarningsTracker_17of26_earnings_[ehow user name].xml.
Caveats
The tracker requires Firefox 3.5 because I needed to use some functionality that only became available in 3.5.
The tracker can only collect data when it is explicitly run. Since it can only read what’s in the rendered HTML pages, it can’t know anything that the user doesn’t see. This means that if the tracker will never have data for days that it wasn’t run.
This tool is completely tied to eHow’s HTML code. If eHow does anything to change the HTML layout of their earnings pages then the tracker will not be able to successfully read any more data until I update it to handle the new HTML layout. However, all of the past collected data would still be there.
I have no idea how this thing is going to handle large amounts of data. Some people have hundreds of articles and tracking earnings data over weeks and months is going to get big.
Upcoming Changes
There’s really only two things I need to work on at this point. The first one is to do some serious work on the HTML report. It needs some nice styling and I really want to add some functionality to it (such as being able to sort by column).
The other thing that I want to do is to provide a way to export/backup the data in CSV or XML format.