Este documento contém uma visão geral de alguns dos recursos de configuração avançada do SDK do Google Analytics para Android v2.
Visão geral
O SDK do Google Analytics para Android usa duas classes para gerenciar o estado global da implementação e enviar dados aos servidores do Google Analytics. O EasyTracker une essas classes para fornecer configuração simplificada e gerenciamento de sessão:
GoogleAnalytics
: um singleton que processa o estado global da sua implementação, incluindo a obtenção de objetosTracker
.Tracker
: a classe com que você envia dados para o Google Analytics.
Por exemplo, para medir a visualização de uma Activity
simples:
import android.app.Activity import com.google.analytics.tracking.android.GoogleAnalytics import com.google.analytics.tracking.android.Tracker /** * A simple Activity that sends a screen view to Google Analytics * when it is displayed to the user. */ public class HomeScreen extends Activity { private Tracker mGaTracker; private GoogleAnalytics mGaInstance; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the GoogleAnalytics singleton. Note that the SDK uses // the application context to avoid leaking the current context. mGaInstance = GoogleAnalytics.getInstance(this); // Use the GoogleAnalytics singleton to get a Tracker. mGaTracker = mGaInstance.getTracker("UA-XXXX-Y"); // Placeholder tracking ID. ... // The rest of your onCreate() code. } @Override public void onStart() { super.onStart(); // Send a screen view when the Activity is displayed to the user. mGaTracker.sendView("/HomeScreen"); } }
Uso de vários rastreadores
A partir da versão 2 do SDK, você pode usar vários rastreadores em uma única implementação, um por ID de acompanhamento exclusivo. Todos os rastreadores compartilham o mesmo estado global de seu singleton GoogleAnalytics
.
No exemplo a seguir, uma exibição de tela é enviada para duas propriedades separadas usando dois rastreadores, cada um com seu próprio ID exclusivo:
import android.app.Activity import com.google.analytics.tracking.android.GoogleAnalytics import com.google.analytics.tracking.android.Tracker /** * A simple Activity that sends a screen view to Google Analytics * when it is displayed to the user. */ public class HomeScreen extends Activity { private GoogleAnalytics mGaInstance; private Tracker mGaTracker1; private Tracker mGaTracker2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the GoogleAnalytics singleton. mGaInstance = GoogleAnalytics.getInstance(this); // Use the GoogleAnalytics singleton to get two Trackers with // unique property IDs. mGaTracker1 = mGaInstance.getTracker("UA-XXXX-Y"); mGaTracker2 = mGaInstance.getTracker("UA-XXXX-Z"); ... // The rest of your onCreate() code. } @Override public void onStart() { super.onStart(); // Send a screen view to "UA-XXXX-Y" the Activity is displayed to the user. mGaTracker1.sendView("/HomeScreen"); // Send another screen view to the second property, "UA-XXXX-Z". mGaTracker2.sendView("/Home"); } }
Lembre-se de que os recursos de medição automatizada fornecidos pelo EasyTracker só vão usar o rastreador padrão para fazer as chamadas. Se você usa esses recursos do EasyTracker e quer enviar dados com outros rastreadores, precisa fazer isso manualmente.
Rastreador padrão
Embora uma implementação possa usar vários rastreadores, ela tem globalmente um rastreador padrão. O primeiro Tracker
recuperado se torna o rastreador
padrão.
Para obter o rastreador padrão, use:
// Get singleton. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Get default tracker. Tracker myDefault = myInstance.getDefaultTracker();
Para definir o rastreador padrão, use:
// First get a tracker using a new property ID. Tracker newTracker = myInstance.getTracker("UA-XXXX-2"); // Then make newTracker the default tracker globally. myInstance.setDefaultTracker(newTracker);
Envios
As configurações de envio são gerenciadas pelo Singleton GAServiceManager
. Para definir o período de envio:
// Set dispatch period to 30 seconds. GAServiceManager.getInstance().setDispatchPeriod(30);
Para enviar manualmente fora do intervalo programado, faça o seguinte:
// Manually dispatch any queued hits. GAServiceManager.getInstance().dispatch();
Amostragem
Você pode ativar a amostragem do cliente para limitar o número de hits enviados ao Google Analytics. Se seu aplicativo tem um número grande de usuários ou envia um grande volume de dados ao Google Analytics, ativar a amostragem ajuda a garantir relatórios ininterruptos.
Por exemplo, para ativar a amostragem do lado do cliente a uma taxa de 50% por meio do EasyTracker e do XML, use o parâmetro a seguir no arquivo analytics.xml:
<string name="ga_sampleFrequency">50.0</string>
Também é possível ativar a amostragem do lado do cliente de maneira programática:
// Get tracker from singleton. GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(this); Tracker tracker = gaInstance.getTracker("UA-XXXX-Y"); // Placeholder property ID. // Set a sample rate of 50%. tracker.setSampleRate(50.0d);
Desativação no nível do aplicativo
Você pode ativar uma sinalização de desativação no nível do aplicativo que desativará o Google Analytics em todo o aplicativo. Depois de definida, a sinalização permanecerá durante a vida útil do aplicativo ou até ser redefinida.
Para acessar a configuração de desativação no nível do aplicativo, use:
// Get singleton. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Get the app opt out preference using an AppOptOutCallback. myInstance.requestAppOptOut(new AppOptOutCallback() { @Override public void reportAppOptOut(boolean optOut) { if (optOut) { ... // Alert the user that they've opted out. } }); }
Para definir a flag de desativação no nível do app, use:
myInstance.setAppOptOut(appPreferences.userOptOut);
Como testar e depurar
O SDK do Google Analytics para Android oferece um modo de depuração que imprime informações úteis sobre quais dados estão sendo enviados ao Google Analytics nos seus registros.
Para ativar o modo de depuração usando o EasyTracker, adicione o seguinte ao seu
arquivo de recursos analytics.xml
:
<bool name="ga_debug">true</bool>
Para ativar o modo de depuração de maneira programática, use:
// Get singleton using application context. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Enable debug mode. myInstance.setDebug(true);
A saída será mostrada no
logcat
usando a tag GAV2
.