استفاده از تحلیل گرGoogle Analytics در برنامه اندروید

به نام خدا،امروز می خواهیم با نحوه استفاده از تحلیل گر گوگل (google analytics) در برنامه های اندرویدی آشنا بشیم.

پس از طراحی،ساخت و انتشار یک برنامه کاربران مختلفی با گوشی های متنوع و نسخه های اندروید از  برنامه ما استفاده خواهند کرد، در چنین حالتی بنا به دلایل زیادی شاید بخواهیم آماری و اطلاعاتی از برنامه های خودمان داشته باشیم ، مثلاً چه کسانی و چند نفر در حال استفاده از برنامه شما هستند؟ مدل گوشی،نسخه اندروید،موقعیت جغرافیایی کاربران، چه خطا و Exception هایی در برنامه اتفاق افتاده است رو بررسی کنیم.

google analytics آمار گیر قدرتمند گوگل است که اطلاعات بسیار کاملی را در این زمینه در اختیار ما قرار می دهد، در این آموزش یاد می گیریم که چگونه و به سادگی تحلیل گر گوگل(google analytics) را به برنامه اندرویدی اضافه کرد و آماری دقیق از برنامه در اختیار داشته باشم.

برای اینکه بتونیم از تحلیل گر گوگل استفاده کنیم  باید یک اکانت google analytics بسازیم که برای ساخت این اکانت باید از قبل یک اکانت گوگل داشته باشیم که در این آموزش فرض می کنیم این چنینن است.این بخش از سرویس گوگل در تحریم قرار دارد پس باید با استفاده از یک (و-ی-پ-ی ا.ن) به این سرویس متصل شوم.البته برای استفاده از برنامه اندرویدی چنین محدودیتی نیست.

مرحله اول ساخت اکانت google analytics .

ابتدا به آدرس https://www.google.com/analytics/mobile می رویم ، اگر از قبل در حساب کاربری گوگلی خودمان لاگین شده باشیم در گوشه بالا سمت راست صفحه دکمه ای با عنوان Access Google Analytics را مشاهده می کنیم.

روی دکمه Access Google Analytics کلیک می کنیم ، اگر دفعه اولی باشد که می خواهیم از تحلیل گر گوگل استفاده کنیم فرم ثبت نام زیر نمایش داده می شود.

روی دکمه Sign Up کلیک می کنیم تا یک حساب کاربری google Analytics ایجاد کنیم.

روی تب Mobile App کلیک می کنیم ، در قسمت Account Name یک نام برای حساب کاربری وارد می کنیم ،در قسمت App Name نیز نام برنامه ای که می خواهید به آن تحلیل گر گوگل اضافه کنید را بنویسید ، در این آموزش نام این برنامه TestgoogleAnalyticsخواهد بود.

در پایین صفحه روی دکمه Get Tracking ID کلیک می کنیم.

فرم توافق نامه نمایش داده می شود ، در صورت تمایل کشور مورد نظر را انتخاب می کنیم و روی دکمه I Accept کلیک می کنیم.

در این صفحه یک کد به صورت بزرگ نمایش داده می شود (کد Tracking من UA-65853577-1 را نمایش می دهد) ، این کد را جایی یادداشت می کنیم تا فراموش نکنیم. در ادامه باید کتابخانه مورد نیاز برای Google Analytics را دانلود کنیم. برای دنلود کتابخانه google analytics v3   میتوانید از این لینک استفاده کنید.

برای شروع کار ابتدا یک فایل Xml جدید به نام analytics.xml  در پوشه Values ایجاد کرده و کدهای زیر رو بهش اضافه می کنیم.دقت داشته باشید که از tracking ID  خودتون استفاده کنید.

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- your tracking ID -->
    <string name="ga_trackingId">UA-65853577-1</string>

    <!-- Enable automatic activity tracking -->
    <bool name="ga_autoActivityTracking">true</bool>

    <!-- Enable automatic exception tracking -->
    <bool name="ga_reportUncaughtExceptions">true</bool>    

</resources>

برای اضافه کردن کتابخانه  Google Analytics  به برنامه ابتدا فایلی را که دانلود کرده اید از حالت فرشده خارج کرده و سپس فایل libGoogleAnalyticsServices.jar  را به پوشه lib موجود در برنامه اضافه کنید.به همین راحتی Google Analytics  به کتابخانه برنامه شما اضافه شد.

