اعزام

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

بررسی اجمالی

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

داده ها باید تا ساعت 4 صبح روز بعد در منطقه زمانی محلی هر نما ارسال و دریافت شوند. هر داده ای که دیرتر از آن دریافت شود در گزارش ها ظاهر نمی شود. به عنوان مثال، اگر یک ضربه به صورت محلی در ساعت 11:59 شب در صف قرار می گیرد، باید ظرف 4 ساعت، تا ساعت 3:59 صبح، ارسال شود تا در گزارش ها ظاهر شود. از طرف دیگر، ضربه ای که در ساعت 12:00 صبح در صف قرار می گیرد، باید ظرف 28 ساعت، یعنی ساعت 3:59 صبح روز بعد، ارسال شود تا در گزارش ها ظاهر شود.

اعزام دوره ای

به طور پیش فرض، داده ها از Google Analytics SDK v4 برای Android هر 30 دقیقه ارسال می شود.

برای تنظیم دوره اعزام به صورت برنامه ای:

// Set the dispatch period to 90 seconds.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(90);

برای تنظیم دوره ارسال در فایل پیکربندی XML:

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

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

// Disable periodic dispatch by setting dispatch period to a value less than 1.
GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(0);

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

ارسال دستی

برای ارسال دستی بازدیدها، به عنوان مثال زمانی که می دانید رادیو دستگاه از قبل برای ارسال داده های دیگر استفاده می شود:

GoogleAnalytics.getInstance(this).dispatchLocalHits();

ارسال پس زمینه

برای فعال کردن ارسال پس‌زمینه در برنامه‌های در حال اجرا در دستگاه‌های غیر Google Play، در فایل پیکربندی ApplicationManifest.xml :

  • مجوز WAKE_LOCK را دریافت کنید.
  • AnalyticsReceiver را ثبت کنید.
  • ثبت AnalyticsService

مثلا:

<manifest>
  <!-- ... -->

  <!-- Get permission for reliable local dispatching on non-Google Play devices. -->
  <uses-permission android:name="android.permission.WAKE_LOCK" />

  <application name="com.example.MyApp">
    <!-- Register AnalyticsReceiver and AnalyticsService to support background
         dispatching on non-Google Play devices. -->
    <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
      android:enabled="true">
      <intent-filter>
        <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
      </intent-filter>
    </receiver>
    <service android:name="com.google.android.gms.analytics.AnalyticsService"
      android:enabled="true"
      android:exported="false"/>

    <!-- ... -->
  </application>
</manifest>