Analytics
886 Usuários online agora
886 Usuários online agora
Faça perguntas sobre relatórios personalizados do Google Analytics, o uso da API e do Google Tag Manager e outros recursos avançados
Guie-me
star_border
Responder

Quantidade de visitas API Analytics

Calouro ✭ ✭

Boa noite,

Estou a algum tempo procurando como fazer essa função, e até agora não consegui. Consegui apenas pegar a quantidade total de visitas no site, e não por página.

O que eu quero é:
Quando o cliente acessar uma tela, ela vai pegar a quantidade de visitas realizadas nela. Ou seja, se ele acessar a tela http://www.examplo.com.br/imovel/15 vou solicitar pela API do analytics quantas visitas tem a tela imovel/15, assim como se ele acessar a tela http://www.examplo.com.br/imovel/27, preciso saber quantas visitas tem a tela imovel/27.

Tem como fazer isso pela API javascript? Tentei por ela e pela PHP mas não consegui por nenhuma das duas.

Especialistas responderamverified_user

Soluções aceitas
Marcado como Melhor Resposta.
Solução
Aceita pelo autor do tópico André T
Fevereiro 2016

Re: Quantidade de visitas API Analytics

Calouro ✭ ✭
Pessoal,

Consegui resolver meus problemas.
Primeiro estava utilizando a API javascript, mas queria um serviço servidor-servidor. Na API javascript sempre pedia autorização do usuário, sendo que não queria isso.

Para resolver o problema adotei a API em PHP, utilizando a o projeto https://github.com/google/google-api-php-client. Infelizmente o Google apresenta um problema sério e me causou grandes transtornos até eu resolver pesquisar e encontrar o problema. A documentação do Google https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/web-php está desatualizada (versão 1.0), enquanto o projeto no github manda utilizar a 2.0. No minimo deveria ser retirado do ar ou ajustado para a nova versão.

Por fim, mesclei um dos exemplos que tem no github com essa biblioteca antiga e consegui fazer um código em PHP que atendesse as minhas finalidades. Não consegui juntar o projeto ao LARAVEL visto que existem diversos tipos de incompatibilidade e por isso criei dois projetos separados. Se alguém souber como integrar, serei eternamente grato.

O código da minha aplicação, caso ajude alguém:

<?php

function getService() {
include_once __DIR__ . '/vendor/autoload.php';

$client = new Google_Client();

$credentials_file = __DIR__ . '/service-account-credentials.json';
// set the location manually
$client->setAuthConfig($credentials_file);

$client->setApplicationName("Analytics");
$client->setScopes(['https://www.googleapis.com/auth/analytics']);
$analytics = new Google_Service_Analytics($client);

return $analytics;
}

function getResults(&$analytics, $url) {
// Calls the Core Reporting API and queries for the number of views
$ids = "ga:xxxxxxxxx";
$start_date = "2015-09-21";
$end_date = "today";
$metrics = "gaLíngua do Smileyageviews";
$dimensions = "gaLíngua do SmileyagePath";
$filters = "gaLíngua do SmileyagePath==/" . $url.;
$optParams = array('dimensions' => $dimensions, 'filters' => $filters);
return $analytics->data_ga->get($ids,$start_date,$end_date,$metrics,$optParams);
}

function printResults(&$results) {
if (count($results->getRows()) > 0) {
// Get the entry for the first entry in the first row.
$rows = $results->getRows();
$visits = $rows[0][1];
echo($visits);
} else {
echo 0;
}
}

$url = "example/1";
$analytics = getService();
$results = getResults($analytics,$url);
printResults($results);

?>

Para utilizar o código basta 3 passos:
composer require google/apiclient:^2.0.0@RC
Criar uma chave de serviço e fazer download do arquivo.json
Colocar o código acima e o arquivo .json na raiz do projeto

Espero ter ajudado. Tive que fazer algumas alterações para postar o código, espero que não tenha causado nenhum erro.

Abraços e obrigado pela ajuda Ricardo Gaya, suas dicas me indicaram a direção certa para fazer as pesquisas e corrigir meus erros.

Exibir solução no post original


Todas as respostas

Re: Quantidade de visitas API Analytics

Principal Colaborador
André, bom dia.

Tudo bem?

Sim, é 100% possível!

Quando você roda esta gerando algum erro? Se sim, qual? Você setou as dimensões que você quer como ga;page?

