PubForge Blog

June 22, 2009

How-to: track behavior of “loyal” visitors in Google Analytics

Filed under: Uncategorized, best practices, How-to — Dale Hobson @ 1:13 pm

deeply loyalMost public media sites, even those with a strong news focus, show relatively poor overall loyalty stats, with the average visitor coming twice a month or less. The standard report segments in Google Analytics don’t give a very clear picture of what differentiates the loyal visitor, who returns twice a week or more to your site, from the visitor who beams in from a search results page and is never seen again. This makes it difficult to do testing that targets the loyal visitor.

Fortunately, this can be overcome by using the newish (still in beta) “advanced segments” feature at Google Analytics. Here’s how to create and use an advanced segment that looks at monthly traffic from the loyal visitor–one who visits the site between 8 and 100 times during the selected period (I limited the visit number to 100 on the assumption that people who hit your site more often than that are using it for a browser home page):

  1. Go to your Google Analytics Dashboard
  2. Under Settings, select “advanced segments”
  3. Select “Create new custom segment”
  4. Under Dimensions, expand “visitors” and drag “Count of visits” over to the “dimension or metric” box.
  5. Under “Condition” select “Greater than or equal to” and give it a value of “8″
  6. Select “Add ‘and’ statement”
  7. Drag “Count of visits” over to the “dimension or metric” box.
  8. Under “Condition” select “Less than” and give it a value of “100″
  9. Name the segment something like “Deeply Loyal” and click “Create Segment”

Now the new custom segment can be compared with standard segments such as “All visits” using the advanced segments tab on any report page.When I applied the segment to traffic at North Country Public Radio, I got some immediately useful information:

  1. Frequent return visitors account for a little over 20% of visits and of page views. This means that my loyal visitors don’t visit more pages on any particular visit than does the general visitor.
  2. A little over 30% of views to NCPR’s top three pages (home, news, and listen) come from the loyal segment. So loyal visitors are 50% more likely to visit one of the top destinations than are visitors on average.
  3. The real jump, however, comes with features that are visitor-contributed or visitor-interactive. More than 50% of visits to our popular Photo of the Day page come from the loyal segment. More than 40% of visits to our top blog destination come from the loyal segment. Increases over average loyalty of 250% and 200% respectively.
  4. The lowest scoring pages among the loyal segment were individual story pages, with less than 10% of views coming from the loyal segment. Individual stories are primarily reached via search, or via syndicated feeds, and so are often outside our core visitorship.

These findings suggest a number of strategies:

  1. To increase the overall loyalty of visitors, increase the opportunities for interaction and content contribution on your top destination pages.
  2. The loyal segment is more likely to already be a paying supporter, so member messaging on the pages most popular with loyal visitors might focus on membership upgrade and referrals to other pages with interactive features.
  3. Popular pages more often viewed by the less loyal could be a target for new member recruiting, content-specific micro-giving, “about the station info,” and referrals to pages related by search topic.

Dale Hobson
North Country Public Radio

 

 

June 1, 2009

How to: Get your content on the map via geoRSS

Filed under: Uncategorized, mapping, geotag, best practices, content management, How-to — Dale Hobson @ 2:09 pm

Bill Haenel of Haenel Communications Technologies has added geotagging functions to the main content modules of North Country Public Radio’s custom implementation of his open-source CMS, Public Media Manager. These features operate within both the news module and the events calendar module, adding precise geocoordinates to individual stories and events, derived from text addresses entered by the content creator.

These coordinates are exported from the CMS database into the site RSS feeds in “georss:point” format. By passing the geoRSS feed address as a search query to Google Maps, the feed items can then be rendered on a Google map that will update whenever a new item is added to the feed.

Why bother?

The internet is structured to serve communities of affinity much better than it serves communities of residence. A topical search term, for example, gives you a much better presentation of relevant search results than a geographical search term does. That is in part because content creators have traditionally had much better tools available to provide topical metadata, than they have had to provide location metadata. GeoRSS can provide that missing dimension. This is of increasing importance as traditional media continue to disinvest in local reporting. Geocoding resources also add an extra dimension to content syndication and collaborations where place may be as important as topic.

Some example maps:

