2011-09-13 32 views
0

谷歌有多個選項生成的G代碼腳本取決於跟蹤什麼:MVC Analytics(分析)幫助

1)A single domain e.g site.com 
2)One domain with multiple subdomains e.g site.com/something.site.com 
3)Multiple top-level domains e.g site.ch/site.fr 

Microsoft.Web.Helpers只有兩個谷歌的方法:

GetGoogleAsyncHtml(string webPropertyId); 
GetGoogleHtml(string webPropertyId); 

所以沒有辦法控制我上面描述的選項。

如果我有One domain with multiple subdomains(second options)的網站,但同時我會使用上述方法之一,或者更好的方法是在這種情況下獲取腳本形式的谷歌,並忘記了那個幫手,這有什麼大不了?

p.s. 我剛剛發現方法@Analytics.GetGoogleAsyncHtml()返回與google A single domain e.g site.com完全相同的ga腳本。所以看起來像助手不會生成另外兩種類型。

回答

0

你可以創建你自己的助手來完成你想要的工作。這就是我在我身邊所做的支持Piwik。只需採用以下示例並對其進行編輯即可支持Google Analytics所需的功能。

public class Analytics : HelperPage 
{ 
    public static HelperResult GetPiwikHtml(Uri serverHost, int siteId) 
    { 
     string host = serverHost.Host; 

     return new HelperResult(x => 
     { 
      HelperPage.WriteLiteralTo(x, " <!-- Piwik -->\r\n"); 
      HelperPage.WriteLiteralTo(x, " <script type=\"text/javascript\">\r\n  var pkBaseURL = ((\"https:\" == document.location.protocol) ? \"https://" + host + "/\" : \"http://" + host + "/\");\r\n  document.write(unescape(\"%3Cscript src='\" + pkBaseURL + \"piwik.js' type='text/javascript'%3E%3C/script%3E\"));\r\n </script>\r\n"); 
      HelperPage.WriteLiteralTo(x, " <script type=\"text/javascript\">\r\n  try{\r\n   var piwikTracker = Piwik.getTracker(pkBaseURL + \"piwik.php\", "); 
      HelperPage.WriteTo(x, siteId); 
      HelperPage.WriteLiteralTo(x, ");\r\n   piwikTracker.trackPageView();\r\n   piwikTracker.enableLinkTracking();\r\n  } catch(err) {}\r\n </script>\r\n"); 
      HelperPage.WriteLiteralTo(x, " <noscript><p><img src=\"http://" + host + "/piwik.php?idsite=" + siteId + "\" style=\"border:0\" alt=\"\" /></p></noscript>\r\n"); 
      HelperPage.WriteLiteralTo(x, " <!-- End Piwik Tracking Code -->"); 
     }); 
    } 
} 
+0

是我的解決方案嗎?如果沒有,請告訴什麼不在這裏工作,所以我可以幫助你更多。 –