Google Analytics can track more than just page views! Here's a simple Drupal module that records an event when a visitor rates content with Fivestar.
/** * @file * Records a google analytics event when a fivestar rating is made. */ Drupal.behaviors.fivestarGA = function(context) { $('.fivestar-widget .star', context).click(function() { $form = $(this).parents('form'); var contentPath = $("[name=content_path]", $form).val(); var rating = $(this).parent().find('.star').index(this) + 1; _gaq.push(['_trackEvent', 'Rating', rating + ' star', contentPath]); }); };
<?php /** * Fivestar / Google Analytics integration. */ /** * Implements hook_form_alter(). */ function fivestar_ga_form_alter(&$form, &$form_state, $form_id) { if ($form_id == 'fivestar_custom_widget' || strstr($form_id, 'fivestar_form_node_')) { // Store the content path in the rating form. // This will be used later as an identifier for the event. if ($form['content_type']['#value'] == 'node') { $content_path = drupal_get_path_alias('node/' . $form['content_id']['#value']); $form['content_path'] = array( '#type' => 'hidden', '#value' => $content_path, ); } } } /** * Implements hook_init(). */ function fivestar_ga_init() { if (user_access('rate content')) { drupal_add_js(drupal_get_path('module', 'fivestar_ga') . '/fivestar_ga.js'); } }