Android Uygulamamıza Google Analytics Ekleme

Merhaba Arkadaşlar,
mobilhanem.com üzerinden anlattığımız/yayınladığımız derslerimize Android Uygulamamıza Analytics ekleme ile devam edeceğiz.Öncelikle Analytics ayarlarımızı yapalım.

Öncelikle https://analytics.google.com sitesine gmail hesabımız ile giriş yapıyoruz.

Sonra karşımıza çıkan sayfada Yönetici sekmesini seçiyoruz.
Android Google Analytics

Sonra yukarıdaki resimde görüldüğü gibi Hesap’a tıklayıp en altta Yeni Hesap Oluştur diyoruz.
Karşımıza böyle bir sayfa çıkıyor.

android analytics ekleme

Mobil Uygulamalar tabını seçtikten sonra gerekli bilgileri eksiksiz bir biçimde giriyoruz ve sayfanın altında İzleme Kimliğini Alın deyip hesabı oluşturuyoruz.

Anasayfada izleme id miz oluşuyor. Bu id’yi uygulama içinde kullanacağız.

android analytics id

Gelelim Android tarafına,

bulid.gradle gidip dependencies içine google play service ekliyoruz ve projemizi sync ediyoruz.

dependencies {  
    compile 'com.google.android.gms:play-services:8.+'
}

Sonra android Manifest dosyasına giriyoruz.INTERNET ve ACCESS_NETWORK_STATE izinlerini veriyoruz.

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

Ayrıca aşağıdaki meta-datalarıda application tagı içine ekliyoruz. Burda xml dosyasını bulamadım hatası verecektir. Hemen endişelenmeyin. Bir sonraki aşamada gerekli xml dosyasını oluşturacağız.

<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <meta-data
            android:name="com.google.android.gms.analytics.globalConfigResource"
            android:resource="@xml/global_tracker" />

Gelelim ilgili XML dosyalarını oluşturmaya.Öncelikle manifest dosyasında bulamadığı xml dosyasını oluşturalım.res/xml altında oluşturalım. eğer xml yoksa siz oluşturabilirsiniz.

global_tracker.xml

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
    <string name="ga_logLevel">verbose</string>
    <integer name="ga_dispatchPeriod">30</integer>
    <bool name="ga_dryRun">false</bool>
    <string name="com.mobilhanem.MainActivity">Main Activity</string>
</resources>

Sonrasında ise app_tracker.xml dosyamızı oluşturacağız.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">

    <string name="ga_trackingId">UA-73863312-1</string><!--Google analyticsden aldığımız id -->

    <string name="ga_sampleFrequency">100.0</string>

    <bool name="ga_autoActivityTracking">true</bool>

    <bool name="ga_reportUncaughtExceptions">true</bool>

    <integer name="ga_sessionTimeout">-1</integer>

    <screenName name="com.mobilhanem.MainActivity">Main Activity</screenName>
</resources>

XML dosyalarımızıda ayarladıktan sonra gelelim java kodlarımıza.

Öncelikle bir tane class oluşturuyor ve Application’a extends ediyoruz. Class adımız MyApp olsun.

MyApp.java:

package mobilhanem.com.mobilhanemanalyticsekleme;

import android.app.Application;

import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;

import java.util.HashMap;

/**
 * Created by tahakirca on 17/02/16.
 */
public class MyApp extends Application {
    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

    public synchronized Tracker getTracker(TrackerName trackerId) {

        if (!mTrackers.containsKey(trackerId)) {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            Tracker t = analytics.newTracker(R.xml.app_tracker);
            mTrackers.put(trackerId, t);
        }
        return mTrackers.get(trackerId);
    }

    public enum TrackerName {
        APP_TRACKER,
        GLOBAL_TRACKER,
        E_COMMERCE_TRACKER,
    }
}

MyApp’mizi oluşturduk manifest dosyasında Application tag’ına name ekliyoruz ve aşağıdaki gibi adını MyApp veriyoruz.

<application
        android:name=".MyApp"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme.NoActionBar"
       >

Artık oluşturduğumuz her bir activity’nin onCreate  methoduna aşağıdaki kodu ekleyerek tracking yani takip işlemini yapabiliriz.

Tracker t = ((MyApp) getApplication()).getTracker(MyApp.TrackerName.APP_TRACKER);
t.setScreenName("Main Activity"); //Hangi activityde olduğunu bildiriyor
t.send(new HitBuilders.ScreenViewBuilder().build());

Hepsi bu kadar. Artık Analytics web sitesine girip kontrol edebiliriz.

analytics ekranı

Bu derste anlatmak istediklerim bu kadar.Ben derste anlatımı basitçe yapmaya çalıştım. Analytics kodu eklenerek uygulama içinde her şeyi loglatıp takibini gerçekleştirebiliriz.Buton tıklanması,crash olması vs gibi başka takipleride analytics kullanarak yapabilirsiniz.

Bir dahaki dersimizde Analytics kodunu iOS uygulamalarımıza nasıl ekleriz anlatacağım.

Bir dahaki dersime kadar kendinize iyi bakın.

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

 

 

0

Taha Kırca

iOS & Android & Apple Watch Developer, Mobilhanem.com yazarı, Karadeniz Uşağu, Ordu Sevdalısı

10 Yorum

  • Yararlı bir paylaşım, teşekkürler.

    “Analytics kodu eklenerek uygulama içinde her şeyi loglatıp takibini gerçekleştirebiliriz.” bu kısma değinmeniz mümkün mü?

  • Bunu da kullanabilir miyiz ? ‘compile ‘com.google.android.gms:play-services-analytics:10.2.0’ diğeri bende sorun çıkarıyorda

  • Benim anlamadığım Google’ın yardım sayfasında trackingId’nin global_tracker içinde olması gerektiği ve diğer sonradan oluşturalan class ve xml’den bahsetmediği. Yardım sayfasındaki yönergeleri uygulayarak eksiksiz tamamladım, fakat canlı izleme de sonuç alamıyorum. Bu sayfada anlatılanlar ise tamamen farklı gibi. Yardım sayfasındaki eksik mi?

    • Neyse ki sample dosyasını indirerek sorunu hallettim. Fakat bu kez de ekran isimlerinin çok geç yansıdığını gördüm. Çoktan işlemleri yapıp başka ekrana geçiyor kullanıcı. Verilerin gönderilme sıklığı ile ilgili bir parametre göremedim.

      • Basit bir servis ile süre ayarlayabilirsiniz.

        Tracker t = ((MyApp) getApplication()).getTracker(MyApp.TrackerName.APP_TRACKER);
        t.setScreenName("Main Activity"); //Hangi activityde olduğunu bildiriyor
        t.send(new HitBuilders.ScreenViewBuilder().build());

        Kısmını servis olarak timer ile birleştirebilirsiniz.

  • Gerçekten android konusunda, yazılarınızdan çok faydalı bilgiler edindim. Sadece bu yazınız için değil tüm yazılarınız için teşekkürler.

  • Analytics izleme kodu vermiyor, zoraki Firebase bağlattırıyor uygulamayı. Nasıl izleme kodu alabilirim?

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?