Menedżer tagów

klasa publiczna TagManager

To jest implementacja Menedżera tagów Google na urządzeniach mobilnych. Przykładowe zastosowanie:

 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"));
Kontener to zbiór makr, tagów i reguł. Jest on tworzony w aplikacji GTM i ma przypisany identyfikator kontenera. Ten identyfikator kontenera jest używany w tym interfejsie API.

Klasa Container udostępnia metody pobierania wartości z poszczególnych kluczy. Procedury getBoolean(String), getDouble(String), getLong(String) i getString(String) zwracają bieżącą wartość klucza makra zbierania wartości w zależności od reguł powiązanych z kontenerem.

Jeśli np. kontener zawiera makro zbierania wartości z kluczem speed, którego wartość to 32, a reguła włączająca Language to „en”, oraz inne makro zbierania wartości z kluczem speed o wartości 45, a reguła włączania Language ma wartość inną niż „en”, wykonuje to wywołanie:

 container.getLong("speed")
zwróci 32, jeśli bieżący język urządzenia to angielski, albo 45 w innym języku.

Warstwa danych to mapa zawierająca ogólne informacje o aplikacji. Klasa DataLayer udostępnia metody przekazywania danych z warstwy danych i ich pobierania. Przekazywanie klucza event do warstwy danych spowoduje uruchomienie tagów pasujących do tego zdarzenia.

Początkowa wersja kontenera jest dołączana do aplikacji. Należy go umieścić jako zasób o nazwie tagmanager/containerId, gdzie containerId to ten sam identyfikator kontenera, którego będziesz używać w tym interfejsie API. Gdy wywołasz openContainer(String, Container.Callback), kontener zostanie zwrócony z tymi powiązanymi regułami/makrami. Utwórz kontener w interfejsie i użyjesz przycisku Pobierz, aby go pobrać.

Możesz zmodyfikować kontener w interfejsie użytkownika i opublikować nową wersję. W takim przypadku następnym razem, gdy aplikacja mobilna będzie odświeżać kontener z sieci (obecnie co 12 godzin), pobierze nową wersję. Gdy wywołasz jedną z procedur get..., wartość zostanie obliczona na podstawie najnowszych reguł.

Pobrany kontener jest zapisywany lokalnie. Wywołanie metody openContainer(String, Container.Callback) najpierw wczytuje domyślny kontener, a następnie – asynchronicznie – dowolny zapisany kontener. Jeśli nie zostanie znaleziony żaden problem lub plik jest starsza niż 12 godzin, zostanie podjęta próba pobrania z sieci nowszej wersji. Stan wczytywania asynchronicznych możesz sprawdzić, przekazując do instancji openContainer(String, Container.Callback) wartość Container.Callback.

Czasami możesz chcieć zablokować kontener, dopóki nie będzie dostępny kontener inny niż domyślny lub nowy, świeży kontener. ContainerOpener to klasa narzędzia, która może Ci w tym pomóc.

Po zakończeniu pracy z kontenerem wywołaj close().

Podsumowanie zagnieżdżonych zajęć

interfejs, TagManager.Logger Prosty interfejs do rejestrowania błędów, ostrzeżeń, informacji/debugowania/szczegółowych informacji. 
enum | typ wyliczeniowy TagManager.RefreshMode Tryb odświeżania kontenera. 

Podsumowanie metod publicznych

Kontener
getContainer(ciąg znaków containerId)
kontekst,
DataLayer
statyczny TagManager
getInstance(kontekst kontekst)
Rejestrator
TagManager.RefreshMode
Kontener
openContainer(ciąg znaków containerId, Container.Callback wywołanie zwrotne)
void
void

Metody publiczne

public Kontener getContainer (Ciąg containerId)

Zwraca otwarty kontener powiązany z: containerId. Zwraca wartość null, jeśli kontener nie jest jeszcze otwarty.

public Kontekst getContext ()

Zwraca zapisany kontekst powiązany z tym obiektem.

public DataLayer getDataLayer ()

Zwraca obiekt warstwy danych używany przez menedżera tagów.

public static TagManager getInstance (Kontekst Kontekst)

Pobierz pojedynczą instancję klasy TagManager i w razie potrzeby ją utwórz.

public Logger getLogger ()

Zwraca rejestrator używany przez Menedżera tagów.

public TagManager.RefreshMode getRefreshMode ()

Zwraca tryb odświeżania używany we wszystkich kontenerach.

public Kontener openContainer (Ciąg containerId, Container.Callback containerId)

Zwraca kontener. Wywołanie zwrotne będzie wywoływane w miarę realizacji różnych zdarzeń w kontenerze. Co najmniej openContainer spróbuje wczytać zapisaną wersję kontenera. Jeśli nie ma zapisanej wersji lub zapisana wersja jest nieaktualna, spróbuje wczytać się z sieci.

Zwykle zwrócony kontener jest pusty, ale wczytywanie odbywa się w oddzielnym wątku. Oznacza to, że zwrócony kontener może zostać odświeżony, zanim zostanie zwrócony, po zwróceniu lub nigdy nie może być odświeżany (jeśli na przykład w trakcie działania kontenera nie ma połączenia sieciowego).

Jeśli wywołasz funkcję openContainer ponownie dla danego elementu containerId, zostanie zgłoszony wyjątek.

Parametry
containerId identyfikator kontenera, który ma zostać otwarty;
wywołanie zwrotne obiekt, którego różne metody będą wywoływane w trakcie etapów procesu wczytywania. Pamiętaj, że metody mogą być wywoływane z różnych wątków. Dodatkowo można je wywołać przed zwróceniem funkcji openContainer.

public void setLogger (Rejestrator logger)

Zastępuje dotychczasowy rejestrator używany przez Menedżera tagów.

public void setRefreshMode (TagManager.RefreshMode tryb)

Ustawia tryb odświeżania używany we wszystkich kontenerach.