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 |
getDataLayer(),
|
statyczny TagManager |
getInstance(kontekst kontekst)
|
Rejestrator |
getLogger(),
|
TagManager.RefreshMode | |
Kontener | |
void |
setLogger(rejestrator logger)
|
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 static TagManager getInstance (Kontekst Kontekst)
Pobierz pojedynczą instancję klasy TagManager
i w razie potrzeby ją utwórz.
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.