Como desencadear Google Analytics a partir do código?
-
03-07-2019 - |
Pergunta
Meu aplicativo lê um arquivo (html) do meu site, e eu gostaria de acompanhar acessos a esse arquivo usando o Google Analytics. Como o GA Javascript não ter executado ao ler o arquivo, ele não é controlado. Existe uma maneira de provocar GA diretamente do código ou, alternativamente, para executar o Javascript de um aplicativo .NET sem adicionar um monte de dependências?
Solução
O Google Analytics funciona fazendo um webrequest através de volta javascript para o servidor do Google. Se você quiser fazer isso programaticamente, você apenas tem que fazer esta solicitação web si mesmo. Eu usaria Fiddler ou FireBug para capturar o que a solicitação parece quando você carregar a página no seu browser. Então você pode usar a mesma URL no seu .Net aplicativo.
Outras dicas
Tenho recentemente lançou uma biblioteca .net que permite iniciar sessão nativamente uma exibição de página com o Google Analytics através de código. Ele é liberado como código aberto sob a licença GNU assim tudo que é necessário é devida atribuição.
Você pode obter a biblioteca aqui: http://www.diaryofaninja.com / projetos / details / ga-dot-net
exemplo de uso da API:
GooglePageView pageView = new GooglePageView("My page title",
"www.mydomain.com",
"/my-page-url.html");
TrackingRequest request = new RequestFactory().BuildRequest(pageView);
GoogleTracking.FireTrackingEvent(request);
Há também um construído em HTTP Handler que permite eventos de acompanhamento de fogo simplesmente incluindo um pixel de rastreamento na página:
<img src="/tracker.asmx?domain=mydomain.com&pagetitle=My%20Page%20Title&url=/my-page.aspx" />
Como alternativa, você pode usar jQuery para controlar os links dentro de uma página usando o Google Analytics (zip, jpg, etc) - blog sobre isso há um tempo atrás aqui:
private void analyticsmethod4(string trackingId, string pagename)
{
Random rnd = new Random();
long timestampFirstRun, timestampLastRun, timestampCurrentRun, numberOfRuns;
// Get the first run time
timestampFirstRun = DateTime.Now.Ticks;
timestampLastRun = DateTime.Now.Ticks-5;
timestampCurrentRun = 45;
numberOfRuns = 2;
// Some values we need
string domainHash = "123456789"; // This can be calcualted for your domain online
int uniqueVisitorId = rnd.Next(100000000, 999999999); // Random
string source = "Shop";
string medium = "medium123";
string sessionNumber = "1";
string campaignNumber = "1";
string culture = Thread.CurrentThread.CurrentCulture.Name;
string screenRes = Screen.PrimaryScreen.Bounds.Width + "x" + Screen.PrimaryScreen.Bounds.Height;
string statsRequest = "http://www.google-analytics.com/__utm.gif" +
"?utmwv=4.6.5" +
"&utmn=" + rnd.Next(100000000, 999999999) +
// "&utmhn=hostname.mydomain.com" +
"&utmcs=-" +
"&utmsr=" + screenRes +
"&utmsc=-" +
"&utmul=" + culture +
"&utmje=-" +
"&utmfl=-" +
"&utmdt=" + pagename +
"&utmhid=1943799692" +
"&utmr=0" +
"&utmp=" + pagename +
"&utmac=" +trackingId+ // Account number
"&utmcc=" +
"__utma%3D" + domainHash + "." + uniqueVisitorId + "." + timestampFirstRun + "." + timestampLastRun + "." + timestampCurrentRun + "." + numberOfRuns +
"%3B%2B__utmz%3D" + domainHash + "." + timestampCurrentRun + "." + sessionNumber + "." + campaignNumber + ".utmcsr%3D" + source + "%7Cutmccn%3D(" + medium + ")%7Cutmcmd%3D" + medium + "%7Cutmcct%3D%2Fd31AaOM%3B";
using (var client = new WebClient())
{
client.DownloadData(statsRequest);
//Stream data = client.OpenRead(statsRequest);
//StreamReader reader = new StreamReader(data);
//string s = reader.ReadToEnd();
}
}
enviamos esta - http: //tilr.blogspot .com / 2012/10 / google-analytics-use-google-analytics.html
O Google Analytics fornece dois sentidos para rastrear ações personalizadas, eventos, ou o que você lidar com eles. No seu caso, a solução trivial é gerar uma exibição de página virtual para o arquivo HTML sua aplicação lê. Chamar o apropriado função JavaScript :
pageTracker._trackPageview("/Foo.html");
Desta forma, cada vez que foo.html é processado, uma exibição de página será gerada por ele como o mesmo que seria uma consulta normal a sua aplicação.
Se você gostaria de distinguir estes foo.html s dos pageviews normais, GA tem um bom recurso chamado Acompanhamento de Eventos então você deve dar uma olhada.
Acabei usando o componente WebBrowser para carregar o arquivo .html, e, assim, desencadear o rastreador GA. O componente WebBrowser executa o JavaScript incorporado.
using (WebBrowser wb = new WebBrowser())
{
wb.Url = new Uri(@"mytrackingpage.html");
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
}
Agora tudo o que tenho a fazer é adicionar algum ErrorHandling, se livrar das DoEvents feias e mover o WebBrowser a um segmento separado.
O Google tem bibliotecas (em alfa) para várias línguas diferentes para acessar várias APIs do Google, incluindo Analytics - há uma descrição agradável aqui - https://developers.google.com/analytics/devguides/collection/ ea biblioteca .NET é https://developers.google.com/api-client-library/dotnet/apis/analytics/v3
Além disso, mantenha em mente a sua política de privacidade que você tem que aderir ao usar este: https://developers.google.com/analytics/devguides/collection/protocol/policy