برای نمایش نوع کار برنامه ما در فایل اکیتیویتی اصلی برنامه از چند تا دکمه (Button) استفاده خواهیم کرد تا به صورت کامل با نحوه کار آشنا بشیم.از دو تا دکمه ها برای نمایش رویداد ها استفاده میکنم و از دو تا دکمه برای نمایش خطاها و Exception.(کدهای کامل activitymain.xml).

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/buttonA"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button One Event" />

    <Button
        android:id="@+id/buttonB"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button Two Event" />

    <Button
        android:id="@+id/buttonC"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Exception A" />

    <Button
        android:id="@+id/buttonD"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Exception B" />

</LinearLayout>

در داخل کلاس MainActivity.java  از EeasyTracker  برای دریافت و نمایش رویداد ها استفاده خواهیم کرد.در واقع EeasyTracker  وظیفه آماردهی به تحلیلگر گوگل را در برنامه ما برعهده دارد.(کده های کلاسMainActivity.java).

//Appinapps.com
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.google.analytics.tracking.android.EasyTracker;
import com.google.analytics.tracking.android.MapBuilder;
import com.google.analytics.tracking.android.StandardExceptionParser;

public class MainActivity extends Activity {

	private EasyTracker easyTracker = null;

	Button btn1, btn2, btn3, btn4;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		easyTracker = EasyTracker.getInstance(MainActivity.this);

		btn1 = (Button) findViewById(R.id.buttonA);
		btn2 = (Button) findViewById(R.id.buttonB);
		btn3 = (Button) findViewById(R.id.buttonC);
		btn4 = (Button) findViewById(R.id.buttonD);

		btn1.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View view) {
				sendEvent("Button Event", "Click", "Button A");
			}
		});

		btn2.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View view) {
				sendEvent("Button Event", "Click", "Button B");
			}
		});

		btn3.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View view) {
				try {
					int a[] = new int[2];
					int num = a[4];
				} catch (Exception e) {
					// ArrayIndexOutOfBoundsException ???
					sendException(e);
				}
			}
		});
		btn4.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View view) {
				try {
					int a = 1;
					int b = 0;
					int num = a / b;
				} catch (Exception e) {
					// ArithmeticException ???
					sendException(e);
				}
			}
		});

	}

	void sendEvent(String category, String action, String label) {
		easyTracker.send(MapBuilder.createEvent(category, action, label, null)
				.build());

	}

	void sendException(Exception e) {
		easyTracker.send(MapBuilder.createException(
				new StandardExceptionParser(MainActivity.this, null)
						.getDescription(Thread.currentThread().getName(), e),
				false).build());

	}

	@Override
	public void onStart() {
		super.onStart();
		EasyTracker.getInstance(this).activityStart(this);
	}

	@Override
	public void onStop() {
		super.onStop();
		EasyTracker.getInstance(this).activityStop(this);
	}


	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

در آخرین مرحله هم باید دسترسی های مربوط به INTERNET رو در فایل Manifest.xml اضافه کنید.تا برنامه در هنگام اتصال به اینترنت مشکلی نداشته باشد.(کدهایManifest.xml).

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.appinapps.googleanalytics"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <uses-permission android:name="android.permission.INTERNET" /> 
	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.appinapps.googleanalytics.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

