Omówienie
Klasa, która jest implementacją Menedżera tagów Google na urządzenia mobilne.
Przykładowe zastosowanie:
TAGContainer *container =
[[TAGManager instance] openContainerById:myContainerId];
NSString *value = [container stringForKey:@"myKey"];TAGDataLayer *dataLayer = [[TAGManager instance] dataLayer]; [dataLayer push:@{@"event": @"openScreen", @"screenName": @"Main Page"}];
Kontener to zbiór makr, reguł i tagów. Jest on tworzony w aplikacji Menedżera tagów Google (http://www.google.com/tagmanager) i do niego przypisywany jest identyfikator kontenera. Ten identyfikator kontenera jest używany w tym interfejsie API.
Klasa TAGContainer udostępnia metody pobierania wartości makr według nazwy makra. Procedury booleanForKey: (TAGContainer), doubleForKey: (TAGContainer), int64ForKey: (TAGContainer), stringForKey: (TAGContainer) zwracają bieżącą wartość nazwy makra zbierania wartości w zależności od reguł powiązanych z tym makrem w kontenerze.
Na przykład: jeśli Twój kontener zawiera makro zbierania wartości z kluczem „szybkość”, ma wartość 32, a regułą włączania jest język „en”. i kolejne makro do zbierania wartości z kluczem „szybkość”. ma wartość 45, a regułą włączania jest „Język” inny niż „en”, a następnie wywołuje to wywołanie:
[container longForKey:@"speed"]
zwróci wartość 32, jeśli obecny język urządzenia to angielski, lub 45 (inaczej).
Warstwa danych to mapa z ogólnymi informacjami o aplikacji. Klasa TAGDataLayer 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.
Z aplikacją jest dołączana początkowa wersja kontenera. Należy go umieścić jako zasób w pakiecie o nazwie containerId, gdzie containerId to ten sam identyfikator kontenera, którego będziesz używać w tym interfejsie API. Gdy wywołasz metodę openContainerById:callback: (TAGManager), kontener zostanie zwrócony z tymi pakietami reguł, tagów i makr. Utworzysz kontener w interfejsie i klikniesz przycisk Pobierz, aby go pobrać.
Możesz zmodyfikować kontener w interfejsie użytkownika i opublikować nową wersję. W takim przypadku, gdy następnym razem aplikacja mobilna odświeży kontener z sieci (obecnie co 12 godzin), pobierze nową wersję. Gdy wywołujesz jedną z procedur get..., wartość zostanie obliczona przy użyciu najnowszych reguł.
Pobrany kontener zostanie zapisany lokalnie. Gdy wywołasz metodę openContainerById:callback: (TAGManager), wczyta się najpierw kontener domyślny, a potem asynchronicznie dowolny zapisany kontener. Jeśli nie zostanie znaleziony lub jest starszy niż 12 godzin, spróbuje pobrać z sieci nowszą wersję. Stan tych wczytań asynchronicznych możesz sprawdzić, przekazując parametr TAGContainerCallback do parametru openContainerById:callback: (Menedżer tagów).
Czasem możesz chcieć blokować reklamy do czasu, aż będzie dostępny kontener inny niż domyślny lub świeży kontener, który został udostępniony. Aby to zrobić, użyj wywołań zwrotnych w elemencie openContainerById:callback: (Menedżer tagów) lub użyj funkcji TAGContainerOpener.
Gdy skończysz pracę z kontenerem, wywołaj close (TAGContainer).
Publiczne funkcje członków | |
| (TAGContainer *) | – openContainerById:callback: |
| Zwraca kontener. | |
| (TAGContainer *) | – getContainerById: |
Zwraca kontener powiązany z funkcją containerId. zwraca wartość nil, jeśli kontener nie jest jeszcze otwarty. | |
| (wartość logiczna) | – previewWithUrl: |
| Wyświetla podgląd aplikacji z wejściowym adresem URL. | |
| (Nieważna) | – dispatch |
| Wysyła cały oczekujący ruch w sieci wygenerowany przez tagi (dowolne piksele, obrazy typu analytics beacon itp.). | |
| (Nieważna) | – dispatchWithCompletionHandler: |
| Wysyła następny oczekujący ruch sieciowy w kolejce, wywołując completeHandler, gdy żądanie zostało wysłane (zwraca kTAGDispatchGood) lub wystąpił błąd (zwraca kTAGDispatchError). | |
Statyczne funkcje publiczne | |
| (TAGManager *) | + instance |
| Pobiera pojedynczą instancję klasy TAGManager i w razie potrzeby ją tworzy. | |
Właściwości | |
| id< TAGLogger > | rejestrator |
| Rejestrator, który ma być używany z pakietem SDK Menedżera tagów Google. | |
| TAGRefreshMode | refreshMode |
| Tryb odświeżania używany w pakiecie SDK Menedżera tagów Google. | |
| TAGDataLayer * | dataLayer |
| Wywołaj metodę push: (TAGDataLayer), aby przekazywać zdarzenia i inne dane. | |
| NSTimeInterval | dispatchInterval |
| Jeśli ta wartość jest dodatnia, informacje o śledzeniu będą automatycznie wysyłane co sekundę w przypadku dispatchInterval. | |
Dokumentacja funkcji członków
| – (TAGContainer *) openContainerById: | (NSString *) | containerId | |
| wywołanie zwrotne: | (id< TAGContainerCallback >) | oddzwanianie | |
Zwraca kontener.
Zwykle zwracany kontener jest pusty, ale wczytywanie odbywa się asynchronicznie, więc zwrócony kontener może zostać odświeżony przed jego zwróceniem lub po jego zwróceniu albo może nigdy nie zostać odświeżony, jeśli np. nie ma połączenia sieciowego.
Wywołanie zwrotne będzie wywoływane w różnych sytuacjach dotyczących kontenera. Co najmniej openContainerById:callback: spróbuje wczytać zapisaną wersję kontenera. Jeśli nie ma zapisanej wersji lub zapisana wersja jest nieaktualna, zostanie podjęta próba załadowania z sieci.
Jeśli funkcja openContainerById:callback: zostanie wywołana po raz drugi dla danego containerId, zostanie zwrócona nil, chyba że poprzedni otwarty kontener został już zamknięty.
- Parametry:
-
containerId Identyfikator kontenera do otworzenia. wywołanie zwrotne Obiekt, którego różne metody będą wywoływane podczas procesu wczytywania. Pamiętaj, że metody mogą być wywoływane z różnych wątków. Poza tym mogą być wywoływane przed zwrotem openContainerById:callback:.
- Zwroty:
- Otwarty kontener.
| – (TAGContainer *) getContainerById: | (NSString *) | containerId |
Zwraca kontener powiązany z funkcją containerId. zwraca wartość nil, jeśli kontener nie jest jeszcze otwarty.
| - (BOOL) previewWithUrl: | (NSURL *) | url |
Wyświetla podgląd aplikacji z wejściowym adresem URL.
Prawidłowy adres URL musi zaczynać się od:
tagmanager.c.<app_name>://preview/p?id=
gdzie <app_name> to nazwa aplikacji.
- Parametry:
-
URL Adres URL podglądu.
- Zwroty:
- TAK, jeśli URL jest prawidłowym adresem URL podglądu tagmanager.
| + (TAGManager *) instance |
Pobiera pojedynczą instancję klasy TAGManager i w razie potrzeby ją tworzy.
- Zwroty:
- Pojedyncze wystąpienie elementu TAGManager.
| – (void) dispatch |
Wysyła cały oczekujący ruch w sieci wygenerowany przez tagi (dowolne piksele, obrazy typu analytics beacon itp.).
| - (void) dispatchWithCompletionHandler: | (TAGDispatchResult) | completionHandler |
Wysyła następny oczekujący ruch sieciowy w kolejce, wywołując completeHandler po wysłaniu żądania (zwracanie kTAGDispatchGood) lub po wystąpieniu błędu (zwrócenie kTAGDispatchError).
Jeśli nie ma połączenia sieciowego lub nie ma danych do wysłania, zwracana jest funkcja kTAGDispatchNoData.
Wywołanie tej metody z nil completeHandler działa tak samo jak wywołanie metody dispatch.
Tej metody można używać do pobierania danych w tle na urządzeniach z iOS w wersji 7.0 lub nowszej.
Warto zadzwonić pod ten adres przy zamykaniu zgłoszenia, by rozpocząć przesyłanie nieprzesłanych informacji o śledzeniu.
Dokumentacja usługi
Rejestrator, który ma być używany z pakietem SDK Menedżera tagów Google.
Domyślnie Menedżer tagów Google rejestruje komunikaty o błędach i ostrzeżeniach oraz ignoruje komunikaty informacyjne, debugujące i wyczerpujące. Możesz ustawić tę właściwość, by korzystać z własnego niestandardowego dziennika.
– (TAGRefreshMode) refreshMode [read, write, assign] |
Tryb odświeżania używany w pakiecie SDK Menedżera tagów Google.
Ustawienie wartości kTAGRefreshModeDefaultContainer umożliwia metodzie odświeżania używanie do celów programistycznych tylko kontenera domyślnego. Wartość domyślna to kTAGRefreshModeStandard.
– (TAGDataLayer*) dataLayer [read, assign] |
Wywołaj metodę push: (TAGDataLayer), aby przekazywać zdarzenia i inne dane.
– (NSTimeInterval) dispatchInterval [read, write, assign] |
Jeśli ta wartość jest dodatnia, informacje o śledzeniu będą automatycznie wysyłane co sekundę w przypadku dispatchInterval.
W przeciwnym razie informacje o śledzeniu należy przesyłać ręcznie przez wywołanie dyspozytora.
Wartość domyślna to „120”, co oznacza, że informacje o śledzeniu będą wysyłane automatycznie co 120 sekund.