Eu utilizo a API em PHP, porque em javascript estava em beta, mas não sei se isso seria um motivo para você não conseguir extrair esses dados.
Ricardo Gaya

Re: Quantidade de visitas API Analytics

Calouro ✭ ✭
Ricardo, obrigado pela resposta.

Atualmente estou utilizando a API em javascript. Durante os testes encontrei alguns problemas:

Diversas vezes a API(tanto em js quanto php) retornava um erro dizendo que eu não possuía uma conta. Acredito que esse problema seja devido ao tipo de chave que estava utilizando (Chave de API, ID do cliente OAuth ou chave da conta de serviço).

Consegui fazer através da API em javascript pegar todas as visitas no site, mas não especifico por página. Essa, dos testes que fiz, foi a que consegui os dados de forma mais satisfatória. Poderia me indicar um tutorial, ou apenas indicar alguns passos para que eu possas concertar o código (posso fazer em PHP também caso você consiga me orientar melhor).

Passos:

1 - Qual tipo de chave utilizar.
2 - Estrutura do código.
3 - Página com tipos de retorno (mapa, apenas valores em forma de tabela ou objeto, outros tipos....)
3 - Página com os parâmetros que posso utilizar

Código atual que utilizo:

gapi.analytics.ready(function() {

/**
* Authorize the user immediately if the user has already granted access.
* If no access has been created, render an authorize button inside the
* element with the ID "embed-api-auth-container".
*/
gapi.analytics.auth.authorize({
container: 'embed-api-auth-container',
clientid: 'myID.apps.googleusercontent.com'
});


/**
* Create a new ViewSelector instance to be rendered inside of an
* element with the id "view-selector-container".
*/
var viewSelector = new gapi.analytics.ViewSelector({
container: 'view-selector-container'
});

// Render the view selector to the page.
viewSelector.execute();


/**
* Create a new DataChart instance with the given query parameters
* and Google chart options. It will be rendered inside an element
* with the id "chart-container".
*/
var dataChart = new gapi.analytics.googleCharts.DataChart({
query: {
metrics: 'ga:sessions',
dimensions: 'ga:date',
'start-date': '30daysAgo',
'end-date': 'yesterday'
},
chart: {
container: 'chart-container',
type: 'LINE',
options: {
width: '100%'
}
}
});


/**
* Render the dataChart on the page whenever a new view is selected.
*/
viewSelector.on('change', function(ids) {
dataChart.set({query: {ids: ids}}).execute();
});

});


Porém duas coisas:
A data gostaria que fosse desde o inicio, e não limitada em 30 dias. Também não encontrei um parâmetro para definir a página, algo do tipo: 'page': 'imovel/17',

Essa função retorna um mapa com os dados, mas para mim seria interessante apenas o número, ou seja, gostaria que o retorno da função fosse apenas, exemplo, 1235 visitas.

Obrigado

Re: Quantidade de visitas API Analytics

Principal Colaborador

 

 

 

 

 

@André T, tudo bem?

 

Uma coisa importante antes de começar a trabalhar com as API's do Google Analytics é saber exatamente qual atende os seus objetivos, pois existem algumas diferenças entre elas. Algumas as diferenças são poucas e em outras existem mais. 

Diversas vezes a API(tanto em js quanto php) retornava um erro dizendo que eu não possuía uma conta. Acredito que esse problema seja devido ao tipo de chave que estava utilizando (Chave de API, ID do cliente OAuth ou chave da conta de serviço).

Sim, o problema realmente esta na autenticação do OAuth com o Google Developers. Lembrando que dependendo de como ele foi criado ele autentica por apenas algumas horas. Eu recomendo a leitura desse artigo - https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/service-php?hl=pt-br.

 

O Google recentemente mudou algumas alguns procedimentos no no processo de criar um ID de Cliente no Google Developers. 

 

Consegui fazer através da API em javascript pegar todas as visitas no site, mas não especifico por página. Essa, dos testes que fiz, foi a que consegui os dados de forma mais satisfatória. Poderia me indicar um tutorial, ou apenas indicar alguns passos para que eu possas concertar o código (posso fazer em PHP também caso você consiga me orientar melhor).

 

O que você precisa é usar outra dimensions como GALíngua do SmileyAGEPATH ou GALíngua do SmileyAGETITLE, vou deixa um link para uma página do Developers, com todas as metrics e dimensions que podem ser utilizadas.

 

