Ini adalah penerapan seluler Google Tag Manager (GTM). Contoh penggunaan:
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"));Penampung adalah kumpulan makro, tag, dan aturan. Kolom ini dibuat dalam aplikasi GTM, dan diberi ID penampung. ID penampung ini adalah yang digunakan dalam API ini.
Class Container
menyediakan metode untuk mengambil nilai yang diberikan kunci.
Rutinitas getBoolean(String)
, getDouble(String)
, getLong(String)
, getString(String)
menampilkan nilai saat ini untuk kunci makro kumpulan nilai, bergantung pada aturan yang terkait dengan penampung tersebut.
Misalnya, jika penampung Anda memiliki makro pengumpulan nilai dengan kunci speed
yang
nilainya adalah 32, dan aturan pengaktifannya adalah Language
adalah "en"; dan makro pengumpulan nilai
lainnya dengan kunci speed
yang nilainya adalah 45, dan aturan pengaktifannya adalah
Language
bukan "en", maka melakukan panggilan berikut:
container.getLong("speed")akan menampilkan 32 jika bahasa perangkat saat ini adalah bahasa Inggris, atau 45 jika sebaliknya.
Lapisan data adalah peta yang menyimpan informasi generik tentang aplikasi.
Class DataLayer
menyediakan metode untuk mendorong dan mengambil data dari lapisan data.
Mendorong kunci event
ke lapisan data akan menyebabkan tag yang cocok dengan peristiwa ini diaktifkan.
Versi awal container dipaketkan dengan aplikasi. Aset ini harus ditempatkan sebagai aset dengan nama tagmanager/containerId, dengan containerId adalah ID penampung yang sama yang akan Anda gunakan dalam API ini. Saat Anda memanggil openContainer(String, Container.Callback)
, penampung akan ditampilkan dengan aturan/makro yang dipaketkan tersebut.
Anda akan membuat penampung di UI dan menggunakan tombol Download untuk mendownloadnya.
Anda dapat mengubah penampung di UI dan memublikasikan versi baru. Dalam hal ini, saat berikutnya aplikasi seluler memuat ulang penampung dari jaringan (saat ini setiap 12 jam), penampung akan mendapatkan versi baru tersebut. Saat Anda memanggil salah satu rutinitas get..., nilainya akan dihitung menggunakan aturan terbaru.
Penampung yang didownload disimpan secara lokal; saat Anda memanggil openContainer(String, Container.Callback)
, penampung ini akan memuat penampung default terlebih dahulu, lalu akan memuat penampung tersimpan secara asinkron. Jika tidak ada
yang ditemukan, atau jika versi lebih lama dari 12 jam, aplikasi akan mencoba mengambil versi yang lebih baru dari jaringan.
Anda dapat menemukan status pemuatan asinkron tersebut dengan meneruskan Container.Callback
ke openContainer(String, Container.Callback)
.
Terkadang, Anda mungkin ingin memblokir hingga penampung non-default tersedia, atau hingga penampung baru tersedia. ContainerOpener
adalah class utilitas yang dapat membantu.
Setelah Anda selesai dengan penampung, panggil close()
.
Ringkasan Class Bertingkat
antarmuka | TagManager.Logger | Antarmuka sederhana untuk error/peringatan/info/debug/logging panjang. | |
enum | TagManager.RefreshMode | Mode memuat ulang penampung. |
Ringkasan Metode Publik
Container |
getContainer(String containerId)
|
Konteks | |
DataLayer | |
statis TagManager |
getInstance(Konteks konteks)
|
Logger | |
TagManager.RefreshMode | |
Container | |
void | |
void |
Metode Publik
public Container getContainer (String containerId)
Menampilkan penampung terbuka yang terkait dengan containerId
; menampilkan null
jika penampung belum terbuka.
public Konteks getContext ()
Menampilkan konteks tersimpan yang terkait dengan objek ini.
publik static TagManager getInstance (Konteks konteks)
Dapatkan instance singleton class TagManager
, dengan membuatnya jika perlu.
publik TagManager.RefreshMode getRefreshMode ()
Menampilkan mode refresh yang digunakan untuk semua penampung.
public Container openContainer (String containerId, Container.Callback callback)
Menampilkan penampung. Callback akan dipanggil saat berbagai hal terjadi untuk container. Setidaknya, openContainer akan mencoba memuat versi penampung yang tersimpan. Jika tidak ada versi yang disimpan, atau jika versi yang tersimpan sudah usang, upaya akan dilakukan untuk memuat dari jaringan.
Biasanya, penampung yang ditampilkan akan kosong, tetapi pemuatan akan terjadi di thread terpisah, sehingga penampung yang ditampilkan dapat dimuat ulang sebelum ditampilkan, setelah ditampilkan, atau mungkin tidak pernah dimuat ulang (jika, misalnya, tidak ada koneksi jaringan selama masa aktif penampung).
Jika Anda memanggil openContainer
untuk kedua kalinya untuk containerId
tertentu, pengecualian akan ditampilkan.
Parameter
containerId | ID penampung untuk membuka |
callback | objek yang berbagai metodenya akan dipanggil selama bagian-bagian proses
pemuatan. Perhatikan, metode dapat dipanggil dari thread berbeda. Selain itu, metode tersebut dapat
dipanggil sebelum openContainer ditampilkan.
|
public void setLogger (Logger logger)
Mengganti pencatat log yang ada yang digunakan oleh Tag Manager.
public void setRefreshMode (TagManager.RefreshMode mode)
Menetapkan mode muat ulang yang digunakan untuk semua penampung.