در آخر هم دقت داشته باشد که معمولا بعد از 24 ساعت از ساخت اکانت Google Analtics،تحلیلگر به صورت کامل راه اندازه میشود.پس در اگر در این مدت برنامه رو تست کردین و دیدن که آماری نمیده جای نگرانی نیست و برنامه مشکلی ندارد و بعد از 24 ساعت مشکل حل می شود.

 

 


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید
سایر مقالات این دسته
کار با حالت ActionMode در اندرویدکار با انیمیشن ها قسمت اول ساخت Spalsh Screenساخت انیمیشن به صورت کامل قسمت دومحرکت اسلاید بین اکتیوتی ها با انیمیشن ها +سورسمعرفی انواع پایگاه داده (DataBase)کار با دیتابیس در اندروید قسمت اولساخت toggleButton زیبا و سفارشیکار با دیتابیس در اندروید قسمت دومساخت برنامه رادیوی انلاین+سورسکار با حافظه داخلی در اندرویدساخت برنامه تشخیص صدای فارسی و انگلیسی در اندروید+استفاده از سورس های اندروید استودیو در محیط ایکلیپکار با Switch Button در اندرویدتغییر خودکار تصویر پس زمینه لایه ساخت لیست ویو با قابلیت جستوجوی الفباییدانلود تصویر از ادرس اینترنتی+سورسکار با دیتابیس در اندروید:جستجو در sqlite قسمت 1دانلود نسخه جدید و بروز شده محیط توسعه اندرویدکار با دیتابیس در اندروید:جستجو در sqlite قسمت 2ساخت کتاب برای اندروید بدون برنامه نویسیبهترین زبان برنامه نویسی که میتوانید در 2015 بياموكار با Power Manager در اندرويدساخت اسکرول بار سفارشی+سورسساخت گرید ویو سفارشیساخت پروگرس بار با شمارنده +سورسترسیم یک خط با Canvas+سورستغییر نام برنامه به صورت کاملکار با حالت دوبل بک(Double back)ساخت برنامه دو زبانه(Multi language )ساخت لایه و عناصر داینامیک در اندرویدساخت برنامه چاپ متن بر روی تصویر+سورسکار با ShowCase View در اندروید+سورسافزودن لیست به الرت دیالوگ+سورسساخت مرورگر وب سادهکار با Drag And Drop در اندروید+سورسکار با DatePickerDialog در اندروید+سورسکار با فرگمنت ها(ساخت Sliding Navigation Drawer)کار با ViewFlipper (ساخت اسلاید شو تصاویر)ساخت توست سفارشی قسمت دوم زمانبندی Toastکار با BroadcastReceiver ها،ساخت برنامه دریافتsmsطراحی و ساخت صفحه Login Screen + سورسبارگذاری ویدیو از گالری در اندرویدساخت پنجره پاپ آپ + سورسبارش برف بروی تصویر + سورسکار با فیلتر hue رنگی کردن تصویر انتخاب و پخش فایل صوتی از حافظه گوشی+سورساضافه کردن چک باکس به لیست ویوکار با ShelfView یا نمایش کتابخانه ای + سورسکار با TabHost،اضافه کردن تب به برنامه های اندرویدمعکوس کردن رنگ ها(Invert Image) + سورسآموزش کامل ساخت اکشن بار سفارشی+سورسساخت برنامه های واکنش گرا(ریسپانسیو) در اندرویدقسمت دوم صفحات 7 اینچ به بالااضافه کردن انیمیشن به دکمه+سورسکار با View Switcher در اندروید + سورسکار با فیلتر Blur Mask + سورسدانلود پک کامل آیکون های طراحی اندرویدکار با sharedPreferences در اندروید+سورسآموزش کار با proguard،محافظت از برنامه اندرویدپخش فایل صوتی (MP3) از ادرس اینترنتی+سورسپخش ویدیو از آدرس اینترنتی(URL) در اندروید+سورسگوشی های و تبلت های مطرح تا چینی به ساده ترین روشپاسخ به رویداد های WebVeiw دسترسی به وب ویو با استفاده از جاوااسکریپتکار با WIFI اکسس+سورسساخت تقویم هجری برای اندروید+سورسapp rateدانلود و نمایش تصویر در ListView+سورسدانلود و نمایش فایل متنی+سورسکار با کلاس های پایه اکتیویتیآینه کردن تصویر+سورسافزودن آیتم منو سفارشی بهActionBar+سورسارسال اطلاعات از دیتابیس به GridView + سورسکار با کلید های فیزیکی در اندروید+سورسدسترسی به Api هایREST قسمت اولتغییر فونت لیست ویواستفاده از تحلیل گرGoogle Analytics در برنامه اندرویداضافه کردن انیمیشن به دیالوگ ها در اندروید+سورساستفاده ازگیت‌هاب در اندروید استودیوکار با Swipe tab Layouدر برنامه نویسی اندروید دیباگ کردن برنامه اندروید با wifiبهینه سازی مصرف RAM در برنامه نویسی اندرویدافزودن شمارنده صفحه به ViewPager + سورس آموزش نرم افزار SQLite Browserکار با JSON در اندرویدآموزش ساده نصب شبیه ساز اندروید Genymotion