Como integrar o Google Analytics no aplicativo Android

Estou a tentar integrar o Google Analytics, mas não consigo encontrar quaisquer dados de análise que apareçam na Minha Conta do Google Analytics. Estou usando o link abaixo: -

Developers.google.com relação 1

alguma ligação 1

alguma ligação 2

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.

Author: Pravinsingh Waghela, 2014-07-16

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.
 9
Author: Pravinsingh Waghela, 2015-01-30 14:11:10

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.

 2
Author: rdmacken, 2015-10-20 07:01:16
  1. Fisrt temos de criar o Google analytics track id Goolge analytics assinar e activar a api e obter o track id

  2. 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" />
  1. antes desta alteração manifesta, adicione primeiro estas duas classes na sua aplicação
Analisadores de classe finais públicos {
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()
        );
    }
}

}

  1. 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..
 1
Author: Venkatesh Nani, 2016-11-23 11:22:00