https://developers.google.com/analytics/devguides/reporting/core/dimsmets

 

Lembrando que cada uma tem o seu escopo, por isso é importante dar uma lida nesse artigo para verificar o escopo e assim não fazer um cruzamento que possa gerar erros.

 


André T escreveu:

Porém duas coisas:
A data gostaria que fosse desde o inicio, e não limitada em 30 dias. Também não encontrei um parâmetro para definir a página, algo do tipo: 'page': 'imovel/17',

Essa função retorna um mapa com os dados, mas para mim seria interessante apenas o número, ou seja, gostaria que o retorno da função fosse apenas, exemplo, 1235 visitas.

Você tem que criar um for(), onde start-date e end-date seja incrementado dia a dia. Um incrementador simples. Você seta a start-date de sua preferência e o end-date. 

 

Sim, essa função é uma função para criação de gráficos. Qual API você baixou ou clonou do GitHub para trabalhar?

 

A API que você precisa, são as de relatórios - https://developers.google.com/analytics/devguides/reporting/core/v3/gdataLibraries?hl=pt-br

 

 

 

Ricardo Gaya
Marcado como Melhor Resposta.
Solução
Aceita pelo autor do tópico André T
Fevereiro 2016

Re: Quantidade de visitas API Analytics

Calouro ✭ ✭
Pessoal,

Consegui resolver meus problemas.
Primeiro estava utilizando a API javascript, mas queria um serviço servidor-servidor. Na API javascript sempre pedia autorização do usuário, sendo que não queria isso.

Para resolver o problema adotei a API em PHP, utilizando a o projeto https://github.com/google/google-api-php-client. Infelizmente o Google apresenta um problema sério e me causou grandes transtornos até eu resolver pesquisar e encontrar o problema. A documentação do Google https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/web-php está desatualizada (versão 1.0), enquanto o projeto no github manda utilizar a 2.0. No minimo deveria ser retirado do ar ou ajustado para a nova versão.

Por fim, mesclei um dos exemplos que tem no github com essa biblioteca antiga e consegui fazer um código em PHP que atendesse as minhas finalidades. Não consegui juntar o projeto ao LARAVEL visto que existem diversos tipos de incompatibilidade e por isso criei dois projetos separados. Se alguém souber como integrar, serei eternamente grato.

O código da minha aplicação, caso ajude alguém:

<?php

function getService() {
include_once __DIR__ . '/vendor/autoload.php';

$client = new Google_Client();

$credentials_file = __DIR__ . '/service-account-credentials.json';
// set the location manually
$client->setAuthConfig($credentials_file);

$client->setApplicationName("Analytics");
$client->setScopes(['https://www.googleapis.com/auth/analytics']);
$analytics = new Google_Service_Analytics($client);

return $analytics;
}

function getResults(&$analytics, $url) {
// Calls the Core Reporting API and queries for the number of views
$ids = "ga:xxxxxxxxx";
$start_date = "2015-09-21";
$end_date = "today";
$metrics = "gaLíngua do Smileyageviews";
$dimensions = "gaLíngua do SmileyagePath";
$filters = "gaLíngua do SmileyagePath==/" . $url.;
$optParams = array('dimensions' => $dimensions, 'filters' => $filters);
return $analytics->data_ga->get($ids,$start_date,$end_date,$metrics,$optParams);
}

function printResults(&$results) {
if (count($results->getRows()) > 0) {
// Get the entry for the first entry in the first row.
$rows = $results->getRows();
$visits = $rows[0][1];
echo($visits);
} else {
echo 0;
}
}

$url = "example/1";
$analytics = getService();
$results = getResults($analytics,$url);
printResults($results);

?>

Para utilizar o código basta 3 passos:
composer require google/apiclient:^2.0.0@RC
Criar uma chave de serviço e fazer download do arquivo.json
Colocar o código acima e o arquivo .json na raiz do projeto

Espero ter ajudado. Tive que fazer algumas alterações para postar o código, espero que não tenha causado nenhum erro.

Abraços e obrigado pela ajuda Ricardo Gaya, suas dicas me indicaram a direção certa para fazer as pesquisas e corrigir meus erros.

Re: Quantidade de visitas API Analytics

Principal Colaborador
Andre, tudo bem?

Que bom que tenha conseguido! Smiley feliz E obrigado por compartilhar.

Com certeza vai ajudar muita gente.

Abraço.
Ricardo Gaya