Como integrar o Google Analytics no aplicativo Android
Developers.google.com relação 1
desenvolvimento.ligação do google 2
mas eu não sou capaz de obter o resultado, nem o caminho correto ou Tutorial adequado e detalhado para como integrar o Google Análise na aplicação android.
o meu código é o seguinte: -
public class MainActivity extends Activity {
GoogleAnalytics tracker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Get tracker.
Tracker t = ((AnalyticsHelper) MainActivity.this.getApplication()).getTracker(
TrackerName.APP_TRACKER);
// Set the dispatch period in seconds.
GAServiceManager.getInstance().setLocalDispatchPeriod(8);
}
@Override
protected void onStart() {
super.onStart();
EasyTracker.getInstance(this).activityStart(this);
// Set the dispatch period in seconds.
GAServiceManager.getInstance().setLocalDispatchPeriod(8);
}
@Override
protected void onStop() {
super.onStop();
EasyTracker.getInstance(this).activityStop(this);
}
}
a minha classe auxiliar de análise é a seguinte: -
public class AnalyticsHelper extends Application {
// The following line should be changed to include the correct property id.
private static final String PROPERTY_ID = "UA-xxxxxxxx-x"; // My Property id.
public static int GENERAL_TRACKER = 0;
public enum TrackerName {
APP_TRACKER, // Tracker used only in this app.
GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
ECOMMERCE_TRACKER, // Tracker used by all ecommerce transactions from a company.
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
public AnalyticsHelper()
{
super();
}
synchronized Tracker getTracker(TrackerName trackerId) {
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
analytics.getLogger().setLogLevel(LogLevel.VERBOSE);
Tracker t = null;
if(trackerId==TrackerName.APP_TRACKER){
t= analytics.getTracker(PROPERTY_ID);
}
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
}
e o meu ficheiro XML analítico no directório xml é o seguinte: -
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:ignore="TypographyDashes">
<!-- The following value should be replaced with correct property id. -->
<string name="ga_trackingId">UA-xxxxxxxx-X</string>
<!--Enable automatic activity tracking-->
<bool name="ga_autoActivityTracking">true</bool>
<!--Enable automatic exception tracking-->
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>
Qualquer ajuda será bem-vinda.
Obrigado antecipadamente.
3 answers
Bem, o código acima indicado na pergunta funciona bem. Tudo o que você precisa fazer é depois de definir o seu código e adicionar o arquivo Jar transferir o arquivo JAR do Google Analytics para a sua Lib. espere 24 a 48 horas. e mostraria todos os eventos e análises para o aplicativo que você registrou.
Resposta Editada:-
Depois de ter criado a sua conta Google Analytic e Transferido o ficheiro Jar, adicione o ficheiro Jar na sua pastalib da sua Application
Implementação Do Google Analytic:-
Bem, para a parte analítica, só precisas do ... análise.xml arquivo a ser incluído em sua pasta de valores que é mencionado na pergunta.Então define {[3] } no seu MainActivity.
E agora no seu método onCreate(Bundle savedInstanceState)
basta escrever as seguintes linhas de código. Bem, você também pode escrever o seguinte código para qualquer Listners, por exemplo, em qualquer botão Clicar.
/*
*For Google Analytics...
*/
easyTracker = EasyTracker.getInstance(MainActivity.this); // It Tracks your Activity...
easyTracker.send(MapBuilder.createEvent("SomeValue(StoryPage)",
"SomeMoreValue(AuthorName) , "SomeMoreValueAgain(StoryTitle)", null).build()); //This line creates the event for keeping logs and other Analytical stuffs concerned to this Activity of Application...
//In the above example we had Tracked the session for the MainActivity and also Analysed how many time this activity was opened, which Author story and which Story was read.
Agora no seu método onStart()
, basta escrever o seguinte código, ele inicia a sessão de rastreamento e análise para a sua actividade.
EasyTracker.getInstance(this).activityStart(this);
E agora no seu método onStop()
, basta escrever o seguinte código, ele vai fechar ou parar a sessão de rastreamento para esta actividade.
EasyTracker.getInstance(this).activityStop(this);
Agora você é capaz de rastrear e analisar sua aplicação e atividades nele.
Detalhei os passos para integrar o Google Analytics num aplicativo existente aqui. Quando eu publico um app novo eu sempre voltar a estas instruções que funcionam bem.
Fisrt temos de criar o Google analytics track id Goolge analytics assinar e activar a api e obter o track id
Depois disso, coloque a identificação da pista em baixo .código xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="ga_sessionTimeout">300</integer>
<bool name="ga_autoActivityTracking">true</bool>
<string name="ga_trackingId">"place your track id"</string>
<string name="ga_sampleFrequency">100.0</string>
<bool name="ga_reportUncaughtExceptions">true</bool>
<screenName name="com.aquadeals.seller.HomeMainActivity">DashBoard Screen</screenName>
3. Depois disso, podemos alterar o arquivo manifesto muito importante para adicionar este código abaixo adicionar permissões
4. mude o nome da sua aplicação para nome da classe google analytics exemplo " MyApplication.java"
<application
android:name=".app.MyApplication"
5. Depois disso, adicionar serviços para enviar e receber eventos de radiodifusão através da internet
<receiver
android:name="com.google.android.gms.analytics.AnalyticsReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.AnalyticsService"
android:enabled="true"
android:exported="false" />
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
- antes desta alteração manifesta, adicione primeiro estas duas classes na sua aplicação
public enum Target {APP,}
private static AnalyticsTrackers sInstance;
public static synchronized void initialize(Context context)
{
if (sInstance != null)
{
throw new IllegalStateException("Extra call to initialize analytics trackers");
}
sInstance = new AnalyticsTrackers(context);
}
public static synchronized AnalyticsTrackers getInstance()
{
if (sInstance == null) {
throw new IllegalStateException("Call initialize() before getInstance()");
}
return sInstance;
}
private final Map<Target, Tracker> mTrackers = new HashMap<Target, Tracker>();
private final Context mContext;
private AnalyticsTrackers(Context context)
{
mContext = context.getApplicationContext();
}
public synchronized Tracker get(Target target)
{
if (!mTrackers.containsKey(target))
{
Tracker tracker;
switch (target)
{
case APP:
tracker = GoogleAnalytics.getInstance(mContext).newTracker(R.xml.app_tracker);
break;
default:
throw new IllegalArgumentException("Unhandled analytics target " + target);
}
mTrackers.put(target, tracker);
}
return mTrackers.get(target);
}
}
E adiciona esta aplicação analítica.java
public class AnalyticsApplication extends MultiDexApplication
{
private Tracker mTracker;
private static AnalyticsApplication mInstance;
@Override
public void onCreate()
{
super.onCreate();
mInstance = this;
AnalyticsTrackers.initialize(this);
AnalyticsTrackers.getInstance().get(AnalyticsTrackers.Target.APP);
}
synchronized public Tracker getDefaultTracker()
{
if (mTracker == null)
{
GoogleAnalytics analytics = GoogleAnalytics.getInstance(AnalyticsApplication.this);
mTracker = analytics.newTracker(R.xml.app_tracker);
}
return mTracker;
}
public synchronized Tracker getGoogleAnalyticsTracker()
{
AnalyticsTrackers analyticsTrackers = AnalyticsTrackers.getInstance();
return analyticsTrackers.get(AnalyticsTrackers.Target.APP);
}
public void trackEvent(String category, String action, String label)
{
Tracker t = getDefaultTracker();
t.send(new HitBuilders.EventBuilder().setCategory(category).setAction(action).setLabel(label).build());
}
public static synchronized AnalyticsApplication getInstance()
{
return mInstance;
}
public void trackScreenView(String screenName)
{
Tracker t = getGoogleAnalyticsTracker();
t.setScreenName(screenName);
t.send(new HitBuilders.ScreenViewBuilder().build());
GoogleAnalytics.getInstance(this).dispatchLocalHits();
}
public void trackException(Exception e)
{
if (e != null) {
Tracker t = getGoogleAnalyticsTracker();
t.send(new HitBuilders.ExceptionBuilder()
.setDescription( new StandardExceptionParser(this, null)
.getDescription(Thread.currentThread().getName(), e))
.setFatal(false)
.build()
);
}
}
}
-
E por último podemos adicionar código na sua actividade principal.hipoteca classe ou necessita de aulas Inicializar O Passo 1
Aplicação analítica 1;
Localizador privado mTracker;
Passo :2
Application1 = (AnalyticsApplication) getApplication ();
MTracker = aplicação1.getDefaultTracker ();
Se executar este código no google analytics mostrando o nome do ecrã que mencionou em xml.
Passo: 3 Adicionar este código para a faixa Evento
mTracker.send(new HitBuilders.EventBuilder()
.setCategory("DashBoard ")
.setAction("View Bookings Pressed")
.build());
Passo: 4 Código de comportamento de excepção da faixa Adicionar no seu bloco de capturas
catch (Exception e) {
** AnalyticsApplication.getInstance().trackException(e);**
e.printStackTrace();
}
Codificação feliz..