Sunday, 4 December 2005

Feeds: partial or full? How to have both






Delicious bookmarks before domain name change:

The dilemma - what are feeds for?

Whether to provide partial or full feeds is clearly pretty topical at the moment. I've been pondering the tension between the two, and the growing importance of full feeds, ever since Google Blog Search came out, if not before (in the context of Sitemaps). And I have devised my own solution to the dilemma (see my sidebar), which is - let's have them all: partial, full, excerpts, bring 'em on! A howto is below.

The thing is, Blog Search indexes blogs by their site feeds, and many other Web services make use of feeds too whether to find out about updates or for indexing or both (e.g. Technorati, PubSub, Google's Sitemaps).

So a feed is now used for two main purposes:
  • by people, to find out when a blog or site has been updated and see what the updates are, and maybe read them in full via the feed (or read the full article or post on the original site); and
  • by services such as Google, for their crawling and indexing.
There can be a tension between the two. For the latter, you want the feed to be as full as possible, to match your full posts/articles - because if something is not in the feed, it won't get picked up by the service (e.g. links in the latter part of your post where only the first X words appear in the feed, as David has noted; or posts that have dropped off your main page, and therefore your feed, because you've had a busy day posting).

But for the former, well it depends on what your readers want. My posts are generally long and I don't want to overload their feed readers or inboxes (if they subscribe for emails via Feedblitz), so my initial position was to offer an "excerpts only" feed (more reasons are set out in the "Bloglet vs Feedblitz" section of my Feedblitz post). Then, readers could click through to read the full item on my blog if something interested them, plus that meant that my Feedburner log would pick up their clickthroughs. But what about those who'd prefer full feeds to read on their feed readers, what about making available a full feed for Google etc?

Arguments can clearly rage ad infinitum as to whether it's better to offer your subscribers full feeds or excerpts only. I don't think the two camps can be made to agree, nor should they have to. And I don't want to have to be forced to decide one way or the other, myself.

So my solution is - let someone else decide; let my readers have the choice. Each individual is different. Why shouldn't someone who wants a full feed be able to have it, and why shouldn't someone who wants headlines only be able to have that? And I can keep a full feed too, to feed to Google Sitemaps and the like.

Now, through the magic of Feedburner, which lets you create multiple feeds with different URLs from a single source feed, for free, I can have my cake and eat it - and so can my readers. Take a look at my right sidebar and you'll see dropdowns with options, both for my feed and email subscriptions. It was a fair few hours of work for me to think things through (and write this post too), but I hope ultimately implementing this will be good for my subscribers as well as my blog (and it'll be a lot less work for anyone else who wants to do the same, if you follow my instructions and just copy the code below!).

This is how to do it.

How to offer full feeds, partial feeds and headlines only

1. Blogging platforms automatically provide a single full feed (which will be your source feed), though you can usually tweak the feed settings via your dashboard to shorten it. Don't. Make the feed as full as you can get it. And make sure you know the URL of your source feed (for Wordpress users for instance it will be your blog URL followed by "/feed").
In Blogger go to the Settings tab, Site Feed. Publish Feed should be Yes, Descriptions Full. Note your site feed URL on that page, ideally copy it to clipboard - it will be your blog URL with "/atom.xml" added to the end. Save settings and republish.

How to burn a Feedburner feed

2. Now go to Feedburner to create or burn a new feed. Enter your feed URL in the box. Don't tick the "I am a podcaster" box for now, you can always do it later and it may muck things up if you tick for a podcast.

Full feed

3. On the next page, it should have the name of your blog against "Feed Title". Leave it as it is, but (in order to distinguish between your different types of feeds), add a description of the feed type at the end, e.g. mine might be "A Consuming Experience (full feed)". The Feed Address can be changed to what you like, but it's sensible to have it reflect your blog URL, which it should already do - but, again, do add something at the end to help identify it. In my case, I changed the ending of my feed address to "/ConsumingExperienceFull". If you haven't already signed up with Feedburner you'll have to choose a username/password and give them your email address, or you can just sign in if you already have an account. Then click to activate your feed.

