این سند نمای کلی برخی از ویژگیهای پیکربندی پیشرفته Google Analytics SDK برای Android نسخه ۲ را ارائه میکند.
بررسی اجمالی
Google Analytics SDK برای اندروید از دو کلاس برای مدیریت وضعیت جهانی پیاده سازی و ارسال داده ها به سرورهای Google Analytics استفاده می کند. EasyTracker این کلاس ها را برای ارائه پیکربندی ساده و مدیریت جلسه می پوشاند:
-
GoogleAnalytics
– تکتنهای که وضعیت جهانی پیادهسازی شما را کنترل میکند، از جمله دریافت اشیاءTracker
. -
Tracker
– کلاسی که با آن داده ها را به Google Analytics ارسال می کنید.
به عنوان مثال، برای اندازه گیری نمای یک Activity
ساده:
import android.app.Activity import com.google.analytics.tracking.android.GoogleAnalytics import com.google.analytics.tracking.android.Tracker /** * A simple Activity that sends a screen view to Google Analytics * when it is displayed to the user. */ public class HomeScreen extends Activity { private Tracker mGaTracker; private GoogleAnalytics mGaInstance; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the GoogleAnalytics singleton. Note that the SDK uses // the application context to avoid leaking the current context. mGaInstance = GoogleAnalytics.getInstance(this); // Use the GoogleAnalytics singleton to get a Tracker. mGaTracker = mGaInstance.getTracker("UA-XXXX-Y"); // Placeholder tracking ID. ... // The rest of your onCreate() code. } @Override public void onStart() { super.onStart(); // Send a screen view when the Activity is displayed to the user. mGaTracker.sendView("/HomeScreen"); } }
استفاده از ردیاب های متعدد
از نسخه 2 SDK، میتوانید از چندین ردیاب در یک پیادهسازی استفاده کنید، یکی برای هر شناسه ردیابی منحصربهفرد. همه ردیابها دارای وضعیت جهانی یکسانی هستند که توسط GoogleAnalytics
تکی شما در اختیار دارد.
در مثال زیر، یک نمای صفحه با استفاده از دو ردیاب به دو ویژگی جداگانه ارسال میشود که هر کدام دارای شناسه ویژگی منحصر به فرد خود هستند:
import android.app.Activity import com.google.analytics.tracking.android.GoogleAnalytics import com.google.analytics.tracking.android.Tracker /** * A simple Activity that sends a screen view to Google Analytics * when it is displayed to the user. */ public class HomeScreen extends Activity { private GoogleAnalytics mGaInstance; private Tracker mGaTracker1; private Tracker mGaTracker2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Get the GoogleAnalytics singleton. mGaInstance = GoogleAnalytics.getInstance(this); // Use the GoogleAnalytics singleton to get two Trackers with // unique property IDs. mGaTracker1 = mGaInstance.getTracker("UA-XXXX-Y"); mGaTracker2 = mGaInstance.getTracker("UA-XXXX-Z"); ... // The rest of your onCreate() code. } @Override public void onStart() { super.onStart(); // Send a screen view to "UA-XXXX-Y" the Activity is displayed to the user. mGaTracker1.sendView("/HomeScreen"); // Send another screen view to the second property, "UA-XXXX-Z". mGaTracker2.sendView("/Home"); } }
به خاطر داشته باشید که ویژگی های اندازه گیری خودکار ارائه شده توسط EasyTracker فقط از ردیاب پیش فرض برای برقراری تماس های خود استفاده می کند. اگر از این ویژگی های EasyTracker استفاده می کنید و می خواهید داده ها را با استفاده از ردیاب های دیگر ارسال کنید، باید این کار را به صورت دستی انجام دهید.
ردیاب پیش فرض
اگرچه یک پیاده سازی ممکن است از چند ردیاب استفاده کند، اما در سطح جهانی یک ردیاب پیش فرض دارد. اولین Tracker
بازیابی شده به ردیاب پیش فرض تبدیل می شود.
برای دریافت ردیاب پیش فرض، از:
// Get singleton. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Get default tracker. Tracker myDefault = myInstance.getDefaultTracker();
برای تنظیم ردیاب پیش فرض، از موارد زیر استفاده کنید:
// First get a tracker using a new property ID. Tracker newTracker = myInstance.getTracker("UA-XXXX-2"); // Then make newTracker the default tracker globally. myInstance.setDefaultTracker(newTracker);
اعزام
تنظیمات Dispatch توسط GAServiceManager
singleton مدیریت می شود. برای تنظیم دوره اعزام:
// Set dispatch period to 30 seconds. GAServiceManager.getInstance().setDispatchPeriod(30);
برای ارسال دستی خارج از بازه زمانی برنامه ریزی شده:
// Manually dispatch any queued hits. GAServiceManager.getInstance().dispatch();
نمونه برداری
برای محدود کردن تعداد بازدیدهای ارسال شده به Google Analytics، میتوانید نمونهگیری سمت مشتری را فعال کنید. اگر برنامه شما تعداد زیادی کاربر دارد یا حجم زیادی از داده ها را به Google Analytics ارسال می کند، فعال کردن نمونه گیری به اطمینان از گزارش بدون وقفه کمک می کند.
به عنوان مثال، برای فعال کردن نمونه برداری سمت مشتری با نرخ 50٪ از طریق EasyTracker و XML، از پارامتر زیر در فایل analytics.xml خود استفاده کنید:
<string name="ga_sampleFrequency">50.0</string>
همچنین میتوانید نمونهگیری سمت مشتری را به صورت برنامهریزی فعال کنید:
// Get tracker from singleton. GoogleAnalytics gaInstance = GoogleAnalytics.getInstance(this); Tracker tracker = gaInstance.getTracker("UA-XXXX-Y"); // Placeholder property ID. // Set a sample rate of 50%. tracker.setSampleRate(50.0d);
انصراف در سطح برنامه
میتوانید یک پرچم انصراف در سطح برنامه را فعال کنید که Google Analytics را در کل برنامه غیرفعال میکند. پس از تنظیم، پرچم برای تمام عمر برنامه یا تا زمانی که دوباره تنظیم شود باقی خواهد ماند.
برای دریافت تنظیمات انصراف در سطح برنامه، از:
// Get singleton. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Get the app opt out preference using an AppOptOutCallback. myInstance.requestAppOptOut(new AppOptOutCallback() { @Override public void reportAppOptOut(boolean optOut) { if (optOut) { ... // Alert the user that they've opted out. } }); }
برای تنظیم پرچم انصراف در سطح برنامه، از موارد زیر استفاده کنید:
myInstance.setAppOptOut(appPreferences.userOptOut);
تست و اشکال زدایی
Google Analytics SDK برای Android یک حالت اشکال زدایی را ارائه می دهد که اطلاعات مفیدی را در مورد داده هایی که در گزارش های شما به Google Analytics ارسال می شود چاپ می کند.
برای فعال کردن حالت اشکال زدایی با استفاده از EasyTracker، موارد زیر را به فایل منبع analytics.xml
خود اضافه کنید:
<bool name="ga_debug">true</bool>
برای فعال کردن حالت اشکال زدایی به صورت برنامه ریزی شده، از:
// Get singleton using application context. GoogleAnalytics myInstance = GoogleAnalytics.getInstance(this); // Enable debug mode. myInstance.setDebug(true);
خروجی با استفاده از تگ GAV2
در logcat چاپ می شود.