Referência da classe TAGManager


Informações gerais

Uma classe que é a implementação móvel do Gerenciador de tags do Google (GTM).

Exemplo de uso:

      TAGContainer *container =
          [[TAGManager instance] openContainerById:myContainerId];
      NSString *value = [container stringForKey:@"myKey"];
      TAGDataLayer *dataLayer =
          [[TAGManager instance] dataLayer];
      [dataLayer push:@{@"event": @"openScreen",
                        @"screenName": @"Main Page"}];

Um contêiner é um conjunto de macros, regras e tags. Ele é criado no aplicativo do GTM (http://www.google.com/tagmanager) e recebe um código de contêiner. Esse ID de contêiner é o usado nessa API.

A classe TAGContainer fornece métodos para recuperar valores de macro de acordo com o nome dela. As rotinas booleanForKey: (TAGContainer), doubleForKey: (TAGContainer), int64ForKey: (TAGContainer), stringForKey: (TAGContainer) retornam o valor atual do nome da macro de coleção de valores, dependendo das regras associadas a ela no contêiner.

Por exemplo, se o contêiner tiver uma macro de coleta de valores com a chave "speed", com valor 32, e a regra de ativação for Idioma "en", e outra macro de coleta de valores com a chave "speed", cujo valor é 45, e a regra de ativação não for "pt-BR", e a regra de ativação não for "en", faça esta chamada:

     [container longForKey:@"speed"]
 

retornará 32 se o idioma atual do dispositivo for o inglês ou 45 se não for.

A camada de dados é um mapa que contém informações genéricas sobre o aplicativo. A classe TAGDataLayer oferece métodos para enviar e recuperar dados da camada de dados. Enviar uma chave event para a camada de dados fará com que as tags que correspondem a esse evento sejam disparadas.

Uma versão inicial do contêiner é fornecida com o aplicativo. Ele precisa ser colocado como um recurso no pacote com o nome containerId, em que containerId é o mesmo ID do contêiner que você vai usar nessa API. Quando você chama openContainerById:callback: (TAGManager), o contêiner é retornado com essas regras/tags/macros agrupadas. Você criará o contêiner na interface e usará o botão "Download" para fazer o download dele.

É possível modificar o contêiner na interface e publicar uma nova versão. Nesse caso, na próxima vez que o app para dispositivos móveis atualizar o contêiner da rede (atualmente a cada 12 horas), ele vai receber a nova versão. Quando você chama uma das rotinas get..., o valor é calculado usando as regras mais recentes.

O contêiner transferido por download é salvo localmente. Quando você chama openContainerById:callback: (TAGManager), ele primeiro carrega o contêiner padrão e, em seguida, carrega de forma assíncrona qualquer contêiner salvo. Se nenhuma for encontrada ou se ela tiver mais de 12 horas, ele tentará recuperar uma versão mais recente da rede. Você pode encontrar o status desses carregamentos assíncronos transmitindo um TAGContainerCallback para openContainerById:callback: (TAGManager).

Às vezes, pode ser necessário bloquear até que um contêiner não padrão esteja disponível ou até que um novo contêiner recente esteja disponível. Para isso, use os callbacks em openContainerById:callback: (TAGManager) ou use TAGContainerOpener.

Quando terminar de usar um contêiner, chame close (TAGContainer).

Funções membro público

(TAGContainer *)openContainerById:callback:
 Retorna um contêiner.
(TAGContainer *)getContainerById:
 Retorna o contêiner associado ao containerId especificado. Retorna nil se o contêiner ainda não estiver aberto.
(BOOL) previewWithUrl:
 Visualiza o app com o URL de entrada.
(void) - dispatch
 Envia qualquer tráfego de rede pendente gerado por tags (pixels arbitrários, beacons de análise etc.).
(void) - dispatchWithCompletionHandler:
 Envia o próximo tráfego de rede pendente na fila, chamando completionHandler quando a solicitação é enviada (retornando kTAGDispatchGood) ou quando há um erro (retornando kTAGDispatchError).

Funções membro públicas estáticas

(TAGManager *)+ instância
 Extrai a instância singleton da classe TAGManager, criando-a, se necessário.

Propriedades

id< TAGLogger >logger
 O logger a ser usado para o SDK do Gerenciador de tags do Google.
TAGRefreshModerefreshMode
 O modo de atualização usado para o SDK do Gerenciador de tags do Google.
TAGDataLayerdataLayer
 Chame o método push: (TAGDataLayer) para enviar eventos e outros dados.
NSTimeIntervaldispatchInterval
 Se esse valor for positivo, as informações de acompanhamento serão enviadas automaticamente a cada segundo de dispatchInterval.

Documentação da função membro

- (TAGContainer *) openContainerById: (NSString *) containerId
callback: (id< TAGContainerCallback >) callback

Retorna um contêiner.

Normalmente, o contêiner retornado fica vazio, mas o carregamento ocorre de forma assíncrona. Portanto, ele pode ser atualizado antes ou depois de ser retornado ou pode nunca ser atualizado se, por exemplo, não houver uma conexão de rede durante o ciclo de vida dele.

O callback será chamado conforme várias coisas acontecem no contêiner. No mínimo, openContainerById:callback: tentará carregar uma versão salva do contêiner. Se não houver uma versão salva ou se ela estiver desatualizada, será feita uma tentativa de carregamento pela rede.

Se openContainerById:callback: for chamado uma segunda vez para um determinado containerId, nil será retornado, a menos que o contêiner aberto anterior já tenha sido fechado.

Parâmetros:
containerIdO ID do contêiner a ser aberto.
callbackUm objeto cujos vários métodos serão chamados durante o processo de carregamento. Os métodos podem ser chamados a partir de diferentes linhas de execução. Além disso, eles podem ser chamados antes do retorno de openContainerById:callback:.
Retorna:
O contêiner aberto.
- (TAGContainer *) getContainerById: (NSString *) containerId

Retorna o contêiner associado ao containerId especificado. Retorna nil se o contêiner ainda não estiver aberto.

- (BOOL) previewWithUrl: (NSURL *) url

Visualiza o app com o URL de entrada.

O URL válido precisa começar com:

 tagmanager.c.<app_name>://preview/p?id=

em que <app_name> é o nome do aplicativo.

Parâmetros:
urlURL de visualização.
Retorna:
YES se o URL for um URL de visualização válido do tagmanager.

Extrai a instância singleton da classe TAGManager, criando-a, se necessário.

Retorna:
A instância singleton do TAGManager.
- (void) envio

Envia qualquer tráfego de rede pendente gerado por tags (pixels arbitrários, beacons de análise etc.).

- (void) dispatchWith completionHandler: (TAGDispatchResult) completionHandler

Envia o próximo tráfego de rede pendente na fila, chamando completionHandler quando a solicitação é enviada (retornando kTAGDispatchGood) ou quando há um erro (retornando kTAGDispatchError).

Se não houver conexão de rede ou não houver dados para enviar, kTAGDispatchNoData será retornado.

Chamar esse método com um completionHandler igual a zero é o mesmo que chamar o envio.

Esse método pode ser usado para busca de dados de segundo plano no iOS 7.0 ou mais recente.

Convém chamá-lo quando o aplicativo está saindo para iniciar o envio de informações de acompanhamento não enviadas.


Documentação da propriedade

- (id<TAGLogger>) logger [read, write, assign]

O logger a ser usado para o SDK do Gerenciador de tags do Google.

Por padrão, o Gerenciador de tags do Google registra mensagens de erro/aviso e ignora mensagens de informações/depuração/detalhamento. Para usar seu próprio registrador de registros personalizado, defina essa propriedade.

- (TAGRefreshMode) refreshMode [read, write, assign]

O modo de atualização usado para o SDK do Gerenciador de tags do Google.

A definição como kTAGRefreshModeDefaultContainer permite que o método de atualização use apenas o contêiner padrão para fins de desenvolvimento. O padrão é kTAGRefreshModeStandard.

- (TAGDataLayer*) dataLayer [read, assign]

Chame o método push: (TAGDataLayer) para enviar eventos e outros dados.

- (NSTimeInterval) dispatchInterval [read, write, assign]

Se esse valor for positivo, as informações de acompanhamento serão enviadas automaticamente a cada segundo de dispatchInterval.

Caso contrário, é necessário enviar as informações de acompanhamento manualmente chamando o envio.

Por padrão, ele é definido como "120", o que indica que as informações de acompanhamento serão enviadas automaticamente a cada 120 segundos.