Essa é a implementação para dispositivos móveis do Gerenciador de tags do Google (GTM). Exemplo de uso:
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"));
A classe Container oferece métodos para recuperar valores com base em uma chave.
As rotinas getBoolean(String), getDouble(String),
getLong(String), getString(String) retornam o valor atual
para a chave de uma macro de coleta de valores,
dependendo das regras associadas ao contêiner.
Por exemplo, se o contêiner tem uma macro de coleta de valores com uma chave speed em que
o valor é 32 e a regra de ativação é Language é "en"; e outra coleta de valores
com uma chave speed cujo valor é 45, e a regra de ativação é
Language não é "en", fazendo a seguinte chamada:
container.getLong("speed")
A camada de dados é um mapa com informações genéricas sobre o aplicativo.
A classe DataLayer oferece métodos para enviar e extrair informações da camada de dados.
Enviar uma chave event para a camada de dados faz com que as tags correspondam a esse evento
disparar.
Uma versão inicial do contêiner é fornecida com o aplicativo. Deve ser
colocado como um recurso com o nome tagmanager/containerId em que containerId é o mesmo
ID do contêiner que será usado nesta API. Quando você chama openContainer(String, Container.Callback), o contêiner
será retornado com essas regras/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, da próxima vez o app para dispositivos móveis atualiza o contêiner pela rede (atualmente a cada 12 horas), ele receberá a nova versão. Quando você chamar uma das rotinas get..., o valor será calculado usando as regras mais recentes.
O contêiner salvo é salvo localmente. quando você chamar openContainer(String, Container.Callback), ele primeiro vai
carregar o contêiner padrão e, em seguida, carregar de forma assíncrona qualquer contêiner salvo. Se nenhum for
encontrado ou se ela tiver mais de 12 horas, tentará recuperar uma versão mais recente da rede.
Você pode encontrar o status dessas cargas assíncronas transmitindo um valor de
Container.Callback para openContainer(String, Container.Callback).
Às vezes, convém bloquear até que um contêiner não padrão esteja disponível ou até que um
o contêiner mais recente está disponível. A ContainerOpener é uma classe de utilitário que pode ajudar.
Quando você terminar de usar um contêiner, chame close().
Resumo de classes aninhadas
| interface | TagManager.Logger | Uma interface simples para registro de erros/avisos/info/depuração/detalhamento. | |
| enum | TagManager.RefreshMode | Modo para atualizar o contêiner. | |
Resumo do método público
| Contêiner |
getContainer(string containerId)
|
| Contexto | |
| DataLayer | |
| estática TagManager |
getInstance(Contexto context)
|
| Logger | |
| TagManager.RefreshMode | |
| Contêiner | |
| void | |
| void |
Métodos públicos
públicas Contêiner getContainer (String containerId)
Retorna o contêiner aberto associado ao containerId.
retorna null se o contêiner ainda não estiver aberto.
públicas Contexto getContext ()
Retorna o contexto salvo associado a este objeto.
públicas DataLayer getDataLayer ()
Retorna o objeto da camada de dados usado pelo Gerenciador de tags.
públicas estática TagManager getInstance (Contexto contexto)
Acesse a instância de singleton da classe TagManager e crie-a, se necessário.
públicas TagManager.RefreshMode getRefreshMode ()
Retorna o modo de atualização usado para todos os contêineres.
públicas Contêiner openContainer (String containerId, Container.Callback callback)
Retorna um contêiner. O callback será chamado conforme várias coisas acontecerem para o contêiner. No mínimo, o openContainer tentará carregar uma versão salva do contêiner do Docker. Se não houver uma versão salva ou ela estiver desatualizada, tente vão ser carregados pela rede.
Normalmente, o contêiner retornado fica vazio, mas o carregamento acontece em um linha de execução, de modo que o contêiner retornado pode ser atualizado antes do retorno, depois do retorno, ou pode nunca ser atualizado (se, por exemplo, não houver conexão de rede durante o ciclo de vida do contêiner).
Se você chamar openContainer uma segunda vez para um determinado containerId, uma
será gerada.
Parâmetros
| containerId | o ID do contêiner a ser aberto |
| callback | um objeto cujos métodos serão chamados durante partes do processo
de desenvolvimento de software. Os métodos podem ser chamados em linhas de execução diferentes. Além disso, eles podem
ser chamado antes do retorno de openContainer.
|
públicas anular setLogger (logger logger)
Substitui o registrador atual usado pelo Gerenciador de tags.
públicas anular setRefreshMode (TagManager.RefreshMode )
Define o modo de atualização usado para todos os contêineres.