Pertanyaan Pengelola Tag: Cara memuat penampung bawaan biner?


Saya mencoba menyiapkan Google Pengelola Tag sesuai dengan Mulai panduan.

Saat menambahkan a kontainer default, dokumen membuatnya jelas bahwa menggunakan biner file kontainer default (sebagai lawan JSON) direkomendasikan.

Meskipun menggunakan file biner dianjurkan, jika wadah Anda tidak   tidak mengandung aturan atau tag, Anda dapat memilih untuk menggunakan file JSON sederhana   sebagai gantinya.

Saya telah mengunduh dan menambahkan wadah default biner di bawah res/raw. Tetapi memulai Pengelola Tag dengan loadContainerPreferNonDefault() tampaknya gagal.

PendingResult<ContainerHolder> pending =
    tagManager.loadContainerPreferNonDefault(CONTAINER_ID,
    R.raw.gtm_default_container);

Saya mendapatkan kesalahan ini dalam log:

 W/GoogleTagManager﹕ Failed to extract the container from the resource file. 
 Resource is a UTF-8 encoded string but doesn't contain a JSON container

Javadocs TagManager (contoh di bagian paling atas) petunjuk bahwa Anda dapat mengirimkan parameter boolean untuk menunjukkan apakah sumber daya adalah JSON atau biner:

PendingResult pending = tagManager.loadContainerPreferNonDefault(
         myContainerId,    // container ID of the form "GTM-XXXX"
         R.raw.GTM-XXXX,   // the resource ID of the default container
         true);            // the default container is in JSON format (as opposed to binary)

Masalahnya, tidak ada parameter seperti itu di loadContainerPreferNonDefault()! Anda dapat secara opsional lulus Handler tetapi tidak ada boolean. Dumbfoundingly, javadoc TagManager konflik itu sendiri di sini.

Jadi, apakah mungkin untuk melakukan apa yang disarankan oleh panduan Getting Started, dan gunakan a biner kontainer default?

Menggunakan 'com.google.android.gms:play-services-analytics:7.0.0'


11
2018-03-30 13:39


asal


Jawaban:


Maaf untuk jawaban terlambat. Memiliki beberapa perjuangan dengan Pengelola Tag dan berhasil memecahkan masalah saya. Semoga ini membantu:

Ya, adalah mungkin untuk menggunakan kontainer default biner. Dokumentasi bertentangan dengan versi Pengelola Tag sebelumnya. Saya percaya itu bertentangan dengan v3. (Versi saat ini sebagai penulisan jawaban ini adalah v4).

Untuk memuat wadah biner Anda perlu menggunakan metode yang berbeda.

Anda perlu menggunakan TagManager.loadContainerDefaultOnly() metode ini dimaksudkan khusus untuk tujuan pengujian sehingga Anda dapat menguji apakah suatu wadah mengirimkan klik bahkan tanpa penampung yang dipublikasikan.

Di samping itu TagManager.loadContainerPreferNonDefault() akan memuat wadah biner dan kemudian memeriksa jaringan untuk versi yang saat ini dipublikasikan. Jika ia menemukan versi yang diterbitkan, ia akan menggunakan versi itu tidak peduli apa pun biner yang Anda miliki. Contoh:

Anda menambahkan versi biner kontainer15. Namun Anda memiliki versi14 yang diterbitkan. Metode ini akan default ke 14, karena versi itu diterbitkan.

Jika Anda ingin menguji versi 15 yang harus Anda gunakan TagManager.loadContainerDefaultOnly().


3
2018-04-18 14:48