به نام خدا،امروز می خواهیم با نحوه استفاده از تحلیل گر گوگل (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 ساعت مشکل حل می شود.