FeedBurner CFC

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.

Raymond Camden's Picture

About Raymond Camden

Raymond is a developer advocate. He focuses on JavaScript, serverless and enterprise cat demos. If you like this article, please consider visiting my Amazon Wishlist or donating via PayPal to show your support. You can even buy me a coffee!

Lafayette, LA https://www.raymondcamden.com