A Custom Google Spreadsheet Function for Tracking Pageviews

GOOGLEANALYTICS is a custom Google Spreadsheet function that tracks Spreadsheet views with the help of Google Apps Script. It includes the JSDoc @customfunction tag and thus the function will autocomplete when begin typing in a spreadsheet cell.

/**
 * Track Spreadsheet views with Google Analytics
 *
 * @param {string} gaaccount Google Analytics Account like UA-1234-56.
 * @param {string} spreadsheet Name of the Google Spreadsheet.
 * @param {string} sheetname Name of individual Google Sheet.
 * @return The 1x1 tracking GIF image
 * @customfunction
 */

function GOOGLEANALYTICS(gaaccount, spreadsheet, sheetname) {
  
  /** 
  * Written by Amit Agarwal 
  * Web: www.ctrlq.org 
  * Email: amit@labnol.org 
  */
  
  /* Random ID to prevent browser caching */
  var cache_buster = Math.round(Date.now() / 1000).toString();
  
  /* Client ID to anonymously define the device */
  var client_id = Utilities.getUuid();
  
  // Event Category set to Google Spreadsheets
  var event_category = encodeURIComponent("Google Spreadsheets");
  
  // Event Action set to spreadsheet title
  var event_action = encodeURIComponent(spreadsheet || "Spreadsheet");
  
  // Event Label set to sheet title
  var event_label = encodeURIComponent(sheetname || "Sheet");
  
  var imageURL = [
    "https://ssl.google-analytics.com/collect?v=1&t=event",
    "&tid=" + gaaccount,
    "&cid=" + client_id,
    "&z="   + cache_buster,
    "&ec="  + event_category,
    "&ea="  + event_action,
    "&el="  + event_label
  ].join("");
  
  return imageURL;

}