ניהול מסע פרסום

במסמך הזה מפורטת סקירה כללית של מדידת קמפיינים ומקורות תנועה באמצעות Google Analytics SDK v4 ל-Android.

סקירה

מדידה של קמפיינים ב-Google Analytics מאפשרת לשייך קמפיינים ומקורות תנועה לפעילות המשתמשים באפליקציה שלך. האפשרויות הבאות זמינות לשיוך של קמפיינים ומקורות תנועה ב-Google Analytics SDK v4 ל-Android:

בקטעים הבאים מוסבר מתי ואיך להטמיע כל סוג של מדידת קמפיינים באפליקציה.

ייחוס לקמפיין ב-Google Play

מדידת הקמפיינים ב-Google Play מאפשרת לך לראות אילו קמפיינים ומקורות תנועה שולחים משתמשים להוריד את האפליקציה שלך מחנות Google Play. מומלץ לכל המפתחים להטמיע את מדידת הקמפיינים בחנות Google Play.

הטמעת השיוך לקמפיינים של Google Play

חנות Google Play מספקת למפתחים Install Referrer API כדי לאפשר למפתחים לאחזר באופן מאובטח תוכן של הפניות מ-Google Play. ה-API הזה מחזיר את הערך של פרמטר הגורם המפנה ששימש כדי להגיע לדף האפליקציה בחנות Google Play, אם היה כזה.

כדי לשייך הורדת אפליקציה לקמפיין, צריך להוסיף פרמטר של גורם מפנה לכל קישור שמפנה לחנות Google Play, ולהוסיף לאפליקציה את ה-API להעברת התקנה של Play כדי לקבל ולהגדיר את פרטי הקמפיין שנכללים ב-Intent במעקב של Google Analytics.

‫1. מסירים את הנמען של Google Analytics מהקובץ AndroidManifest.xml.

אם מוטמע גם מקבל של Google Tag Manager, צריך להסיר אותו גם מהמניפסט.

‫2. צריך להוסיף תלות בספריית ה-Install Referrer API.

כדי להוסיף את התלות, מוסיפים את הפקודה הבאה ל-build.gradle:

dependencies {
    ...
    implementation 'com.android.installreferrer:installreferrer:1.1'
}

3. קוראים ל-Install Referrer API בפעילות ההשקה של האפליקציה.

משתמשים ב-Install Referrer API כדי לאחזר את כתובת ה-URL של הגורם המפנה של חבילת האפליקציה שמותקנת, ולאחר מכן מעבירים את ערך כתובת ה-URL למקלט של Google Analytics או Google Tag Manager. כדי להשתמש ב-Install Referrer API בפעילות ההשקה של האפליקציה, צריך לבצע הטמעה דומה לקוד הבא.

אם יש לך כמה נקודות כניסה לאפליקציה, כמו קישורי עומק לחלקים ספציפיים, אפשר להטמיע את השיטות שנקבעו מראש ב-ActivityLifecycleListener שמופעל על ידי ActivityLifecycleCallbacks.

package com.example.myapplication;

import static com.android.installreferrer.api.InstallReferrerClient.InstallReferrerResponse;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;

import com.android.installreferrer.api.InstallReferrerClient;
import com.android.installreferrer.api.InstallReferrerStateListener;
import com.android.installreferrer.api.ReferrerDetails;
import com.google.android.gms.analytics.CampaignTrackingReceiver;
import com.google.tagmanager.InstallReferrerReceiver;

import java.util.concurrent.Executor;
import java.util.concurrent.Executors;

public class MainActivity extends AppCompatActivity {

