I've been using FeedBurner for quite sometime now to host my RSS feeds, and when they bought Blogbeat, I was even happier since Blogbeat was a great blog-stats tool. Now I get both feed and general item stats all from one source. FeedBurner has an API to retrieve information about your stats so I decided to wrap up some of the API into a nice little CFC. FeedBurner.cfc supports getting both general feed data as well as item data. For example:

<cfset fb = createObject("component", "feedburner")> <cfdump var="#fb.getFeedData('RaymondCamdensColdFusionBlog')#" label="No date, will be yesterday">

This will retrieve the most current stats from the API, which will be yesterday. To get a week of data:

<cfset date = dateAdd("d", -8, now())> <cfset last7 = fb.getFeedData(uri='RaymondCamdensColdFusionBlog',dateBegin=date)> <cfdump var="#last7#" label="7 Days of Info">

And finally last month:

<cfset date = dateAdd("m", -1, now())> <cfset dateBegin = createDate(year(date), month(date), 1)> <cfset dateEnd = createDate(year(date), month(date), daysInMonth(date))>

<cfset lastm = fb.getFeedData(uri='RaymondCamdensColdFusionBlog',dateBegin=dateBegin,dateEnd=dateEnd)> <cfdump var="#lastm#" label="Last Month">

This data then can easily be dumped into a chart:

Here is a live demo.

Along with general feed stats you can get information about individual URLs and their stats over time:

<cfdump var="#fb.getItemData('RaymondCamdensColdFusionBlog')#" label="No date, will be yesterday">

<cfset date = dateAdd("d", -8, now())> <cfset last7 = fb.getItemData(uri='RaymondCamdensColdFusionBlog',dateBegin=date)>

<cfquery name="getTop" dbtype="query"> select sum(clickthroughs) as ctsum, sum(itemviews) as itsum, downloads, title, url from last7 group by url, title, downloads order by itsum desc, ctsum desc </cfquery>

<cfdump var="#getTop#" top="100">

This code shows first getting data from yesterday and getting last week. I then do a query of query so I can find my top entries. If you want to see a live dump of this, please visit this demo.

The CFC, along with sample code, is attached below. A warning first though before you download - and a funny story. FeedBurner gives you nice control over the dates you can retrieve when fetching data. On a whim I was testing a date range of today to 1900. Yes, 1900. And the API worked. Well, technically it worked too well - I couldn't get it to retrieve as it took to long. I then switched to 1990 and yep - it fed me stats.

Now for the fun part - apparently my site had a few downloads in 1990. Back when I was a Junior in high school (and I was the coolest kid at my high school, seriously). I'm assuming this is a bug... but it's certainly an odd bug.

Another bug is that my item stats for yesterday appear to be randomly returning no records at times. If I had to guess, I'd say they have a cluster and one machine is fetching old data.

Anyway - I've posted to their forums on both issues. Let me know if you find this useful.

Download attached file.