North Country News Map: the latest twenty audio news features from North Country Public Radio. GeoRSS feed source: http://www.northcountrypublicradio.org/topicalRSS.php

A Year of Hard Choices Series Map: All the stories in an audio series on the economic impact of the recession in Northern New York. GeoRSS feed source: http://www.northcountrypublicradio.org/topicalRSS.php?topic=hardchoices

NCPR Community Calendar Map: All today’s events from the North Country Public Radio Community Calendar. GeoRss feed source: http://www.northcountrypublicradio.org/upnorth/comcal/rss.php

Basic work strategy:

To get buy-in from content creators, the process had to be dirt simple from their end. On the news side, reporters were provided with an Ajax look-up tool as part of the story submission form. They enter a text-based address, such “Canton, NY” or “80 E. Main St., Canton NY.” This queries the Google Maps API, returning latitude and longitude for the address. These coordinates are written into the story metadata in the news database when the form submits. On the calendar side, prexisting venue addresses were converted into latitude and longitude via a bulk query to the Google Maps API and were added to the venue table in the calendar database. A tool was then added to the venue creation form that would do the look-up as a background process upon creation of new event venues. In this way, content creators were not required to enter anything but a standard text address.

Feed modification:

To exploit the new geodata, the existing site feeds needed to be modified. The feed type had to be modified to reflect the geoRSS namespace. At the item level, the latitude and longitude had to be called out in valid georss:point form. And, of course, the feed needs to be valid RSS in all the usual ways as well.

Address to geopoint “on the fly”

Why use latitude and longitude in the database when the Google Maps API can do the look-ups on the fly? This can be done in theory, but runs into problems in application. If you are mapping only a few items and your traffic is low, this can work. We found that we quickly used up our query limit (15,000 queries per IP in a 24-hour period) at the Google Maps API using this method. Once the limit is reached, Google will not process the feed until the new 24-hour period begins. The better approach is to query the API once when the content is created. Thereafter, the feed item delivers latitude and longitude, which is read without further processing. Also, the number of lookups requested by a text-addressed feed hugely slowed the rendering of the map, and would often time out before completion.

Untagged content:

We found that it was important to have a default location for when no specific location had been applied to the content. In our implementation, we use our headquarters location as the default. This way, all items in the feed have a valid geoRSS:point tag.

Multiple items at the same location:

Google Maps does not stagger map pins for multiple items at the same location. This means that only the newest item at the location can be delivered by clicking on the map. This is a practical problem for NCPR, where we might have multiple reports from our state capital correspondent all located as “Albany, NY.” This can be addressed in a number of ways. Applying different street adresses to each item will differentiate them on the map. In practice, I have been manually editing the coordinates, offsetting them by one minute of latitude or longitude in different directions. A better approach we are looking into is to introduce a random “fuzziness” factor into locations that do not have street addresses. This would provide a unique latitude and longitude to each item, exposing them as discrete pins on the map.

More information:

For stategic implementation and other topics fuzzy enough for an English major, write to me: dale at ncpr dot org. For code and other deep geek: write to bill at hcomtech dot com.

May 13, 2009

Mashups and Related-Info Sidebars

Filed under: Uncategorized — madcowley @ 3:33 pm

Somewhat related to John’s post about related news
content from Google
, I’ve been looking into ways to enhance our content by including references and information
from other sources.

I haven’t had time to do more than compile some links and try a couple of apis, but the kinds of things I’m interested in include:

For News and Public Affairs content:

  • references to related news stories from NPR and other sources
  • references to our own related coverage
  • take-action links, e.g. “how to contact your senator about this” (we’re a community station, so activism is encouraged)
  • exploration, like voting records, maps of affected areas, photos, etc

    For music and playlists:

  • concert calendars for artists on our playlist
  • bio/wikipedia stuff, photos if possible
  • other releases, etc

Here are some of the apis I’m looking into:

  • A general overview and list: http://onlinejournalismblog.com/2009/04/23/the-ojb-guide-to-open-news-apis-part-1-guardian-nyt-and-daylife/

for related-stories

  • http://developer.daylife.com/
  • http://www.guardian.co.uk/open-platform
  • http://www.guardian.co.uk/data-store