    private final Executor backgroundExecutor = Executors.newSingleThreadExecutor();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        checkInstallReferrer();
    }

    // TODO: Change this to use whatever preferences are appropriate. The install referrer should
    // only be sent to the receiver once.
    private final String prefKey = "checkedInstallReferrer";

    void checkInstallReferrer() {
        if (getPreferences(MODE_PRIVATE).getBoolean(prefKey, false)) {
            return;
        }

        InstallReferrerClient referrerClient = InstallReferrerClient.newBuilder(this).build();
        backgroundExecutor.execute(() -> getInstallReferrerFromClient(referrerClient));
    }

    void getInstallReferrerFromClient(InstallReferrerClient referrerClient) {

        referrerClient.startConnection(new InstallReferrerStateListener() {
            @Override
            public void onInstallReferrerSetupFinished(int responseCode) {
                switch (responseCode) {
                    case InstallReferrerResponse.OK:
                        ReferrerDetails response = null;
                        try {
                            response = referrerClient.getInstallReferrer();
                        } catch (RemoteException e) {
                            e.printStackTrace();
                            return;
                        }
                        final String referrerUrl = response.getInstallReferrer();


                        // TODO: If you're using GTM, call trackInstallReferrerforGTM instead.
                        trackInstallReferrer(referrerUrl);


                        // Only check this once.
                        getPreferences(MODE_PRIVATE).edit().putBoolean(prefKey, true).commit();

                        // End the connection
                        referrerClient.endConnection();

                        break;
                    case InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                        // API not available on the current Play Store app.
                        break;
                    case InstallReferrerResponse.SERVICE_UNAVAILABLE:
                        // Connection couldn't be established.
                        break;
                }
            }

            @Override
            public void onInstallReferrerServiceDisconnected() {

            }
        });
    }

    // Tracker for Classic GA (call this if you are using Classic GA only)
    private void trackInstallReferrer(final String referrerUrl) {
        new Handler(getMainLooper()).post(new Runnable() {
            @Override
            public void run() {
                CampaignTrackingReceiver receiver = new CampaignTrackingReceiver();
                Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
                intent.putExtra("referrer", referrerUrl);
                receiver.onReceive(getApplicationContext(), intent);
            }
        });
    }

    // Tracker for GTM + Classic GA (call this if you are using GTM + Classic GA only)
    private void trackInstallReferrerforGTM(final String referrerUrl) {
        new Handler(getMainLooper()).post(new Runnable() {
            @Override
            public void run() {
                InstallReferrerReceiver receiver = new InstallReferrerReceiver();
                Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
                intent.putExtra("referrer", referrerUrl);
                receiver.onReceive(getApplicationContext(), intent);
            }
        });
    }

}

4. הוספת פרמטרים של קמפיינים מ-Google Analytics לכתובות URL ב-Google Play

בשלב הבא, מוסיפים פרמטר referrer לכל כתובת URL שתקושר ישירות לחנות Google Play, ומגדירים את הערך של הפרמטר למחרוזת של פרמטרים בקמפיין ב-Google Analytics שמתארים את המקור, כמו בדוגמה הבאה:

https://play.google.com/store/apps/details?id=com.example.application
&referrer=utm_source%3Dgoogle
%26utm_medium%3Dcpc
%26utm_term%3Drunning%252Bshoes
%26utm_content%3Dlogolink
%26utm_campaign%3Dspring_sale

כדי ללמוד כיצד ליצור מחרוזות פרמטרים של קמפיינים, אפשר להשתמש בכלי ליצירת כתובות URL של Google Play, או לעיין בקטע ההפניה פרמטרים של קמפיין.

שיוך כללי של קמפיינים ומקורות תנועה

אחרי התקנה של אפליקציה, יכול להיות שהיא תופעל על ידי הפניות מקמפיינים פרסומיים, אתרים או אפליקציות אחרות. בתרחיש הזה, המערכת עשויה לשייך מקורות תנועה מפנים או קמפיינים שיווקיים לפעילות של משתמשים בסשנים הבאים, על ידי הגדרת הפרמטרים של הקמפיין בכלי מעקב באופן ישיר באמצעות השיטה setCampaignParamsFromUrl.

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
    TrackerName.APP_TRACKER);

// Set screen name.
t.setScreenName(screenName);

// In this example, campaign information is set using
// a url string with Google Analytics campaign parameters.
// Note: This is for illustrative purposes. In most cases campaign
//       information would come from an incoming Intent.
String campaignData = "http://examplepetstore.com/index.html?" +
    "utm_source=email&utm_medium=email_marketing&utm_campaign=summer" +
    "&utm_content=email_variation_1";

// Campaign data sent with this hit.
t.send(new HitBuilders.ScreenViewBuilder()
    .setCampaignParamsFromUrl(campaignData)
    .build()
);

פרטים על השיטה getTracker זמינים במאמר הגדרות מתקדמות.

פרמטרים של קמפיין

פרמטרים של קמפיינים משמשים להעברת מידע על מקורות התנועה ועל הקמפיינים שמביאים משתמשים לאפליקציה שלך.

הטבלה הבאה מכילה את הפרמטרים הזמינים של הקמפיין שבהם אפשר להשתמש ב-Google Play או במדידה כללית של קמפיינים:

פרמטר תיאור דוגמאות
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
utm_campaign שם הקמפיין; משמש לניתוח של מילות מפתח כדי לזהות קידום מכירות של מוצר ספציפי או קמפיין אסטרטגי utm_campaign=spring_sale
gclid פרמטר התיוג האוטומטי של Google Ads; משמש למדידת מודעות. הערך הזה נוצר באופן דינמי ואין לשנות אותו אף פעם.

הכלי ליצירת כתובות URL של Google Play

אפשר להשתמש בכלי שלמטה כדי ליצור כתובות URL למדידת קמפיינים ב-Google Play.