זוהי ההטמעה של 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 | |
מאגר | |
void | |
void |
שיטות ציבוריות
Public Container getContainer (String containerId)
מחזירה את הקונטיינר הפתוח שמשויך ל-containerId
.
מחזירה null
אם המאגר עדיין לא פתוח.
Public הקשר getContext ()
הפונקציה מחזירה את ההקשר השמור שמשויך לאובייקט הזה.
Public סטטי TagManager getInstance (Context context)
מורידים את מופע ה-Singleton של המחלקה TagManager
, ויוצרים אותה במקרה הצורך.
Public Container openContainer (String containerId, Container.Callback callback)
מחזירה קונטיינר. הקריאה החוזרת תתבצע בעקבות אירועים שונים שקשורים לקונטיינר. לכל הפחות, OpenContainer ינסה לטעון גרסה שמורה של הקונטיינר. אם אין גרסה שמורה, או אם הגרסה השמורה לא עדכנית, יתבצע ניסיון לטעון אותה מהרשת.
בדרך כלל, המאגר שמוחזר יהיה ריק, אבל הטעינה תתבצע בשרשור נפרד, ולכן יכול להיות שהמאגר שמוחזר יתרענן לפני שהוא מוחזר, אחרי שהוא מוחזר, או שלעולם לא יתרענן (אם, לדוגמה, אין חיבור לרשת במהלך משך החיים של המאגר).
אם תתבצע קריאה נוספת ל-openContainer
עבור containerId
נתון, תיווצר החרגה.
פרמטרים
containerId | המזהה של הקונטיינר שצריך לפתוח |
קריאה חוזרת (callback) | אובייקט שהשיטות השונות שלו ייקראו במהלך חלקים של תהליך הטעינה. שימו לב: יכול להיות שהשיטות יופעלו משרשורים שונים. בנוסף, ייתכן שהמערכת
תפעיל אותן לפני ההחזרה של openContainer .
|