for legislator and legislation info

  • http://sunlightlabs.com/projects/
  • http://blog.sunlightfoundation.com/2009/04/20/and-the-winners-are/
  • http://www.opencongress.org/tools
  • http://www.govtrack.us/developers/
  • http://maplight.org/widgets/apis
  • http://www.opensecrets.org/action/tools.php
  • http://www.readwriteweb.com/archives/ussenatevotesnowavailableinxml-bringonth.php

for music

  • http://musicbrainz.org/doc/WebService
  • http://developer.jambase.com/
  • http://api.eventful.com/

I’ve started building a prototype app, just to play with the apis.  I’d be happy to share the code if anyone’s interested, though it’s in ruby so it may be of limited appeal.  The first test was: given an address, find the legislators for that district (sunlight api) and display their basic info and contact stuff along with a picture from the bioguide.

That was really simple to do; it could be useful as a take-action feature, or for stories that feature either a particular district or legislator.

Govtrack (I think) also has a map overlay that displays district information; it might be useful to lay that over a map of the station’s broadcast listening area, or as an extra layer if we started geotagging stories.

April 27, 2009

Finding related content through Google News

Filed under: How-to — John McMellen @ 3:49 pm

I found an interesting feature of the Google News Service. We had our RSS feeds added to Google News’ sources, so our news stories show up in the local news page. I noticed that when one of our stories showed up as a Google News Alerts email, there was link at the bottom to stories on the same topic. The url included a parameter named “ncl” that was set to the url of our story, like this: http://news.google.com/news?hl=en&ncl=http://www.
ksmu.org/content/view/4390/66/

So I asked myself, could I put any story url into this parameter and get relevant results? It turned out, no. But, you can get an RSS feed of your site’s news through Google News like this: http://news.google.com/news?pz=1&ned=us&hl=en
&q=site%3Aksmu.org&output=rss

I found this url by searching Google News based on the “site:ksmu.org” search term. There is a link on the page for an RSS feed. The useful thing about this feed is that each story can have it’s url fed into the ncl parameter and returns a page of other stories on the same topic. The true relevance of each result is arguable, but it usually does a pretty good job. You can turn the results page into an RSS feed by adding an “output=rss” parameter, like so: http://news.google.com/news?hl=en&ncl=http://www.
ksmu.org/content/view/4390/66/&output=rss

You can also control the number of results by adding a “num=10″ or whatever number onto the url.

Having figured this out so far, I decided to build a Yahoo Pipe to fetch the RSS feed of our stories in Google News and get a specified number of related stories for each one. The pipe then turns this back into a stream which can be used as an RSS feed or JSON or other types. You can try it here.

I’m not really sure what to do with it now, though. How would you use such a tool?

April 11, 2009

Curating content

Filed under: content management, social media, open content — John McMellen @ 4:33 pm

Recalling a theme I heard throughout the Public Media Conference this year, I have been experimenting with a Google tool designed to tag and curate content. I have used Google Reader before, but never really thought it did anything that useful that my Outlook didn’t do. Then I found the Shared Items feature. What’s neat about this is not that you can share interesting information with other Google Readers users, which you can; but that you can pull in RSS feeds as well as make note of any webpage using the Google Reader bookmarklet, tag individual items, and output the stream of information as a standard RSS feed that could be subscribed to by anyone, or even fed to another CMS or social media system. This seems like a very simple way to ingest just about any kind of interesting content (text, podcast, video, etc.) and aggregate it into a standard format with very little editting or coding. I think it is a great way for staff at a media organization to share items that they think might edify their audience, and since it produces a standard format, it could easily be integrated into the organizations website or fed directly to subscribers.

 You can find an RSS feed of items that I have tagged as #publicmedia here.

April 10, 2009

How to: Use Twitter as part of the public media toolbox

Filed under: Uncategorized, best practices, content management, social media, How-to — Dale Hobson @ 1:46 pm

It took me a long time to warm up to Twitter. On first glance, it looked like a huge potential time-suck with little payback–one more social media platform to distract my audience from my main site. I’d see that question header “What are you doing?” and the answer was always the same–trying to figure out what this is good for. However, over time I began to see instances where it served my immediate needs as a web manager, and could serve my audience. A successful strategy to use Twitter will focus on places where those two converge.

Example 1: Tweeting the pledge drive

