diff --git a/google_analytics_reports/google_analytics_reports.module b/google_analytics_reports/google_analytics_reports.module
index 0b66848..988c0d2 100644
--- a/google_analytics_reports/google_analytics_reports.module
+++ b/google_analytics_reports/google_analytics_reports.module
@@ -37,6 +37,18 @@ function google_analytics_reports_menu() {
     'file' => 'google_analytics_reports.blocks.inc',
     'type' => MENU_CALLBACK,
   );
+  
+  $items['node/%node/google-analytics'] = array(
+    'title' => 'Analytics Details',
+    'page callback' => 'google_analytics_reports_node_detail_page',
+    'page arguments' => array(1),
+    'access callback' => 'google_analytics_reports_access_callback_node',
+    'access arguments' => array(1),
+    'file' => 'google_analytics_reports.pages.inc',
+    'weight' => 2,
+    'type' => MENU_LOCAL_TASK,
+    'context' => MENU_CONTEXT_PAGE | MENU_CONTEXT_INLINE,
+  );
   return $items;
 }
 
@@ -77,6 +89,10 @@ function google_analytics_reports_permission() {
     'access google analytics reports' => array(
       'title' => t('access google analytics reports'),
     ),
+    'access own node google analytics reports' => array(
+      'title' => t('access own node google analytics reports'),
+      'description' => t('Grant this permission to users that should be able to access analytics data about nodes they created.'),
+    ),
   );
 }
 
@@ -106,6 +122,23 @@ function google_analytics_reports_theme() {
   );
 }
 
+/**
+ * Access callback to make sure the logged in user can view report
+ * details for the given node.
+ */
+function google_analytics_reports_access_callback_node($node) {
+  global $user;
+  // Check if the user has the global privilege to view all reports.
+  if (user_access('access google analytics reports')) {
+    return TRUE;
+  }
+  // Make sure this is the creator and they have the permission to view their own reports.
+  if (!user_access('access own node google analytics reports') || $user->uid != $node->uid) {
+    return FALSE;
+  }
+  return TRUE;
+}
+
 /*
  * Construct a filter string that grabs pagePaths corresponding to the specified path.
  */
diff --git a/google_analytics_reports/google_analytics_reports.pages.inc b/google_analytics_reports/google_analytics_reports.pages.inc
index c9c4eae..c2df53a 100644
--- a/google_analytics_reports/google_analytics_reports.pages.inc
+++ b/google_analytics_reports/google_analytics_reports.pages.inc
@@ -43,6 +43,21 @@ function google_analytics_reports_summary_page() {
  */
 function google_analytics_reports_detail_page() {
   $path = isset($_GET['path']) ? $_GET['path'] : '/index.html';
+  return _google_analytics_reports_detail_page($path);
+}
+
+/**
+ * Page callback for node/[nid]/google-analytics.
+ */
+function google_analytics_reports_node_detail_page($node) {
+  $path = url('node/' . $node->nid);
+  return _google_analytics_reports_detail_page($path);
+}
+
+/**
+ * Callback to display a detail report for the given path.
+ */
+function _google_analytics_reports_detail_page($path) {
   drupal_set_title(t('Content detail: @path', array('@path' => $path)));
   $report = array(
     'pageviews_chart' => _google_analytics_reports_pageviews($path),
