Android v3 (דור קודם) – תגי Universal Analytics

במדריך הזה מוסבר איך להטמיע תגי Universal Analytics נפוצים באמצעות ה-SDK של Google Tag Manager ל-Android.

  1. הגדרות נפוצות של תגים ב-Universal Analytics (UA)
    1. שליחת צפיות באפליקציה (צפיות במסך)
    2. שליחת אירועים
    3. שליחת עסקאות של מסחר אלקטרוני
      1. משתנים של שכבות נתוני מסחר אלקטרוני
    4. התקנת שיוך של מקור הפניה

הגדרות נפוצות של תגים ב-Universal Analytics (UA)

ההטמעה של Universal Analytics באפליקציה באמצעות Google Tag Manager מאפשרת לבצע שינויים בהטמעה של Google Analytics במהירות, שלא מצריכים בנייה מחדש של הקובץ הבינארי של האפליקציה לזירות מסחר ושליחתו מחדש אל זירות מסחר.

במדריך הזה מוסבר איך לבצע את המשימות הבאות באמצעות תגי Universal Analytics ו-Google Tag Manager SDK ל-Android:

שליחת צפיות באפליקציה (צפיות במסך)

כדי לשלוח תצוגה מפורטת של אפליקציה (צפייה במסך) ל-Google Analytics בכל פעם שפותחים מסך חדש באפליקציה:

  1. יצירת מאקרו של שם מסך
  2. יצירת כלל של OpenScreenEvent
  3. יצירת תג של צפייה באפליקציה (צפייה במסך) של UA
  4. עדכון הקוד כדי לדחוף אירוע ושם מסך לשכבת נתונים

1. יצירת מאקרו של שם מסך

צור מאקרו חדש של שם מסך באמצעות ערכי התצורה הבאים:

שם המאקרו : screen name
סוג המאקרו : Data Layer Variable
שם משתנה של שכבת נתונים : screenName

2. יצירת כלל OpenScreenEvent

אפשר ליצור כלל חדש שישמש להפעלה של התג החדש של צפייה באפליקציה (צפייה במסך) עם ערכי ההגדרה הבאים:

שם הכלל : OpenScreenEvent
תנאים: {{ event }} שווה openScreen

3. יצירת תג UA של צפייה באפליקציה (צפייה במסך)

יוצרים תג UA חדש באמצעות ערכי ההגדרה הבאים:

שם התג : Screen Open
מזהה לצורכי מעקב : מזהה הנכס שלך
סוג תג : Universal Analytics (beta)
סוג מעקב : AppView
הגדרה בסיסית – שם האפליקציה : {{ app name }}
הגדרה בסיסית – גרסת האפליקציה : {{ app version }}
הגדרה בסיסית – שם מסך : {{ screen name }}}

4. עדכון הקוד כדי לדחוף אירוע ושם מסך לשכבת נתונים

מוסיפים קוד לאפליקציה כדי לדחוף אירוע openScreen וערך screenName לשכבת הנתונים, כמו בדוגמה הבאה:

// Push an 'openScreen' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

import android.app.Activity;
import android.os.Bundle;

public class MainActivity extends Activity {

  private static final String SCREEN_NAME = "Home Screen";
  private DataLayer mDataLayer;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate();
  }

  @Override
  public void onStart() {
    super.onStart();
    mDataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    mDataLayer.push(DataLayer.mapOf("event", "openScreen",        // Event, Name of Open Screen Event.
                                    "screenName", SCREEN_NAME));  // Name of screen name field, Screen name value.
  }
}

שליחת אירועים

כדי לשלוח אירוע ל-Google Analytics כשמשתמש מקיים אינטראקציה עם פקדים בממשק המשתמש או עם תוכן באפליקציה:

  1. (אופציונלי) יצירת פקודות מאקרו של אירוע
  2. יצירת כלל של אירוע
  3. יצירת תג מעקב אירועים של UA
  4. עדכון הקוד כדי לדחוף אירוע וערכי מאקרו של אירוע כלשהו לשכבת הנתונים

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

1. (אופציונלי) יצירת פקודות מאקרו של אירוע

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

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

שם המאקרו : video name
סוג המאקרו: Data Layer Variable
שם משתנה של שכבת נתונים : videoName

2. יצירת כלל של אירוע

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

שם הכלל : VideoPlayEvent
תנאים : {{ event }} שווה videoPlay

יצירת תג מעקב אירועים של UA

אפשר ליצור תג מעקב אירועים של UA שיופעל כשהכלל שנוצר בשלב הקודם יקבל הערכה ל-true. בדוגמה להפעלת הסרטון, התג ייראה כך:

שם התג : Video Play Event
מזהה לצורכי מעקב : מזהה הנכס שלך
סוג תג : Universal Analytics (beta)
סוג מעקב : Event
פרמטרים של מעקב אחר אירועים – קטגוריה : Video
פרמטרים של מעקב אחר אירועים – פעולה : Play
פרמטרים של מעקב אחר אירועים – תווית : {{ video name }}
הגדרה בסיסית – שם האפליקציה : {{ app name }}
הגדרה בסיסית – גרסת מסך בסיסית : {{ app version }}

{{ screen name }}

עדכון הקוד כדי לדחוף אירוע לשכבת נתונים

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