For years, my membership director had wanted a simple mechanism to project frequently-changing messages onto the home page during pledge drives–to update totals and new members, to promote special drawings and to point to special content. Twitter makes that easy, even in environments where non-web staff are not normally able to publish directly to the website. Here’s how:

  1. Open a twitter account
  2. Share log-in info with the person/people who will be posting. They can either post directly from the Twitter site (http://twitter.com/yourusername), or they can download a Twitter client such as twhirl that will allow them to post from their desktop or mobile device.
  3. Log-in to Twitter. Select “Apps” from the menu at the bottom of the page. Select “Widgets” from the Applications page
  4. Select “other” if the feed is going to display on your domain site.
  5. Choose either the Flash widget or the HTML widget. (You can control the appearance of the HTML widget using CSS)
  6. Copy the code for your selected widget and paste it into the page at your site where you want the feed to appear.

This same process could be used to make the home page available to a reporter covering a breaking news story, or to report quickly evolving content such as election returns.

Example 2: Syndicating existing news and blog content automatically via Twitter

Tweeting in real time is burdensome. However, you may have content from your site CMS and from blogs that can be automatically fed to Twitter via RSS feed. Here’s how (using twitterfeed):

  1. Open a Twitter account
  2. Open a twitterfeed account
  3. Log in at twitterfeed and select “go to my twitter feeds (or create a new one)”
  4. Select “Create new feed”
  5. Enter your Twitter username and password, and the URL of the RSS feed you want to send to Twitter. For best results at Twitter, configure the feed to show title only, to include the item link, and to shorten the link address.
  6. Select “Create”
  7. Repeat 4-6 to include multiple feeds.

Each time a new item enters your RSS feed/s, a tweet will go out containing the headline and link.

Example 3: Aggregating your content from multiple sources into one location using Twitter

One of the disadvantages of the Web 2.0 environment is that it can fragment your content and your audience across many locations. You may have a main news site, several blogs, multiple comment mechanisms, a Facebook page, a Flickr photo-sharing account, etc. Twitter provides a simple mechanism that can bring all that content together back on your site. It employs a combination of examples 1 & 2 above. Here’s how:

  1. Open a Twitter account (see Example 1. above)
  2. Open a twitterfeed account
  3. Add all the RSS feeds for the services you want to aggregate to twitterfeed (see Example 2. above)
  4. Get a Twitter widget (see Example 1. above)
  5. Paste the widget embed code where you want the aggregation to appear in your page.

Now, whenever anyone posts a news story, makes a blog post or comment, writes on your Facebook wall, uploads a photo, whatever–it will appear on your main site in a single location.

April 8, 2009

How to: Make an embeddable photo map using Flickr and Google

Filed under: Uncategorized, mapping, geotag, How-to — Dale Hobson @ 4:03 pm

At ncpr.org, I have created a map version of our Photo of the Day feature showing our last 25 selections. It works by using geolocation features at the photo-sharing site Flickr, passing the geocode feed address to Google Maps, then embedding the resulting map in the site.

Some suggested uses:

  • Map a museum’s landscape collection
  • Map a realtor’s inventory
  • Map a social network using headshots with contact info in the caption field
  • Map a travel blog
  • Map a nature trail with flora and fauna photos 

Here’s how:

  1. Open an account at Flickr, if you don’t already have one.
  2. Upload the photos you want to map. Select “public” to make them sharable.
  3. For each photo, select the individual photo, then use the “add to your map” feature in the right-hand links (under additional info)
  4. Use the map tools to give a precise location for the photo.
  5. After you have positioned all the photos, go to your “photostream” page at Flickr. At the bottom of the page, copy the URL for your photostream feed that is labeled “GeoFeed”
  6. Go to Google Maps and paste the GeoFeed address into the search query field. The resulting map should show a location pin for each photo, which, when clicked, displays a thumbnail linked to the full photo, plus any caption text and other data you associated with the photo at Flickr.
  7. To get an embeddable map into your site, click “Link” on the upper nav bar of the Google map, then copy the HTML embed snippet that displays there.
  8. Paste that HTML snippet into the page at your site where you want the map to appear.

Whenever you add another photo to your Flickr photostream, it will automatically flow to your embedded map.

Enbedded NCPR Photo of the Day Map: