As you are probably aware, FeedBurner's way of tracking subscriptions is a little bit unreliable. You've probably seen your subscription numbers drop significantly during the weekends and during the days when you have no new posts or little activity. If you’re like me, you want to know your actual subscriber numbers.
There isn’t a straightforward solution, but I have a couple of ideas I'd like to test. One of the easiest involves using FeedBurner’s Awareness API to gain access to the raw data collected and interpreting the data myself in a more useful way. The other idea takes a little bit more time and involves parsing the RSS hits from the web server log file. I explained my idea for the log file in this comment.
The API idea has the disadvantage that depends on FeedBurner, and my hands would be tied later if I wanted to create a competing product. On the other hand, the log file idea is complicated by the fact that, once you’ve moved your feed to FeedBurner, your RSS hits no longer go to your website. You only get the RSS hits from FeedBurner. That is major obstacle.
My plan is to start with the API as it is easier and make sure I can really get better numbers. Next, I'd like to create code to gather subscription data from the sever logs or HTTP_REFERRER. In order to do that I need to move my feed back to my server while keeping FeedBurner's tracking.
Here is my current setup
1. My subscribers access the feed via http://feeds.hamletbatista.com/HamletBatista–InternetEntrepreneurDeveloperAndSearchMarketer
2. FeedBurner accesses my original feed at http://hamletbatista.com/feed/
My ideal setup
1. My subscribers access my original feed directly at http://hamletbatista.com/feed/
2. WordPress automatically redirects feed requests to http://feeds.hamletbatista.com/HamletBatista–InternetEntrepreneurDeveloperAndSearchMarketer
3. WordPress does not redirect feed requests from FeedBurner to avoid a loop
I use a very useful plug-in for WordPress that does exactly this: Feed Smith.
In case you don't use WordPress, here is how you can implement this very easy with mod_rewrite. Create a conditional rule that redirects all access to the feed if the USER_AGENT is not FeedBurner or FeedValidator. You also need to make sure the redirects are temporary (HTTP 302 or HTTP 307). The plug-in does 307s. Note that 307 is only supported by HTTP/1.1 clients. Check http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Example Rule:
RewriteCond %{HTTP_USER_AGENT} feedburner|feedvalidator [NC] RewriteRule ^/feed$ http://feeds.hamletbatista.com/HamletBatista–InternetEntrepreneurDeveloperAndSearchMarketer
[R=307,L] Note: This should be carefully tested in a non-production setting!
The hard part is getting your subscribers to switch links. I think that giving them a strong incentive should help. One idea I plan to implement to increase my RSS subscribers is to share some exclusive tips that are only available if they access the feed from the original URL instead of FeedBurner's. The plan is to release the tips on a given date. I turn off the redirect on that date and use a script that will strip the tips from the feed if it is requested from FeedBurner.
It sounds more complicated than it actually is.
Let me know what you think.