قياس أداء الحملات - حزمة تطوير البرامج (SDK) لنظام التشغيل Android

يقدّم هذا المستند نظرة عامة حول كيفية قياس الحملات ومصادر الزيارات باستخدام الإصدار الثالث من حزمة تطوير البرامج (SDK) لخدمة "إحصاءات Google" لنظام التشغيل Android.

نظرة عامة

يسمح قياس الحملات في "إحصاءات Google" بإسناد الحملات ومصادر الزيارات إلى نشاط المستخدم داخل تطبيقك. تتوفّر هذه الخيارات لتحديد مصدر الزيارات ومصادر الزيارات في حزمة تطوير البرامج (SDK) لخدمة "إحصاءات Google" لنظام التشغيل Android:

ستوضّح الأقسام التالية وقت تنفيذ كل نوع من أنواع قياس الحملات في تطبيقك وكيفية تنفيذه.

معلمات الحملات

يتم استخدام مَعلمات الحملات لتمرير معلومات عن مصادر الزيارات والحملات التي تجذب المستخدمين إلى تطبيقك.

يتضمّن الجدول التالي مَعلمات الحملات المتوفّرة التي يمكن استخدامها في Google Play أو لقياس الحملات العامة:

المَعلمة الوصف أمثلة
utm_campaign اسم الحملة الذي يُستخدم لتحليل الكلمات الرئيسية لتحديد ترويج منتج معيّن أو حملة استراتيجية معيّنة utm_campaign=spring_sale
utm_source مصدر الحملة: يُستخدم لتحديد محرك بحث أو نشرة إخبارية أو مصدر آخر utm_source=google
utm_medium وسيط الحملة؛ يُستخدم لتحديد وسيط مثل البريد الإلكتروني أو تكلفة النقرة (CPC) utm_medium=cpc
utm_term عبارة الحملة؛ تُستخدم مع نتائج البحث المدفوعة لتوفير الكلمات الرئيسية للإعلانات utm_term=running+shoes
utm_content محتوى الحملة؛ يُستخدم لاختبار A/B والإعلانات التي تستهدف المحتوى للتمييز بين الإعلانات أو الروابط التي تشير إلى عنوان URL نفسه. utm_content=logolink
utm_content=textlink
gclid معلَمة وضع العلامات التلقائي في "إعلانات Google"، تُستخدم لقياس الإعلانات. يتم إنشاء هذه القيمة ديناميكيًا ويجب عدم تعديلها مطلقًا.

تحديد مصدر الزيارات والحملة العامة

بعد تثبيت التطبيق، قد يتم تشغيله عن طريق الإحالات من حملات إعلانية أو مواقع إلكترونية أو تطبيقات أخرى. في هذا السيناريو، يمكن أن تُنسب مصادر الزيارات المُحيلة أو الحملات التسويقية إلى نشاط المستخدِم في الجلسات اللاحقة من خلال إعداد حقول الحملة على أداة التتبُّع مباشرةً.

على سبيل المثال، تتحقّق عملية التنفيذ التالية من الغرض الذي أطلق التطبيق لمَعلمات الحملات على "إحصاءات Google":

package com.example.app;

import com.google.analytics.tracking.android.Fields;
import com.google.analytics.tracking.android.GoogleAnalytics;
import com.google.analytics.tracking.android.MapBuilder;
import com.google.analytics.tracking.android.Tracker;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

import java.util.Map;

/*
 * An example of how to implement general campaign attribution in Android.
 *
 * If the intent that launched the Activity has a URI, parse it for campaign
 * parameters and send the referring data to Google Analytics.
 */
public class MainActivity extends Activity {

  private static final String GA_PROPERTY_ID = "UA-XXXX-Y";
  private static final String SCREEN_LABEL = "Home Screen";

  // This examples assumes the use of Google Analytics campaign
  // "utm" parameters, like "utm_source".
  private static final String CAMPAIGN_SOURCE_PARAM = "utm_source";

  Tracker mTracker;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mTracker = GoogleAnalytics.getInstance(this).getTracker(GA_PROPERTY_ID);
  }

  @Override
  public void onStart() {
    super.onStart();

    // Set screen name on tracker so that all subsequent hits will use this
    // value.
    mTracker.set(Fields.SCREEN_NAME, SCREEN_LABEL);

    // Get the intent that started this Activity.
    Intent intent = this.getIntent();
    Uri uri = intent.getData();

    // Send a screenview using any available campaign or referrer data.
    MapBuilder.createAppView().setAll(getReferrerMapFromUri(uri));
  }

  /*
   * Given a URI, returns a map of campaign data that can be sent with
   * any GA hit.
   *
   * @param uri A hierarchical URI that may or may not have campaign data
   *     stored in query parameters.
   *
   * @return A map that may contain campaign or referrer
   *     that may be sent with any Google Analytics hit.
   */
  Map<String,String> getReferrerMapFromUri(Uri uri) {

    MapBuilder paramMap = new MapBuilder();

    // If no URI, return an empty Map.
    if (uri == null) { return paramMap.build(); }

    // Source is the only required campaign field. No need to continue if not
    // present.
    if (uri.getQueryParameter(CAMPAIGN_SOURCE_PARAM) != null) {

      // MapBuilder.setCampaignParamsFromUrl parses Google Analytics campaign
      // ("UTM") parameters from a string URL into a Map that can be set on
      // the Tracker.
      paramMap.setCampaignParamsFromUrl(uri.toString());

     // If no source parameter, set authority to source and medium to
     // "referral".
     } else if (uri.getAuthority() != null) {

       paramMap.set(Fields.CAMPAIGN_MEDIUM, "referral");
       paramMap.set(Fields.CAMPAIGN_SOURCE, uri.getAuthority());

     }

     return paramMap.build();
  }
}

بدلاً من ذلك، إذا كانت لديك معلومات الحملة في نموذج غير مَعلمات الحملات على "إحصاءات Google"، يمكنك ضبطها على Map وإرسالها يدويًا:

// May return null if EasyTracker has not yet been initialized with a property ID.
EasyTracker easyTracker = EasyTracker.getInstance(this);
easyTracker.set(Fields.SCREEN_NAME, "Home Screen");

// In this example, campaign information is set using a Map, rather than
// a url string with Google Analytics campaign parameters.
// Note that Fields.CAMPAIGN_KEYWORD is not necessary for this campaign.
HashMap<String, String> campaignData = new HashMap<String, String>();
campaignData.put(Fields.CAMPAIGN_SOURCE, "email");
campaignData.put(Fields.CAMPAIGN_MEDIUM, "email marketing");
campaignData.put(Fields.CAMPAIGN_NAME, "summer_campaign");
campaignData.put(Fields.CAMPAIGN_CONTENT, "email_variation_1");

MapBuilder paramMap = MapBuilder.createAppView();

// Campaign data sent with this hit.
// Note that the campaign data is set on the Map, not the tracker.
easyTracker.send(paramMap
    .setAll(campaignData).build()
);

تحديد مصدر حملات Google Play

يتيح لك قياس حملات Google Play معرفة الحملات ومصادر الزيارات التي ترسل المستخدمين لتنزيل تطبيقك من "متجر Google Play". ننصح جميع المطوّرين بتنفيذ ميزة "قياس أداء الحملات" على "متجر Google Play".

تنفيذ إحالة حملات Google Play

عند تنزيل تطبيقك من "متجر Google Play"، يبث تطبيق "متجر Play" INTENT_REFERRER إلى تطبيقك أثناء التثبيت. يحتوي هذا الغرض على قيمة المعلَمة referrer للرابط المستخدَم للوصول إلى صفحة تطبيقك على "متجر Google Play"، في حال توفُّرها.

لإحالة عملية تنزيل تطبيق إلى حملة معيّنة، يجب إضافة مَعلمة referrer إلى أي روابط تشير إلى "متجر Google Play"، وإضافة BroadcastReceiver إلى تطبيقك لتلقّي وإعداد معلومات الحملة المضمّنة في الغرض من أداة تتبُّع "إحصاءات Google".

ويُنصَح بأن يستخدم معظم المطوّرين حزمة BroadcastReceiver المتوفّرة مع حزمة تطوير البرامج (SDK). لتنفيذ قياس أداء الحملات على "متجر Google Play" باستخدام المستلِم المضمّن:

‫1. أضِف مستلِم "إحصاءات Google" إلى ملف AndroidManifest.xml الخاص بك. لإضافة متلقّي "إحصاءات Google" إلى البيان، انسخ الترميز التالي والصقه:

<!-- Used for Google Play Store Campaign Measurement-->;
<service android:name="com.google.analytics.tracking.android.CampaignTrackingService" />
<receiver android:name="com.google.analytics.tracking.android.CampaignTrackingReceiver" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>

2. إضافة مَعلمات الحملات في "إحصاءات Google" إلى عناوين URL على Google Play

بعد ذلك، أضِف مَعلمة referrer إلى أيّ عناوين URL سيتمّ ربطها مباشرةً بـ "متجر Google Play" واضبط قيمة هذه المَعلمة على سلسلة من مَعلمات حملة "إحصاءات Google" التي تصف المصدر، كما في هذا المثال:

https://play.google.com/store/apps/details?id=com.example.app
&referrer=utm_source%3Dgoogle
%26utm_medium%3Dcpc
%26utm_term%3Dpodcast%252Bapps
%26utm_content%3DdisplayAd1
%26utm_campaign%3Dpodcast%252Bgeneralkeywords

لمعرفة كيفية إنشاء سلاسل مَعلمات الحملات، استخدِم أداة إنشاء عناوين URL على Google Play أو راجِع القسم المرجعي مَعلمات الحملات.

أداة إنشاء عناوين URL في Google Play

استخدِم الأداة أدناه لإنشاء عناوين URL لقياس الحملات على Google Play.