Visão geral
Uma classe que é a implementação para dispositivos móveis 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 ID de contêiner. Esse ID de contêiner é o usado nesta API.
A classe TAGContainer fornece métodos para recuperar valores de macro de acordo com o nome da macro. As rotinas booleanForKey: (TAGContainer), doubleForKey: (TAGContainer), int64ForKey: (TAGContainer), stringForKey: (TAGContainer) retornam o valor atual do nome da macro de coleta de valores, dependendo das regras associadas a essa macro no contêiner.
Por exemplo, se o contêiner tiver uma macro de coleta de valores com a chave "speed" cujo valor seja 32 e a regra de ativação seja "en"; e outra macro de coleta de valores com a chave "speed" cujo valor seja 45 e a regra de ativação seja Idioma não seja "en", fazendo a seguinte chamada:
[container longForKey:@"speed"]
retornará 32 se o idioma atual do dispositivo for inglês; caso contrário, retornará 45.
A camada de dados é um mapa com informações genéricas sobre o aplicativo. A classe TAGDataLayer fornece 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 correspondam 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 "Fazer 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 aplicativo para dispositivos móveis atualizar o contêiner pela rede (atualmente a cada 12 horas), ele receberá essa nova versão. Quando você chama uma das rotinas get..., o valor é calculado usando as regras mais recentes.
O contêiner salvo é salvo localmente. Quando você chama openContainerById:callback: (TAGManager), primeiro ele carrega o contêiner padrão e, em seguida, carrega de forma assíncrona qualquer contêiner salvo. Se nada for encontrado ou se tiver mais de 12 horas, ele tentará recuperar uma versão mais recente da rede. Você pode encontrar o status dessas cargas assíncronas transmitindo um TAGContainerCallback para openContainerById:callback: (TAGManager).
Em alguns casos, convém fazer o bloqueio 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 callbacks em openContainerById:callback: (TAGManager) ou TAGContainerOpener.
Quando você terminar de usar um contêiner, chame close (TAGContainer).
Funções membro públicas | |
| (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. | |
| (nulo) | - dispatch |
| Envia qualquer tráfego de rede pendente gerado por tags (pixels arbitrários, beacons de análise etc.). | |
| (nulo) | - dispatchWithCompletionHandler: |
| Envia o próximo tráfego de rede pendente na fila, chamando completeHandler quando a solicitação foi enviada (retornando kTAGDispatchGood) ou quando um erro ocorre (retornando kTAGDispatchError). | |
Funções membro públicas estáticas | |
| (TAGManager *) | + instância |
| Recebe a instância singleton da classe TAGManager, criando-a, se necessário. | |
Propriedades | |
| id< TAGLogger > | logger (em inglês) |
| O registrador a ser usado para o SDK do Gerenciador de tags do Google. | |
| TAGRefreshMode | refreshMode |
| O modo de atualização usado para o SDK do Gerenciador de tags do Google. | |
| TAGDataLayer * | dataLayer |
| Chame o método push: (TAGDataLayer) para enviar eventos e outros dados. | |
| NSTimeInterval | dispatchInterval |
| 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 acontece de forma assíncrona. Portanto, ele pode ser atualizado antes ou depois do retorno ou talvez nunca seja atualizado se, por exemplo, não houver conexão de rede durante o ciclo de vida do contêiner.
O callback será chamado à medida que várias coisas acontecerem 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 a versão salva 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:
-
containerId O ID do contêiner a ser aberto. callback Um objeto cujos vários métodos serão chamados durante o processo de carregamento. Os métodos podem ser chamados em linhas de execução diferentes. 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=
onde <app_name> é o nome do aplicativo.
- Parâmetros:
-
url O URL de visualização.
- Retorna:
- SIM, se o URL for um URL de visualização do tagmanager válido.
| + (TAGManager *) instância |
Recebe a instância singleton da classe TAGManager, criando-a, se necessário.
- Retorna:
- A instância singleton do TAGManager.
| - (nulo) enviar |
Envia qualquer tráfego de rede pendente gerado por tags (pixels arbitrários, beacons de análise etc.).
| – (void) dispatchWithCompletionHandler: | (TAGDispatchResult) | completionHandler |
Envia o próximo tráfego de rede pendente na fila, chamando completeHandler quando a solicitação foi enviada (retornando kTAGDispatchGood) ou quando um erro ocorre (retornando kTAGDispatchError).
Se não houver conexão de rede ou não houver dados para enviar, kTAGDispatchNoData é retornado.
Chamar esse método com um completeHandler nulo é 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
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 informativas/de depuração/detalhadas. É possível usar seu próprio registrador personalizado configurando essa propriedade.
- (TAGRefreshMode) refreshMode [read, write, assign] |
O modo de atualização usado para o SDK do Gerenciador de tags do Google.
Definir 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.