Как добавить Яндекс Метрика в Android приложение. Android Studio


//Создаем класс, наследник Application (MyApp.java)
package com.psyberia.combo.yametrix;

import android.app.Application;
import android.content.Context;

import com.yandex.metrica.YandexMetrica;

/**
 * Created by combo on 20.02.2016.
 */
public class MyApp extends Application
{
    private static MyApp instance;
    private static Context mContext;

    //private MyApp(){}

    public static MyApp getInstance() {
        if(null == instance){
            instance = new MyApp();
        }
        return instance;
    }

    public static Context getContext() {
        return mContext;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        instance = this;
        mContext = getApplicationContext();


    }
}
Добавляем в файл build.gradle строку compile 'com.yandex.android:mobmetricalib:2.32'

Теперь в файле это выглядит примерно так:
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'

    //Добавим метрику
    // AppMetrica from maven central. Protobuf will be included as dependency.
    compile 'com.yandex.android:mobmetricalib:2.32'
}


Добавляем в файл res/values/string.xml
<string name="metrika_api_key">6a309401-b7d6-464a-a965-054a5e9bd08d</string>

Получаем следующее:
<resources>
    <string name="app_name">yametrix</string>
    <string name="metrika_api_key">6a309401-b7d6-464a-a965-054a5e9bd08d</string>
</resources>

Ключ укажите свой!!!

В манифест добавляем строки

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <!-- Добавлено для метрики-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>




А также:
 <application
        ...
        android:name=".MyApp"> <!-- Добавлено -->


Бросаем в проект файлик MyApp.java рядом с MainActivity.java






//Редактируем MainActivity.java
public class MainActivity extends AppCompatActivity {

    //
    MyApp app;
    Context context;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        app = MyApp.getInstance();
        context = app.getContext();

        // Инициализация AppMetrica SDK
        YandexMetrica.activate(context, getString(R.string.metrika_api_key));
        // Отслеживание активности пользователей
        YandexMetrica.enableActivityAutoTracking(app);
        setContentView(R.layout.activity_main);
    }
}

Переходим на сайт метрики и проверяем.

1 комментарий: