Подтвердить что ты не робот

Как интегрировать Google Analytics в приложение для Android

Привет. Я пытаюсь интегрировать Google Analytics, но я не могу найти какие-либо аналитические данные, которые отображаются в моей учетной записи Google Analytics. Я использую ссылку ниже: -

developers.google.com ссылка 1

некоторая ссылка 1

некоторая ссылка 2

ссылка разработчика .google 2

Но я не могу получить результат, правильный путь/путь или правильное и подробное руководство по интеграции Google Analytics в приложение для Android.

Мой код выглядит следующим образом: -

    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);
    }
}

Мой класс помощника Google Analytics выглядит следующим образом: -

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);
    }
}

И мой XML файл analytics в каталоге xml выглядит следующим образом: -

    <?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>

Любая помощь будет сердечно приветствоваться. Спасибо заранее.

4b9b3361

Ответ 1

Хорошо приведенный выше код в "Вопросе" хорошо работает. Все, что вам нужно сделать, - это установить код и добавить файл Jar Загрузите файл Jar Google Analytics в свой Lib, просто подождите 24-48 часов. и он будет показывать все события и аналитические данные для зарегистрированного приложения.

Отредактированный ответ: -

Как только вы создали свою учетную запись Google Analytics и загрузили файл Jar, добавьте файл Jar в папку lib вашего приложения

Эффективность Google Analytics:

Хорошо для аналитической части Вам нужен файл analytic.xml, который будет включен в вашу папку значений, указанную в вопросе.

Затем определите private EasyTracker easyTracker = null; в MainActivity.

И теперь в вашем методе onCreate(Bundle savedInstanceState) просто напишите следующие строки кода. Ну, вы также можете написать следующий код для любого Listners, например. на любом нажатии кнопки.

    /*
    *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.

Теперь в вашем методе onStart() просто напишите следующий код, он запустит сеанс отслеживания и аналитики для вашей активности.

EasyTracker.getInstance(this).activityStart(this);

И теперь в вашем методе onStop() просто напишите следующий код, он закроет или остановит сеанс отслеживания для этой активности.

EasyTracker.getInstance(this).activityStop(this);

Теперь вы можете отслеживать и анализировать свое приложение и действия в нем.

Ответ 2

Я подробно описал шаги для интеграции Google Analytics в существующее приложение здесь. Когда я публикую новое приложение, я всегда возвращаюсь к этим инструкциям, которые хорошо работают.

Ответ 3


 <?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. После этого мы можем изменить файл манифеста очень важно, чтобы добавить этот код ниже Добавить разрешения      

4. Измените имя своего приложения на пример имени класса Google Analytics "MyApplication.java"

 <application
    android:name=".app.MyApplication"

5. После этого добавьте службы для отправки и приема широковещательных событий с использованием Интернета

 <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. Прежде чем этот манифест изменится, сначала добавьте два класса в ваше приложение.

публичный конечный класс AnalyticsTrackers {

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);
}

}

И добавьте эту AnalyticsApplication.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. И последнее мы можем добавить код в ваш класс mainactivity.java или требуемые классы Инициализировать Шаг1

    Приложение AnalyticsApplication1;

    закрытый трекер mTracker;

    Шаг: 2

    application1 = (AnalyticsApplication) getApplication();

    mTracker = application1.getDefaultTracker();

если вы запустите этот код в Google Analytics, указав имя экрана, указанное в xml.

Шаг: 3 Добавьте этот код для отслеживания событий

mTracker.send(new HitBuilders.EventBuilder()

                .setCategory("DashBoard ")

                    .setAction("View Bookings Pressed")

                    .build());

Шаг: 4 Код поведения кода исключения в блоке add в блоке catch

 catch (Exception e) {
         **   AnalyticsApplication.getInstance().trackException(e);**
            e.printStackTrace();
        }

Счастливое кодирование.