//  Push a 'videoPlay' event to the data layer.
import com.google.tagmanager.DataLayer;
import com.google.tagmanager.TagManager;

public class VideoPlayer {

  // Called when a user initiates a video playback.
  public void onPlay(Video v) {
    DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

    // This call assumes the container has already been opened, otherwise events
    // pushed to the DataLayer will not fire tags in that container.
    dataLayer.push(DataLayer.mapOf("event", "videoPlay",        // Event, Name of Open Screen Event.
                                   "videoName", v.getName());   // Additional data layer variables used by the event tag.
    play(v);
  }

  // Rest of implementation;

}

שליחת עסקאות של מסחר אלקטרוני

כדי לשלוח ל-Google Analytics עסקה ופריטים המשויכים אליה כשמשתמש משלים רכישה מתוך האפליקציה:

  1. יצירת כלל עסקה
  2. יצירת תג עסקה של UA
  3. עדכון הקוד לשליחת נתוני אירועים ועסקה / נתוני פריטים לשכבת הנתונים

1. יצירת כלל עסקה

בשלב הבא, יוצרים כלל חדש עם ערכי ההגדרה הבאים:

שם הכלל : TransactionCompleted
תנאים : {{ event }} שווה transaction

2. יצירת תג עסקה של UA

יוצרים תג עסקה של UA עם הערכים הבאים:

שם התג : Transaction Completed
מזהה לצורכי מעקב : מזהה הנכס שלך
סוג תג : Universal Analytics (beta)
סוג מעקב : Transaction
הגדרה בסיסית – שם האפליקציה : {{ app name }}
הגדרה בסיסית – גרסת האפליקציה : {{ app version }}
הגדרה בסיסית – שם מסך : {{ screen name }}

3. עדכן את הקוד לדחיפת נתוני אירועים ועסקה / נתוני פריטים לשכבת הנתונים

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

// Called when a user completes a transaction.
public void onPurchaseCompleted(Purchase p) {

  DataLayer dataLayer = TagManager.getInstance(this).getDataLayer();

  // Put maps of item data into an array that will be pushed to the data layer.
  ArrayList<Map<String, String>> purchasedItems = new ArrayList<Map<String, String>>();
  for (Item i : p.items) {
    HashMap<String, String> currentItem = new HashMap<String, String>();

    currentItem.put("name", i.getProductName());
    currentItem.put("sku", i.getProductSku());
    currentItem.put("category", i.getProductCategory());
    currentItem.put("price", i.getProductPrice());
    currentItem.put("currency", "USD");
    currentItem.put("quantity", i.getProductQty());

    purchasedItems.add(currentItem);
  }

  // This call assumes the container has already been opened, otherwise events
  // pushed to the DataLayer will not fire tags in that container.
  dataLayer.push(DataLayer.mapOf("event", "transaction",               // Event, Name of Transaction Event.
                                 "transactionId", p.getTransId(),      // Additional fields required by the tag.
                                 "transactionTotal", p.getTotal(),
                                 "transactionAffiliation", "In-app Store",
                                 "transactionTax", p.getTax(),
                                 "transactionShipping", p.getShippingCost(),
                                 "transactionCurrency", "USD",
                                 "transactionProducts", purchasedItems));

  // Since the data layer is persistent, you should reset fields to null after
  // you are done pushing the transaction.
  dataLayer.push(DataLayer.mapOf("transactionId", null,
                                 "transactionTotal", null,
                                 "transactionAffiliation", null,
                                 "transactionTax", null,
                                 "transactionShipping", null,
                                 "transactionCurrency", null,
                                 "transactionProducts", null));
}

משתני שכבת נתונים נתמכים של מסחר אלקטרוני

תגי טרנזקציות ב-UA תומכים במשתנים הבאים של שכבות הנתונים:

משתנים של עסקה

שם משתנה התיאור תיאור נדרש
transactionId מזהה עסקה ייחודי מחרוזת כן
transactionAffiliation שותף או חנות מחרוזת לא
transactionTotal הערך הכולל של העסקה מחרוזת לא
transactionTax סכום המס של העסקה מחרוזת לא
transactionShipping עלות המשלוח של העסקה מחרוזת לא
transactionCurrency מטבע העסקה מחרוזת לא
transactionProducts רשימת פריטים שנרכשו בעסקה מערך של מפות שמכילות את משתני הפריטים. לא

משתני פריט

שם משתנה התיאור תיאור נדרש
name שם המוצר מחרוזת כן
sku מק"ט של המוצר מחרוזת לא
category קטגוריית המוצר מחרוזת לא
price מחיר המוצר מחרוזת לא
currency סוג המטבע של price מחרוזת לא
quantity כמות הפריטים מחרוזת לא

התקנת ייחוס של מקור הפניה

כאשר הנתונים של הגורם המפנה להתקנות ייכללו באופן אוטומטי בכל ההיטים של Google Analytics או הבקשות לפיקסלים לרימרקטינג של Google Ads, כאשר השירות והנמען הבאים רשומים בקובץ AndroidManifest.xml:

<!-- Used for install referrer tracking -->
<service android:name="com.google.tagmanager.InstallReferrerService" />
<receiver android:name="com.google.tagmanager.InstallReferrerReceiver" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>