Dispatching - Android SDK v2 (قدیمی)

این سند نحوه مدیریت ارسال داده ها به Google Analytics را با استفاده از Google Analytics SDK برای Android نسخه 2 توضیح می دهد.

بررسی اجمالی

در Google Analytics SDK برای Android، داده‌های جمع‌آوری‌شده مانند نماهای صفحه یا رویدادها قبل از ارسال به سرورهای Google Analytics به صورت محلی در یک صف ذخیره می‌شوند. فرآیندی که طی آن این داده‌ها (که در اینجا به آنها "بازدیدها" گفته می‌شود) از SDK به Google Analytics ارسال می‌شوند، به عنوان ارسال شناخته می‌شوند.

Dispatching منحصر به کتابخانه های مجموعه های تلفن همراه است و برای کاهش چالش های دسترسی غیرقابل اعتماد به شبکه و عمر باتری محدود طراحی شده است.

دو نوع ارسال وجود دارد:

  • ارسال دوره ای – به طور خودکار بازدیدها را در یک بازه زمانی تکراری ارسال می کند که شما به صورت برنامه نویسی یا در فایل analytics.xml خود مشخص می کنید.
  • ارسال دستی – ارسال دستی بازدیدها برای ارسال داده در زمانی که برای شما راحت است، به عنوان مثال زمانی که یک اتصال HTTP موجود وجود دارد.

هر دو نوع ارسال از رشته اصلی UI در نسخه 2 SDK رخ می دهد

بقیه این سند نگاه عمیق تری به هر نوع ارسال و نحوه پیاده سازی آنها در برنامه شما ارائه می دهد.

اعزام دوره ای

همانطور که برنامه شما داده‌های GA را جمع‌آوری می‌کند، این داده‌ها به یک صف اضافه می‌شوند و به صورت دوره‌ای به Google Analytics ارسال می‌شوند. ارسال دوره‌ای ممکن است زمانی رخ دهد که برنامه شما در پیش‌زمینه یا پس‌زمینه اجرا شود.

دوره پیش فرض ارسال 30 دقیقه است. می‌توانید با استفاده از پارامتر ga_dispatchPeriod در فایل analytics.xml یا با فراخوانی setDispatchPeriod(int dispatchPeriodInSeconds) مانند این مثال، فاصله زمانی خود را در چند ثانیه ارائه کنید:

در فایل analytics.xml شما:

<integer name="ga_dispatchPeriod">60</integer>

به صورت برنامه ای:

GAServiceManager.getInstance().setDispatchPeriod(60);

تنظیم یک مقدار منفی، ارسال دوره‌ای را غیرفعال می‌کند و اگر می‌خواهید هر داده‌ای را به Google Analytics ارسال کنید، باید از ارسال دستی استفاده کنید. از سوی دیگر، تنظیم مقدار 0 در صورت وجود اتصال شبکه، هر ضربه را بلافاصله ارسال می کند.

هنگامی که همه بازدیدها ارسال شد، ارسال دوره ای وارد حالت ذخیره انرژی می شود و تا زمانی که تماس ارسال دیگری برقرار شود غیرفعال می شود.

اگر کاربر دسترسی به شبکه را از دست بدهد یا از برنامه شما خارج شود در حالی که هنوز بازدیدهایی در انتظار ارسال هستند، این بازدیدها در حافظه محلی باقی می مانند. دفعه بعد که برنامه شما اجرا می شود و ارسال فراخوانی می شود، ارسال خواهند شد.

ارسال دستی

جدا از تکیه بر ارسال دوره ای، ممکن است مواقعی پیش بیاید که بخواهید بازدیدهای خود را به صورت دستی ارسال کنید. برای مثال، می‌توانید ارسال‌های خود را با سایر درخواست‌های HTTP که توسط برنامه‌تان ارسال می‌شود، به منظور کاهش هزینه‌های اضافی، دسته‌بندی کنید.

بازدیدها را می توان به صورت دستی با استفاده از نمونه GAServiceManager ارسال کرد:

GAServiceManager.getInstance().dispatch();