במדריך הזה מוסבר איך להטמיע תגי Universal Analytics נפוצים באמצעות ה-SDK של Google Tag Manager ל-Android.
הגדרות נפוצות של תגים ב-Universal Analytics (UA)
ההטמעה של Universal Analytics באפליקציה באמצעות Google Tag Manager מאפשרת לבצע שינויים בהטמעה של Google Analytics במהירות, שלא מצריכים בנייה מחדש של הקובץ הבינארי של האפליקציה לזירות מסחר ושליחתו מחדש אל זירות מסחר.
במדריך הזה מוסבר איך לבצע את המשימות הבאות באמצעות תגי Universal Analytics ו-Google Tag Manager SDK ל-Android:
שליחת צפיות באפליקציה (צפיות במסך)
כדי לשלוח תצוגה מפורטת של אפליקציה (צפייה במסך) ל-Google Analytics בכל פעם שפותחים מסך חדש באפליקציה:
- יצירת מאקרו של שם מסך
- יצירת כלל של OpenScreenEvent
- יצירת תג של צפייה באפליקציה (צפייה במסך) של UA
- עדכון הקוד כדי לדחוף אירוע ושם מסך לשכבת נתונים
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 כשמשתמש מקיים אינטראקציה עם פקדים בממשק המשתמש או עם תוכן באפליקציה:
- (אופציונלי) יצירת פקודות מאקרו של אירוע
- יצירת כלל של אירוע
- יצירת תג מעקב אירועים של UA
- עדכון הקוד כדי לדחוף אירוע וערכי מאקרו של אירוע כלשהו לשכבת הנתונים
בשלבים הבאים מוסבר איך זה יעבוד לגבי אירוע שמופעל כשמשתמש מתחיל הפעלה של סרטון.
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 עסקה ופריטים המשויכים אליה כשמשתמש משלים רכישה מתוך האפליקציה:
- יצירת כלל עסקה
- יצירת תג עסקה של UA
- עדכון הקוד לשליחת נתוני אירועים ועסקה / נתוני פריטים לשכבת הנתונים
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>