4. On the next page note your feed URL (it will be http://feeds.feedburner.com/something) and click Skip directly to feed management. For the full feed, just choose the options you wish. (Personally, on the Optimise tab I make sure BrowserFriendly and SmartFeed are activated. Also, on the Publicise tab I activate Pingshot, ticking/adding a few more services to ping, and I pick Creative Commons and choose No for commercial uses, share alike on modifications and I tick the Some Rights Reserved image - but that's my choice of CC licence, you may want a different licence for yourself, like no modifications, so you should click the "What's this" links and decide for yourself what you want. I will blog more about CC soon).

The important thing here is, again to make things easier for yourself and your readers, to go to the Optimise tab, Title/Description Burner section. In the New Title box, enter the name of your feed (which is probably the name of your blog), but again add "(full feed)" or the like to the end, and Activate. That's it for this feed. Note the feed URL: this is the one that you should give to services where you want them to read your full feed, e.g. Google Sitemaps or PubSub's Add your Feed page.

5. Now, you can repeat the process (steps 2 and 4 above) and create (or "burn", as it's called) another Feedburner feed - except you can shortcut the process by clicking the My Feeds link (or Feedburner logo) towards the top right of the Feedburner page you're on, and after the list of feeds which appears you can use the "Burn a feed right this instant" box to enter your ORIGINAL source feed URL again (like the atom.xml one for a Blogger feed) - note it is NOT the Feedburner URL of the feed you just burned - and click Next.

Excerpts feed

6. Let's say you want an excerpts feed for this next one (if you don't want an excerpts feed but only want to offer headlines, skip this step and go to step 7). This time round, if you want an "excerpts" feed (where subscribers see the headlines and the first X characters of each post), in each of the Feed Title and Feed Address boxes add "excerpts" or similar at the end.

Again, set your feed management Optimise and Publicise settings as you wish, but in the Optimise, Title/Description Burner section make sure what you put in the New Title box ends with "excerpts" or the like so you can tell this apart from your full feed, and go to the Summary Burner section (Optimise tab). Here, choose the maximum length of the excerpts that will be shown in your excerpts feed - the default is 200 characters but you could make it 500, or 100, etc, if you wish. Click Activate. Make sure you've noted the feed URL which should be towards the top of the main Feedburner page for that feed. Nearly there...

Headlines only feed

7. Now, if you want a headlines only feed, repeat step 5 (if you don't want a headlines-only feed, skip this step 7). This time, in Feed Title and Feed Address end it with "headlines" (or "titles") or something similar. Again, use the Optimise and Publicise settings you want, but in the Title/Description Burner, the title should end with "headlines" or "titles only" or the like. [Edited 19 May 2006, thanks to Vlad for noticing it hadn't worked! I've included the further tweak now.] In the Summary Burner section, change maximum length to 0 and delete the text in the Teaser box, then Save. Next, go to the Optimise, Browser-Friendly section. Where it says "Feed content", change the dropdown to read "List item titles only", then click Save. That's it! (for this stage anyway). Again, note this feed's URL carefully.

Changing your blog template or site

8. Now you have up to 3 different Feedburner feeds, one that's full, one with headlines and the first X characters of each post only, and one with headlines/titles of posts only. You can offer your readers a choice of which ones to subscribe to. There are different ways to do it, but this is the way I thought would be the neatest, and the actual code to achieve that was produced by my whizz-at-everything Magical Sheep pardner, Truckspy/Redryder52 (to whom many kudos are due, as is invariably the case!).

9. I put the code in my blog template sidebar; you can put it anywhere but the sidebar seems logical. The first block of code (ending with the first </script>) could go just before the </head> tag in your template, but for ease you could just paste both bits together to one place in your sidebar. You'll need of course to style it to suit your own blog.

10. This is the code (you should change FULLFEEDURL to the URL of your full feed (e.g. mine is http://feeds.feedburner.com/ConsumingExperienceFull), EXCERPTSFEEDURL to the URL of your excerpts feed, and HEADLINESURL to the URL of your headlines feed; or delete the appropriate <option... line in the second block of code if you decide not to offer a headlines-only feed, for instance):

<script type="text/javascript">
//Please don't remove these credits.
//Select/highlight script created by the Magical Sheep team
//(Truckspy/redryder52/KRS and Improbulus)
//based on an idea by Improbulus http://www.consumingexperience.com
//and © Magical Sheep team 2005//
//licensed under Creative Commons licence
// http://creativecommons.org/licenses/by-nc-sa/2.0/
function showFeed(feedURL,feedTxt){
disFeed = document.getElementById('feedfield');
if (feedURL=='clear'){
disFeed.value='';
disLink=document.getElementById('feedlink');
oldImg=document.getElementById('feedimage');
if (oldImg) disLink.removeChild(oldImg);
document.getElementById('feeddirect').innerHTML='';
return;
}
disFeed.value=feedURL;
disFeed.focus();
disFeed.select();
disLink=document.getElementById('feedlink');
oldImg=document.getElementById('feedimage');
if (oldImg) disLink.removeChild(oldImg);
img = document.createElement('img');
img.id='feedimage';
img.src='http://www.feedburner.com/fb/images/pub/feedchklt.gif';
img.style.border='0';
disLink.appendChild(img);
disLink.href=disFeed.value;
disLink.title='Subscribe to the '+feedTxt;
disLink.target='_blank';
document.getElementById('feeddirect').innerHTML='Copy and paste URL for the '+feedTxt+' into your feed reader or click on this chicklet:';
}
</script>

<!-- Please don't remove these credits. Select/highlight script created by the Magical Sheep team (Truckspy/redryder52/KRS and Improbulus), based on an idea by Improbulus http://www.consumingexperience.com and © Magical Sheep team 2005, licensed under Creative Commons licence http://creativecommons.org/licenses/by-nc-sa/2.0/-->
<select id="feedURLs" onchange="var feedURL=this.options[this.selectedIndex].value;var feedTxt=this.options[this.selectedIndex].text;showFeed(feedURL,feedTxt)">
<option selected="selected" value="clear" >Select Full or Shorter Feed</option>
<option value="FULLFEEDURL">Full Site Feed</option>
<option value="EXCERPTSFEEDURL">Excerpt Site Feed</option>
<option value="HEADLINESURL">Headlines only Site Feed</option>
</select><br />
<input type="text" id="feedfield" style="border:0;width:98%">
<span style="font-style:oblique" id="feeddirect"></span><br />
<a id="feedlink"></a>

11. Save your edited template and republish. You'll notice that when the selection is made, the appropriate feed URL appears, automatically highlighted so users won't even have to select it: they can just copy it (by Ctrl-c, or just right-clicking on any part of the highlighted text and choosing copy) and paste it into their feed reader - or they can click the chicklet (orange XML button) to go to a browser-friendly Feedburner view of the selected feed, from which they can copy the URL from the address bar for their feed reader or click one of the buttons in that view to subscribe to that feed using a reader supported by that view (FeedDemon, MyYahoo, etc).

Alternative code

The one drawback with the above is that if you have narrow sidebars like mine, the URL seems to disappear off into the distance because it's too long to fit. It doesn't matter in practice, because the text is still there and still automatically selected, so that someone who just copies it will get the whole thing. Nevertheless, if visually you don't like that, there is another way, less neat but it also works. This is an example of what it looks like, for my feeds, and the code for the template is below that (again change EXCERPTSFEEDURL and the other feed URLs to whatever your feed URLs are, change USUALFEEDURL to the one feed you want as mentioned further below, and save and republish):

Or choose feed type:



Feel feel to try it above by picking one of the dropdowns and clicking Go. Now, with this method, anyone who chooses a feed type and clicks Go will be taken to the Feedburner "browser-friendly" view of the feed.

Code:
<a href="USUALFEEDURL" title="Subscribe to my site feed (excerpts)" target="_blank">
<img src="http://www.feedburner.com/fb/images/pub/feedchklt.gif" style="border:0" /></a> Or choose feed type:<br />
<form name="feedform">
<select name="feedURLs">
<option selected value="EXCERPTSFEEDURL">Excerpts</option>
<option value="FULLFEEDURL">Full feed</option>
<option value="HEADLINESURL">Headlines only</option>
</select>
<input type="button" name="go" value="Go" onClick="window.location=document.feedform.feedURLs.options[document.feedform.feedURLs.selectedIndex].value">
</form>
Now you'll see that for this method I also included the "img" code for the usual chicklet (the orange XML button which users can rightclick to get and copy the URL of your feed, which is a common way people find out the feed URL to subscribe to - you can get the code for other types of buttons via the Publicise, Chicklet Chooser section of Feedburner). You don't have to include any of the bits before the <form... >, it's just one way to provide the traditional route to subscriptions, for people who prefer that. However that means they can only get one feed URL - whichever feed URL you use instead of USUALFEEDURL (and you will have to make that choice for your own blog if you use this route). Assuming you provide e.g. just the excerpts feed via this method, in the "title=" bit of the code I've put "(excerpts)" at the end so that people hovering over the button can see that they would only get an excerpts feed that way, but of course you should change that wording to e.g. "(full") if you are providing a full feed. And then if they want some other kind of feed they can use the dropdown and click Go.
If you prefer the first dropdown option to be for the full feed, just change the code so that the word "selected" appears in the line with the code for the full feed in a similar position in the line (just before "value="), and similarly if you want the headlines feed to be first.

Other points

Finally, here are some other points that may be of interest.

Google Reader

Feedburner don't yet offer a button to subscribe via Google Reader in their browser-friendly view - I think because it's still in beta. While I initially took a dim view of Google Reader, it's definitely been improving, and with the name of Google behind it is likely to increase in popularity, so I've included a way to subscribe via Google Reader, and will leave it at that (explaining the show/hide I used is beyond the scope of this post! Another time). Hopefully Feedburner will come through soon...

For those who don't know the code for Google Reader, it's straightforward. Just use this format the link, changing YOURFEEDURL to the URL of your feed:
http://www.google.com/reader/preview/*/feed/YOURFEEDURL
(e.g. mine is
http://www.google.com/reader/preview/*/feed/http://feeds.feedburner.com/ConsumingExperienceFull)
I could have used a chicklet for that, and indeed done the dropdowns in the same way as above, but I decided not to for now, mainly for time reasons (you can find Google Reader chicklets here).

Email subscriptions and Feedblitz

The sharp-eyed will have spotted that I've also tweaked my Feedblitz email subscription code in my sidebar to offer three versions of emails too. This post is quite long enough so I'll cover that howto in a separate post.

Autodiscovery

For those not familiar with the term, "autodiscovery" is a way to enable feed readers etc. to automatically pick up your feed URL from your blog (as you can see, if you use Feedburner the feed URL will be quite different from your Blogspot or other blog provider's URL). I will explain in a future post how to implement autodiscovery for your feed, for those who don't already know. [Edited 11 December:] Instructions on how to include autodiscovery code are in this post.

[Edited 11 December:] As to which feed URL to use for autodiscovery, to the extent there can only be one, I picked the full feed URL, on the basis that I want anything which automatically picks up my feed URL (which are likely to include the search engines) to find and use the full feed, for the reasons I've explained above. However, strictly it is possible to enable autodiscovery for more than one feed, depending on how you do it and on the feed reader concerned - instructions are now in this post.

Full feed - Feedburner, not source feed

You may have noticed that I burned a Feedburner feed to use for my full feed, even though my Atom source feed from Blogger is a full feed. Why did I do that? Because a Feedburner feed is much more flexible, customisable and user-friendy. For instance, Feedburner's browser-friendly view means that someone relatively new to feeds is given guidance as to how to subscribe, whereas Blogger's Atom.xml file when viewed direct in a browser is liable to make many a beginner run screaming or at least have a palpitation.

Also, via the Publicise, Creative Commons section I can add a nice clear CC licence logo (top left) to a Feedburner feed (if the logo was clickable that would be even better), and the details of that licence are hidden from view in the feed but available to people/systems wanting to know its conditions, so I'm protecting my rights in my feed as best I can. Which brings me to another issue: copyright.

Copyright

It could be argued that providing a full feed makes it easier for others to aggregate your posts and copy your work. That is true. But they could get to your full source feed anyway if you're on a common platform like Blogger, given the standard format of the URL (and it's a pity that Blogger don't allow you to insert copyright information and a CC licence into their source feed as Feedburner do). I personally think making your copyright position and licence clear on your blog pages and the feed you publicly make available (e.g. via autodiscovery) is the best way to notify the world of your intentions.

(I digress, but aggregation of feeds is to me going to be increasingly topical and problematic. If you have a Creative Commons licence that doesn't allow commercial use, and a commercial enterprise aggregates your feed on their site and displays ads hoping people will be drawn to their site (and the ads) by your feed content, is that not commercial use? How do you police that, how do you even find out if it is happening? How and where do you draw the line between say Google indexing your site (whether via your feed or crawling your Web pages) to provide the world with a search function, which blog owners would think is a good thing to help people find their blogs, but making money off that by displaying ads - and a commercial site trying to make money off the back of your feed? Should it matter if they aggregate your feed in full, or excerpts only, etc? What's legitimate use, what isn't?)

Feed stats

Another issue is keeping track of your subscribers. If you have three separate Feedburner feeds in order to offer your readers choice, it won't be easy to figure out the totals etc. It would be good if Feedburner offered some kind of "grouping" or "bundling" function whereby you could pick a bunch of feeds which could then be treated by Feedburner as a single virtual feed or unit for the purposes of statistics etc (and maybe offer the ability to have more than one group to pro users, but just one group for free members - hint hint?!)

I hope this post has been helpful; as always, any feedback would be very welcome.

Technorati Tags: , , , , , , , , , , , , , , , , , , , , , , , ,

18 comments:

Dick Costolo said...

Improbulus, this is a killer post. I'm going to point a bunch of people to it, since it addresses a number of questions and collects a number of ideas we're constantly asked. I would also note that we are going to be adding the Google reader buton and have some other enhancements coming that will continue to make all of this easier. Stay tuned.

Improbulus said...

Thanks for your comment Dick, I'm very glad you think my post is useful. Absolutely, feel free to mention or link to it as you wish. I think Feedburner is going from strength to strength and I look forward to the enhancements (hopefully including the bundling of feeds for stats, and the clickable CC logo in browser-friendly...? :D)

sandy said...

There seems to be a problem with the full feed in the web version of Bloglines: the lines do not wrap, so that the feed is unreadable without excessive side-to-side scrolling. This does not happen with the excerpt feed.

Improbulus said...

Thanks for the heads up, Sandy - I'll look into that.

LcF said...

Great tutorial! Thank you very much!

Improbulus said...

Thanks for the comment lcf, glad it's been of help.

Sudar said...

Hi

I had been waiting for full feeds from your blog for a long time. Thanks for it

Improbulus said...

Glad it's useful Sudar. But please don't wait, if you want anything do just ask (email me or post a comment) and I'll try to oblige if I can. Cheers.

dreamweaver said...

fan-tabulous post, as usual. very informative, beautifully written for the non-geeky. I have updated my RSS how-to to point here. How is that FeedBlitz-how-to-for-multiple-feeds post you promised us going? No pressure ;)

Improbulus said...

Thanks dreamweaver. And thanks for the chivvying ;) but in fact I did that Feedblitz post a while back. I've updated this one to link to it now.

Jennifer said...

Just wanted to say thanks so much for the information! I'm completely non-technical, and I just joined a blogging network that asked me to make my feed long so they can run it on their site. I didn't want to just change my original feed setting, so I knew I'd have to have two feeds--one short and one long. I had no idea how to do this...until you came along. Thanks again!

Anonymous said...

Hi!
I recently tried a partial feed but went back to full. I've made the summary section inactive, BUT my emailed feed is still partial! What gives?
Thanks!!
LL

Improbulus said...

Anon, check both your source feed and Feedburner. Is your source feed in Blogger, WordPress etc set to output a full feed? In Feedburner, Optimize, is Summary Burner definitely deactivated?

Johnny said...

Hey there.. I have a blog about music. I put up Mp3's on a regular basis for people to listen to. I am trying to add a podcast to my blog.

The problem I am having is how to get itunes or any other podcatcher to distinguish between my podcasts and the other media that is on my blog. It seems to display all my media as podcasts. I want people to subscribe to my podcasts.. but not if they get every post I put on my blog..

Does anyone have a suggestion as to how to do this? I have searched everywhere for an answer and my brain is about to explode..

Thanks!

Bathsheba said...

After hours of searching for the answer to my question (how do I get the full feed onto my Feedburner email newsletter) I found your blog... You are a saint and will definitely go to heaven.

Nart Pshegubj said...

Hello Improbulus,
Thanks for sharing your experience with us, i just want to ask a question related to email subscriptions:

How can i add a couple of dots after the summary in order to indicate that this feed update is an excerpt? I was thinking of the following:
1- Set blog posts feed in blogger to Short
2- Set Summary Burner to [...] in feedburner?

Thanks,

Jyotish said...

I tried the code and its working, thnx for the tutorial

King_K said...

How to setup "excerpts" feed by feedburner for my blogger?

for example...

in the feed show one image and reader have to click on link to watch more images on my site.

please advice.

Thank you...