Pengantar
Dengan Google Tag Manager, developer dapat mengubah nilai konfigurasi di aplikasi selulernya menggunakan antarmuka Google Tag Manager tanpa harus membuat ulang dan mengirim ulang biner aplikasi ke marketplace aplikasi.
Hal ini berguna untuk mengelola setiap nilai atau flag konfigurasi dalam aplikasi yang mungkin perlu Anda ubah di masa mendatang, termasuk:
- Berbagai setelan UI dan string tampilan
- Ukuran, lokasi, atau jenis iklan yang ditayangkan di aplikasi Anda
- Berbagai setelan Game
Nilai konfigurasi juga dapat dievaluasi saat runtime menggunakan aturan, yang mengaktifkan konfigurasi dinamis seperti:
- Menggunakan ukuran layar untuk menentukan ukuran banner iklan
- Menggunakan bahasa dan lokasi untuk mengonfigurasi elemen UI
Google Tag Manager juga memungkinkan penerapan dinamis tag dan piksel pelacakan dalam aplikasi. Developer dapat mendorong peristiwa penting ke dalam lapisan data dan menentukan nanti tag atau piksel pelacakan mana yang harus diaktifkan.
Sebelum Memulai
Selesaikan langkah-langkah berikut sebelum Anda memulai panduan memulai ini:
- Instal Android SDK
- Download SDK Layanan Google Play
- Buat akun Google Tag Manager
- Mengonfigurasi penampung Google Tag Manager
Setelah menyelesaikan langkah-langkah tersebut, bagian selanjutnya dari panduan ini akan memandu Anda melalui cara mengonfigurasi dan menggunakan Google Tag Manager dalam aplikasi Android.
Memulai
Setelah mengikuti panduan Memulai ini, Anda akan memahami cara:
- Menambahkan Google Tag Manager ke project
- Melakukan inisialisasi Tag Manager di aplikasi Anda
- Mendapatkan nilai konfigurasi dari penampung Tag Manager
- Mendorong nilai dan peristiwa ke dalam
dataLayer
- Melihat pratinjau, men-debug, dan memublikasikan penampung
Panduan ini menggunakan cuplikan kode dari aplikasi contoh Cute Animals
yang disertakan dengan
SDK Layanan Google Play.
Sumber lengkap untuk project ini tersedia di: <android-sdk-directory>/extras/google/google_play_services/tagmanager/cuteanimals
.
1. Menambahkan Google Tag Manager ke Project Anda
Untuk menambahkan Google Tag Manager ke project Anda:
- Siapkan SDK Layanan Google Play.
- Jika Anda menggunakan IDE selain
Android Studio, tambahkan izin berikut ke
file
AndroidManifest.xml
:<!-- For TagManager SDK --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- Agar
InstallReferrerReceiver
dapat memanggil penerima Google Analytics untuk menetapkan data kampanye, tambahkan hal berikut ke fileAndroidManifest.xml
:<!-- Used for install referrer tracking--> <service android:name="com.google.android.gms.tagmanager.InstallReferrerService" /> <receiver android:name="com.google.android.gms.tagmanager.InstallReferrerReceiver" android:exported="true"> <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver>
2. Menambahkan File Penampung Default ke Project Anda
Google Tag Manager menggunakan penampung default saat aplikasi Anda pertama kali dijalankan. Penampung default akan berhenti digunakan begitu aplikasi dapat mengambil penampung baru melalui jaringan.
Untuk mendownload dan menambahkan biner container default ke aplikasi Anda:
- Login ke antarmuka web Google Tag Manager.
- Pilih Versi penampung yang ingin Anda download.
- Klik tombol Download untuk mengambil biner penampung.
- Tambahkan file biner container yang didownload ke project Anda sebagai resource mentah.
- Jika subfolder
raw
di bawah<project-root>/res/
tidak ada, buat subfolder tersebut. - Ganti nama file biner container jika perlu. Kode ini hanya terdiri dari huruf kecil, angka, dan garis bawah.
- Salin file biner container ke folder
<project-root>/res/raw
.
- Jika subfolder
Meskipun penggunaan file biner direkomendasikan, jika penampung Anda tidak berisi aturan atau tag, Anda dapat memilih untuk menggunakan file JSON sederhana.
3. Menginisialisasi Google Tag Manager
Untuk melakukan inisialisasi Google Tag Manager di aplikasi Anda:
- Dapatkan singleton
TagManager
:TagManager tagManager = TagManager.getInstance(this);
- Gunakan singleton
TagManager
untuk membuat permintaan untuk memuat penampung, yang menentukan ID penampung Google Tag Manager serta file penampung default Anda. ID penampung harus berhuruf besar dan sama persis dengan ID penampung di antarmuka web Google Tag Manager. Panggilan keloadContainerPreferNonDefault()
tidak memblokir dan menampilkanPendingResult
:PendingResult<ContainerHolder> pending = tagManager.loadContainerPreferNonDefault(CONTAINER_ID, R.raw.defaultcontainer_binary);
- Gunakan
ResultCallback
untuk menampilkanContainerHolder
setelah selesai dimuat atau waktu habis:// The onResult method will be called as soon as one of the following happens: // 1. a saved container is loaded // 2. if there is no saved container, a network container is loaded // 3. the 2-second timeout occurs pending.setResultCallback(new ResultCallback<ContainerHolder>() { @Override public void onResult(ContainerHolder containerHolder) { ContainerHolderSingleton.setContainerHolder(containerHolder); Container container = containerHolder.getContainer(); if (!containerHolder.getStatus().isSuccess()) { Log.e("CuteAnimals", "failure loading container"); displayErrorToUser(R.string.load_error); return; } ContainerLoadedCallback.registerCallbacksForContainer(container); containerHolder.setContainerAvailableListener(new ContainerLoadedCallback()); startMainActivity(); } }, TIMEOUT_FOR_CONTAINER_OPEN_MILLISECONDS, TimeUnit.MILLISECONDS);
Membuat Singleton ContainerHolder
Anda hanya boleh mempertahankan satu instance
ContainerHolder
per run aplikasi. Itulah sebabnya contoh di atas menggunakan class utilitasContainerHolderSingleton
untuk mengelola akses ke instanceContainerHolder
. ClassContainerHolderSingleton
akan terlihat seperti berikut:package com.google.android.tagmanager.examples.cuteanimals; import com.google.android.gms.tagmanager.ContainerHolder; /** * Singleton to hold the GTM Container (since it should be only created once * per run of the app). */ public class ContainerHolderSingleton { private static ContainerHolder containerHolder; /** * Utility class; don't instantiate. */ private ContainerHolderSingleton() { } public static ContainerHolder getContainerHolder() { return containerHolder; } public static void setContainerHolder(ContainerHolder c) { containerHolder = c; } }
4. Mendapatkan Nilai Konfigurasi dari Container
Setelah penampung dimuat, Anda dapat mengambil nilai konfigurasi menggunakan salah satu
metode Container.get<type>()
. Nilai konfigurasi ditentukan menggunakan
variabel kumpulan nilai Google Tag Manager. Misalnya, metode berikut
mengambil warna terbaru yang telah kita putuskan untuk digunakan bagi elemen UI dan menampilkannya
sebagai bilangan bulat:
/** * Returns an integer representing a color. */ private int getColor(String key) { return colorFromColorName(containerHolder.getContainer().getString(key)); }
Kode ini melakukan dua hal untuk mengambil nama warna dari container:
- Mendapatkan
Container
dariContainerHolder
menggunakanContainerHolder.getContainer()
. - Mendapatkan nilai warna menggunakan
Container.getString(key)
, tempat Anda telah menentukan kunci dan nilai di antarmuka web Google Tag Manager.
5. Mendorong Peristiwa dan Nilai ke dataLayer
Google Tag Manager juga menyediakan dataLayer
, tempat Anda dapat mengirim informasi tentang aplikasi yang dapat dibaca di bagian lain aplikasi atau digunakan untuk mengaktifkan tag yang telah Anda konfigurasi di antarmuka web Google Tag Manager.
Mendorong Nilai ke dataLayer
dataLayer
menyediakan lapisan persistensi yang dapat digunakan untuk menyimpan key-value pair yang mungkin ingin Anda gunakan di bagian lain dalam aplikasi, atau sebagai input untuk tag Google Tag Manager.
Untuk mengirim nilai ke dataLayer
, ikuti pola ini:
- Dapatkan singleton
DataLayer
:DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
- Kirim peristiwa menggunakan
DataLayer.push()
:// Put the image_name into the data layer for future use. TagManager.getInstance(this).getDataLayer().push(IMAGE_NAME_KEY, imageName);
Untuk mendapatkan nilai dari dataLayer
, gunakan
DataLayer.get(key)
.
Mendorong Peristiwa ke dataLayer
Mengirim peristiwa ke dataLayer
memungkinkan Anda memisahkan kode aplikasi dari tag yang mungkin ingin diaktifkan sebagai respons terhadap peristiwa tersebut.
Misalnya, daripada melakukan hard-coding terhadap panggilan pelacakan tampilan layar Google Analytics ke aplikasi, Anda dapat mengirim peristiwa layar ke dataLayer
dan menentukan tag pelacakan melalui antarmuka web Google Tag Manager. Dengan demikian, Anda memiliki fleksibilitas untuk mengubah tag tersebut, atau menambahkan tag lain yang merespons peristiwa layar, tanpa memperbarui kode aplikasi.
Untuk mengirim peristiwa ke dataLayer
, ikuti pola ini:
- Dapatkan singleton
DataLayer
:DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
- Kirim peristiwa menggunakan
DataLayer.pushEvent()
:dataLayer.pushEvent("openScreen", DataLayer.mapOf("screenName", screenName));
DataLayer.mapOf()
adalah metode utilitas yang dapat Anda gunakan untuk membuat peta key-value pair dengan mudah yang akan memperbaruidataLayer
pada saat peristiwa yang sama dikirim.
6. Pratinjau, Proses Debug, dan Publikasi
Sebelum memublikasikan versi penampung, Anda dapat melihat pratinjaunya untuk memastikan penampung tersebut berfungsi sebagaimana mestinya. Google Tag Manager memungkinkan Anda melihat pratinjau versi penampung dengan membuat link dan kode QR di antarmuka web dan menggunakannya untuk membuka aplikasi Anda. Anda juga dapat mengaktifkan mode logging panjang untuk men-debug perilaku yang tidak terduga.
Menampilkan pratinjau
Untuk melihat pratinjau versi penampung, ikuti langkah-langkah berikut:
- Menambahkan
Activity
pratinjau ini ke fileAndroidManifest
Anda:<!-- Add preview activity. --> <activity android:name="com.google.android.gms.tagmanager.PreviewActivity" android:label="@string/app_name" android:noHistory="true"> <!-- optional, removes the previewActivity from the activity stack. --> <intent-filter> <data android:scheme="tagmanager.c.com.google.android.tagmanager.examples.cuteanimals" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE"/> </intent-filter> </activity>
Pastikan untuk mengubah baris ini agar menyertakan nama paket aplikasi Anda:
<data android:scheme="tagmanager.c.com.google.android.tagmanager.examples.cuteanimals" />
- Membuat link pratinjau di antarmuka web Google Tag Manager
- Login ke Google Tag Manager
- Pilih penampung Versi yang akan dipratinjau
- Klik tombol Pratinjau
- Masukkan nama paket aplikasi Anda, lalu klik Buat link memulai pratinjau
- Gunakan link atau Kode QR yang dibuat untuk meluncurkan aplikasi Anda
- Anda dapat keluar dari mode pratinjau dengan mengikuti link yang dibuat oleh opsi Buat link akhiri pratinjau di antarmuka web.
Proses debug
Jika Anda perlu memecahkan masalah penerapan penampung, aktifkan logging panjang dengan memanggil
TagManager.setVerboseLoggingEnabled(true)
:
// Modify the log level of the logger to print out not only // warning and error messages, but also verbose, debug, info messages. tagManager.setVerboseLoggingEnabled(true);
Memublikasikan
Setelah melihat pratinjau penampung dan memastikan penampung tersebut berfungsi sebagaimana mestinya, Anda dapat memublikasikan penampung. Nilai, tag, dan peristiwa konfigurasi penampung Anda akan aktif untuk pengguna saat penampung dimuat ulang lagi. Pelajari lebih lanjut cara memuat ulang penampung.
Konfigurasi Lanjutan
Bagian berikut menjelaskan opsi konfigurasi lanjutan yang ingin Anda gunakan untuk menyesuaikan penerapan Google Tag Manager lebih lanjut.
Memuat Ulang Container
Secara default, penampung Anda memenuhi syarat untuk diperbarui setiap 12 jam. Untuk memuat ulang penampung secara manual, gunakan
ContainerHolder.refresh()
:
ContainerHolderSingleton.getContainerHolder().refresh();
Ini adalah panggilan asinkron yang tidak akan segera ditampilkan. Untuk mengurangi traffic jaringan, refresh()
hanya dapat dipanggil sekali setiap 15 menit. Jika tidak, panggilan tidak akan beroperasi.