Hi, first of all, thanks for this module, it's simple enough to create most read views in a very short time.
However, I've found some issues while implementing it on a multilingual site.
First, I thought that counts were recorded twice, as contents where accesible from two different paths on the default language (example: /path-to-content and /en/path-to-content), and only kept the non-language record as it was the one with less pageviews and for that, it was the last to be processed.
So, I installed Global Redirection to force the content to have always the language code on the path, but then, I stated that all the new pageviews since the instalation of that module were not being recorded.
I digged into the code of this module and I realized that language was not been taking on count while processing the url aliases, so all the urls starting with /en/ or /es/ were being ignored.

I've managed to make some edit on the module (Please forgive me, I'm quite new to the community and to Git, and I can't provide a patch for now) so the path to the node can be correctly retireved from the aliases containing the language code, and also, to keep the counts to the nodes summarized, so diferent aliases for a node can provide an overall counter.

I'm not sure my attempts are fine at all, so I request for a more exprienced programmer to review this code. I modified the function ga_stats_get_data and created ga_stats_get_alias inside ga_stats.module, like this:

/**
 * pull data from a source
 * @param $source_name : then name of the source from which to pull data
 * @param $metrics : an array or string of the metrics to pull
 * @param $time_frame : a time_frame obj 
 * @param $end_time : the end time from which data is pulled
 * @return : an array of obj ready for the ga_stats_count table 
 */
function ga_stats_get_data($metric, $start_time, $end_time, $timeframe='') {
  $data_array = ga_stats_ga_data($metric, $start_time, $end_time);
  $metrics = ga_stats_ga_metrics();
  $counts = array();
  $found = array();
  foreach ($data_array as $d) {
    $count = new stdClass;
    $count->url = $d['url'];
    $count->count = $d[$metric];
    $count->metric = $metric;
    $count->nid = FALSE;
    $count->timeframe = $timeframe;
    $alias = ga_stats_get_alias($count->url);	

    if (preg_match('/^node\/([0-9]*)/', $alias, $matches)  ) {
      $count->nid = $matches[1];

      //check if the node was already found before and, if so, add the previous logged count to the current
      if (isset($found[$count->nid]) && $found[$count->nid]){
      	$count->count += $found[$count->nid];
      }

      //log node as found, or update the counter for the previously logged one
      $found[$count->nid] = $count->count;
    }

    // only log nodes
    if ($count->nid) {
      //use nid as key to avoid duplicate logging
      $counts[$count->nid] = $count;
    }
  }
  
  return $counts;
}


/**
 * perform language checks to get the correct alias for the node
 * @param $url : the url retrieved from ga
 * @return : the drupal path to the node
 */
function ga_stats_get_alias($url){
  	global $language;
  	$languages = language_list('enabled');
 	$alias = preg_replace('/^\//', '', $url);
	$lang = NULL;
	
	//is it the real path, or an alias?
    if (!preg_match('/^node\/([0-9]*)/', $alias, $matches) ) {
      //if it's an alias, check for language configuration in path to clean the alias
	  if($language->provider == 'locale-url'){
	  	$lang = substr($alias, 0, strpos($alias, '/'));
		//is it a valid language code?
		if (in_array($lang, array_keys($languages[1]))){
			//then, crop it from the alias
			$alias = substr($alias, strpos($alias, '/')+1);
		}else{
			$lang = NULL;
		}
	  }
	  
	  //get the '/node/[node-id]' type path
      $alias = drupal_lookup_path('source', $alias, $lang);    
    }
	
	return $alias;
}