TagManager

מחלקה ציבורית TagManager

זוהי ההטמעה של Google Tag Manager (GTM). שימוש לדוגמה:

 Container container = TagManager.getInstance(context).openContainer(myContainerId);
 String value = container.getString("myKey");

 DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
 dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
מאגר הוא אוסף של פקודות מאקרו, תגים וכללים. הוא נוצר באפליקציית GTM ומוקצה לו מזהה מאגר. מזהה מאגר התגים הזה הוא המזהה שנמצא בשימוש ב-API הזה.

המחלקה Container מספקת שיטות לאחזור ערכים בהינתן מפתח. התרחישים getBoolean(String), getDouble(String), getLong(String), getString(String) מחזירים את הערך הנוכחי של המפתח של מאקרו של אוסף ערכים, בהתאם לכללים שמשויכים למאגר.

לדוגמה, אם הקונטיינר מכיל מאקרו של איסוף ערכים עם מפתח speed שהערך שלו הוא 32, וכלל ההפעלה הוא Language, ומאקרו אחר של איסוף ערכים עם מפתח speed שהערך שלו הוא 45, והכלל המפעיל הוא Language אינו en, אז ביצוע הקריאה הבאה:

 container.getLong("speed")
תחזיר את הערך 32 אם השפה הנוכחית במכשיר היא אנגלית, או 45 אחרת.

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

גרסה ראשונית של הכלי המכיל מצורפת לאפליקציה. צריך להוסיף אותו כנכס עם השם tagmanager/containerId, ו-containerId הוא אותו מזהה מאגר התגים שבו משתמשים ב-API הזה. בעת קריאה ל-openContainer(String, Container.Callback), המאגר יוחזר עם אותם כללים/פקודות מאקרו בחבילה. תוכלו ליצור את המאגר בממשק המשתמש ולהשתמש בלחצן ההורדה כדי להוריד אותו.

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

הקונטיינר שהורד נשמר באופן מקומי. כשתקראו ל-openContainer(String, Container.Callback), הוא יטען תחילה את מאגר ברירת המחדל, ולאחר מכן יטען באופן אסינכרוני כל מאגר שמור. אם לא נמצאה אף גרסה, או אם היא ישנה יותר מ-12 שעות, המערכת תנסה לאחזר גרסה חדשה יותר מהרשת. אפשר למצוא את הסטטוס של הטעינות האסינכרוניות האלה על ידי העברת הערך Container.Callback ל-openContainer(String, Container.Callback).

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

כשמסיימים להשתמש במאגר, קוראים ל-close().

סיכום של הכיתה המוצבת

משופר TagManager.Logger ממשק פשוט לרישום שגיאות/אזהרה/מידע/ניפוי באגים/רישום מילולי. 
טיפוסים בני מנייה (enum) TagManager.RefreshMode מצב לרענון המאגר. 

סיכום אמצעי תשלום ציבורי

מאגר
getContainer(מחרוזת containerId)
הקשר
DataLayer
סטטי TagManager
getInstance(הקשר הקשר)
כלי רישום ביומן
TagManager.RefreshMode
מאגר
openContainer(מחרוזת containerId, Container.Callback callback)
void
setLogger(Logger logger)
void

שיטות ציבוריות

Public Container getContainer (String containerId)

מחזירה את הקונטיינר הפתוח שמשויך ל-containerId. מחזירה null אם המאגר עדיין לא פתוח.

Public הקשר getContext ()

הפונקציה מחזירה את ההקשר השמור שמשויך לאובייקט הזה.

Public DataLayer getDataLayer ()

מחזירה את האובייקט של שכבת הנתונים שמשמש את מנהל התגים.

Public סטטי TagManager getInstance (Context context)

מורידים את מופע ה-Singleton של המחלקה TagManager, ויוצרים אותה במקרה הצורך.

Public Logger getLogger ()

מחזירה את המתעד שנמצא בשימוש ב-Tag Manager.

Public TagManager.RefreshMode getRefreshMode ()

מחזירה את מצב הרענון המשמש עבור כל הקונטיינרים.

Public Container openContainer (String containerId, Container.Callback callback)

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

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

אם תתבצע קריאה נוספת ל-openContainer עבור containerId נתון, תיווצר החרגה.

פרמטרים
containerId המזהה של הקונטיינר שצריך לפתוח
קריאה חוזרת (callback) אובייקט שהשיטות השונות שלו ייקראו במהלך חלקים של תהליך הטעינה. שימו לב: יכול להיות שהשיטות יופעלו משרשורים שונים. בנוסף, ייתכן שהמערכת תפעיל אותן לפני ההחזרה של openContainer.

Public void setLogger (Logger logger)

מחליף את המתעד הקיים המשמש את Tag Manager.

Public void setRefreshMode (TagManager.RefreshMode מצב)

מגדיר את מצב הרענון לשימוש בכל המאגרים.