Giriş
Google Etiket Yöneticisi, geliştiricilerin mobil uygulamalarında yapılandırma değerlerini değiştirebilmesini sağlar uygulama ikili programlarını yeniden oluşturup yeniden göndermek zorunda kalmadan Google Etiket Yöneticisi arayüzünü kullanarak uygulama pazarlarına taşıyabilir.
Bu, uygulamanızda ihtiyaç duyabileceğiniz yapılandırma değerlerini veya işaretleri yönetmek için yararlıdır gelecekte değişebilir. Örneğin:
- Çeşitli kullanıcı arayüzü ayarları ve görüntüleme dizeleri
- Uygulamanızda yayınlanan reklamların boyutları, konumları veya türleri
- Çeşitli oyun ayarları
Yapılandırma değerleri, çalışma zamanında kurallar kullanılarak da değerlendirilebilir. Böylece, şu gibi yapılandırmalar:
- Reklam banner'ının boyutunu belirlemek için ekran boyutunu kullanma
- Kullanıcı arayüzü öğelerini yapılandırmak için dil ve konum kullanma
Google Tag Manager, izleme etiketlerinin ve piksellerinin izin verir. Geliştiriciler önemli etkinlikleri bir veri katmanına aktarabilir ve daha sonra hangi izleme etiketlerinin veya piksellerinin tetiklenmesi gerekir.
Başlamadan Önce
Bu başlangıç kılavuzuna başlamadan önce aşağıdaki adımları uygulayın:
- Android SDK'sını yükleyin
- Google Play Hizmetleri SDK'sını indirin
- Bir Google Etiket Yöneticisi hesabı oluşturun
- Google Etiket Yöneticisi kapsayıcısı yapılandırma
Bu adımları tamamladıktan sonra kılavuzun geri kalanında Google Etiket Yöneticisi'ni yapılandırıp kullanın.
Başlarken
Bu Başlangıç Kılavuzu'nu uyguladıktan sonra şunları nasıl yapacağınızı öğreneceksiniz:
- Projenize Google Etiket Yöneticisi'ni ekleme
- Uygulamanızda Etiket Yöneticisi'ni ilk kullanıma hazırlama
- Bir Etiket Yöneticisi kapsayıcısından yapılandırma değerleri alma
- Değerleri ve etkinlikleri
dataLayer
- Kapsayıcınızı önizleme, hata ayıklama ve yayınlama
Bu kılavuzda Cute Animals
kod snippet'leri kullanılmaktadır
örnek uygulama,
Google Play Hizmetleri SDK'sı.
Bu projenin tam kaynağı şurada bulunabilir: <android-sdk-directory>/extras/google/google_play_services/tagmanager/cuteanimals
.
1. Projenize Google Etiket Yöneticisi'ni ekleme
Projenize Google Etiket Yöneticisi'ni eklemek için:
- Google Play Hizmetleri SDK'sını kurun.
- dışında bir IDE kullanıyorsanız
Android Studio kullanıyorsanız aşağıdaki izinleri
AndroidManifest.xml
dosyası:<!-- For TagManager SDK --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- hizmetini etkinleştirmek için
Google Analytics alıcısını çağırmak için
InstallReferrerReceiver
kampanya verilerini ayarlamak için aşağıdakini kampanyaAndroidManifest.xml
dosyası:<!-- 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. Projenize Varsayılan Kapsayıcı Dosyası Ekleme
Google Etiket Yöneticisi, uygulamanız ilk kez çalıştırıldığında varsayılan bir kapsayıcı kullanır. Varsayılan uygulama; ağ.
Varsayılan container ikili programını indirip uygulamanıza eklemek için:
- Google Etiket Yöneticisi web arayüzünde oturum açın.
- İndirmek istediğiniz kapsayıcının Sürümünü seçin.
- Container ikili programını almak için İndir düğmesini tıklayın.
- İndirilen container ikili programını, ham kaynak olarak projenize ekleyin.
- Şuradaki
raw
alt klasörü:<project-root>/res/
mevcut değil, oluşturun. - Gerekirse kapsayıcı ikili program dosyasını yeniden adlandırın. Yalnızca küçük harf, rakam ve alt çizgi içerebilir.
- Kapsayıcı ikili dosyası dosyasını klasöre kopyalayın
<project-root>/res/raw
- Şuradaki
İkili programın kullanılması önerilse de, kapsayıcınız kural veya etiket içermiyorsa bunun yerine basit bir JSON dosyası kullanmayı seçebilirsiniz.
3. Google Etiket Yöneticisi başlatılıyor
Uygulamanızda Google Etiket Yöneticisi'ni ilk kullanıma hazırlamak için:
TagManager
single'ını alın:TagManager tagManager = TagManager.getInstance(this);
- Bir container yükleme isteğinde bulunmak için
TagManager
singleton'ını kullanarak Varsayılan kapsayıcınızın yanı sıra Google Etiket Yöneticisi kapsayıcı kimliği dosyası olarak kaydedebilirsiniz. Kapsayıcı kimliği büyük harfli olmalı ve Google etiketindeki kapsayıcı kimliğiyle tam olarak eşleşmelidir. Yönetici web arayüzü.loadContainerPreferNonDefault()
numaralı telefona yapılan çağrı engelleyici değil vePendingResult
:PendingResult<ContainerHolder> pending = tagManager.loadContainerPreferNonDefault(CONTAINER_ID, R.raw.defaultcontainer_binary);
- kullanın
ResultCallback
değerini döndürmek içinContainerHolder
Yükleme tamamlandıktan veya zaman aşımına uğradıktan sonra:// 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);
ContainerHolder Singleton oluşturma
Her çalıştırması için yalnızca bir
ContainerHolder
örneği sağlamalısınız. bir uygulamadır. Bu nedenle yukarıdaki örnekte birContainerHolderSingleton
yardımcı program sınıfı kullanılmaktadır.ContainerHolder
örneğine erişimi yönetin. İşte buContainerHolderSingleton
sınıfı şuna benziyor: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. Kapsayıcıdan Yapılandırma Değerlerini Alma
Kapsayıcı yüklendikten sonra
Container.get<type>()
yöntem. Yapılandırma değerleri,
Google Etiket Yöneticisi'nin değer koleksiyonu değişkenleri. Örneğin,
bir kullanıcı arayüzü öğesi için kullanmaya karar verdiğimiz en son rengi alır ve bunu,
bir tam sayı:
/** * Returns an integer representing a color. */ private int getColor(String key) { return colorFromColorName(containerHolder.getContainer().getString(key)); }
Bu kod, kapsayıcıdan renk adını almak için iki şey yapar:
ContainerHolder
içindenContainer
öğesini şunu kullanarak alır:ContainerHolder.getContainer()
.- Renk değerini şunu kullanarak alır:
Container.getString(key)
, burada: Google Etiket Yöneticisi web arayüzünde anahtarı ve değeri tanımladı.
5. Etkinlikleri ve Değerleri dataLayer'a Aktarma
Google Etiket Yöneticisi, bilgileri aktarabileceğiniz bir dataLayer
de sağlar.
uygulamanızın diğer bölümlerinde okunabilen veya etiketleri tetiklemek için kullanılabilecek uygulamanız hakkında
Google Etiket Yöneticisi web arayüzünde yapılandırmanız gerekir.
Değerleri dataLayer'a Aktarma
dataLayer
, kullanabileceğiniz bir kalıcılık katmanı sağlar
uygulamanızın diğer bölümlerinde kullanmak isteyebileceğiniz anahtar/değer çiftlerini depolamak için veya
giriş olarak kullanabilirsiniz.
dataLayer
öğesine bir değer aktarmak için şu kalıbı izleyin:
- edinin
DataLayer
single'ı:DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
- Etkinliği kullanarak aktarın
DataLayer.push()
:// Put the image_name into the data layer for future use. TagManager.getInstance(this).getDataLayer().push(IMAGE_NAME_KEY, imageName);
dataLayer
içinden bir değer almak için
DataLayer.get(key)
.
dataLayer'a Etkinlik Aktarma
Etkinlikleri dataLayer
hedefine aktarmak, uygulama kodunuzu
etiketleyebilirsiniz.
Örneğin, Google Analytics ekran görüntülemelerini izlemeyle ilgili aramaları uygulamanıza sabit bir şekilde kodlamak yerine,
Ekran etkinliklerini dataLayer
alanına aktarabilir ve izleme etiketlerinizi
Google Etiket Yöneticisi web arayüzü. Bu, size söz konusu etiketi değiştirme veya yeni
uygulama kodunuzu güncellemeden ekran etkinliklerine yanıt veren ek etiketler.
dataLayer
öğesine bir etkinlik aktarmak için şu kalıbı uygulayın:
- edinin
DataLayer
single'ı:DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
- Etkinliği kullanarak aktarın
DataLayer.pushEvent()
:dataLayer.pushEvent("openScreen", DataLayer.mapOf("screenName", screenName));
DataLayer.mapOf()
, projenizin haritasını kolayca oluşturmak için kullanabileceğiniz bir yardımcı yöntemdir anahtar/değer çiftleri kullanılır.dataLayer
6. Önizleme, Hata Ayıklama ve Yayınlama
Kapsayıcınızın bir sürümünü yayınlamadan önce, çalıştığından emin olmak için onu önizleyebilirsiniz. bu şekilde devam eder. Google Etiket Yöneticisi, kapsayıcınızın sürümlerini önizlemenize olanak tanır. Web arayüzünde bağlantılar ve QR kodları oluşturup bunları kullanarak uygulamanızı açın. Ayrıca, beklenmedik davranışlarda hata ayıklamak için ayrıntılı bir günlük kaydı modunu da etkinleştirebilirsiniz.
Önizleniyor
Kapsayıcınızın bir sürümünü önizlemek için aşağıdaki adımları uygulayın:
- Bu önizleme
Activity
,AndroidManifest
dosyanıza ekleniyor:<!-- 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>
Bu satırı, uygulamanızın paket adını içerecek şekilde değiştirdiğinizden emin olun:
<data android:scheme="tagmanager.c.com.google.android.tagmanager.examples.cuteanimals" />
- Google Etiket Yöneticisi web arayüzünde önizleme bağlantısı oluşturma
- Google Etiket Yöneticisi'nde oturum açın.
- Önizlemek için kapsayıcı Sürüm'ünü seçin
- Önizleme düğmesini tıklayın
- Uygulamanızın paket adını girin ve Önizlemeyi başlat bağlantısı oluştur'u tıklayın
- Uygulamanızı başlatmak için oluşturulan bağlantıyı veya QR kodunu kullanın
- Önizlemeyi sonlandırma bağlantısı oluştur ile oluşturulan bir bağlantıyı izleyerek önizleme modundan çıkabilirsiniz. seçeneğidir.
Hata ayıklama
Container uygulamanızla ilgili sorunları gidermeniz gerekirse
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);
Yayıncılık
Kapsayıcınızı önizledikten ve istenen şekilde çalıştığını doğruladıktan sonra, kapsayıcınızı yayınlayın. Sizin kapsayıcı yapılandırma değerleri, etiketler ve etkinlikler, yenilenmesi gerekiyor. Kapsayıcıları yenileme hakkında daha fazla bilgi edinin.
Gelişmiş Yapılandırma
Aşağıdaki bölümlerde, ayarlarınızı daha da özelleştirmek için kullanmak istediğiniz gelişmiş yapılandırma seçenekleri Google Etiket Yöneticisi'nin uygulanması.
Kapsayıcıyı Yenileme
Varsayılan olarak, kapsayıcınız 12 saatte bir yenilenmeye uygun hale gelir. Manuel olarak yenilemek için
kapsayıcı için kullanın
ContainerHolder.refresh()
:
ContainerHolderSingleton.getContainerHolder().refresh();
Bu, hemen döndürülmeyen eşzamansız bir çağrıdır. refresh()
, ağ trafiğini azaltmak için
15 dakikada bir çağrılır, aksi takdirde işlemsiz olur.