Roman Garbar
19 de agosto de 2020
Um mês antes da lançamento do iOS 14Ainda há muitas especulações sobre o que se vai passar a seguir para MMPs. Em que medida é que o seu papel vai mudar? Os anunciantes podem continuar a pagar 1-5 cêntimos por cada instalação rastreada paga no iOS, apesar de já não ter granularidade ao nível do utilizador? A Apple permitirá que os MMPs validem os valores de conversão, embora isso não tenha sido mencionado em nenhuma documentação da Apple? Embora essas questões não sejam claras, decidimos abordar coisas que os desenvolvedores podem fazer hoje, sem o envolvimento de MMPs.
Sentámo-nos com o cofundador da agência de crescimento móvel 2ª Poção, Kevin BravoKevin criou a primeira solução de código aberto que interage com a SKAdNetwork da Apple, chamada SKAdNetwork, para falar de coisas que os programadores podem utilizar atualmente e que estão documentadas pela Apple. Kevin criou a primeira solução de código aberto que interage com a SKAdNetwork da Apple, chamada ElixirPor isso, sabemos que ele é perfeito para este tipo de conversa.
Eis o que vamos abordar hoje com o Kevin.
1) Para programadores e designers de jogos, o pop-up do iOS pede consentimento para partilhar o IDFA do utilizador - AppTrackingTransparência método.
2) Para os programadoresuma visão geral da nova estrutura de atribuição da Apple - SKAdNetwork.
2.1) Para os programadores, atribuição de instalações - integrar registerAppForAdNetworkAttribution()método
2.2) Para os programadores, atribuir eventos pós-instalação - integrar updateConversionValue(_:)método
2.3) Para os gestores da UACompreender como a Apple comunica instalações e eventos pós-instalação à rede de publicidade - Postbacks e temporizadores
3) Para toda a equipa debater ideiaso que poderia ser melhor - Melhores práticas e problemas actuais
1) Pedir aos utilizadores que partilhem o seu IDFA - Integrar Rastreio de aplicaçõesTransparência
Kevin: AppTrackingTransparency é uma estrutura disponível para o iOS 14 que permite aos programadores de aplicações pedir permissão para seguir o utilizador. Esta permissão é necessária para aceder ao IDFA do utilizador para fins de atribuição.
Para o integrar e utilizar, é necessário pedir ao utilizador que aceda ao seu IDFA com este popup:
Se o utilizador aceitar o seguimento, terá a possibilidade de pedir o seu IDFA. Caso contrário, o IDFA será 0000-0000-0000-0000-0000.
Não se esqueça de que não poderá pedir autorização se o utilizador tiver o LAT (Limited Ad Tracking) ativado.
P: Quantas vezes posso mostrar um pop-up nativo?
Kevin: Só o pode mostrar uma vez por dispositivo.
P: Posso voltar a pedir o consentimento do utilizador se este tiver sido rejeitado inicialmente?
Kevin: Se o utilizador já tiver visto este popup, não poderá voltar a mostrá-lo.
P: Posso mostrar o meu pop-up personalizado antes do nativo?
Kevin: Pode decidir quando é que vai apresentar esta janela de pop-up, o que significa que pode publicar uma janela de pop-up adicional antes.
Desta forma, pode decidir mostrar o popup de permissão apenas se o utilizador disser sim ao seu popup personalizado.
Esta estratégia já é utilizada por muitas empresas para enviar pedidos de notificação e permitir-lhe-á ter uma segunda oportunidade para pedir autorização.
P: O que acontece se um programador de aplicações não integrar o AppTrackingTransparency?
Kevin: Se não quiser/precisar de pedir o IDFA, pode decidir não mostrar este popup.
Isto significa que não terá acesso ao seu IDFA (será apresentado como 0000-0000-0000-0000) e que as redes de publicidade também não terão acesso ao mesmo.
2) Visão geral da nova estrutura de atribuição da Apple - SKAdNetwork
Kevin: A Apple fornece uma solução de atribuição anónima denominada SKADNetworkpermitindo que as aplicações continuem a rastrear instalações provenientes de diferentes redes de publicidade, sem comprometer o anonimato dos utilizadores.
Ao utilizar a SKADNetwork, é anexada uma assinatura a cada clique no anúncio. Quando o utilizador abrir a sua aplicação pela primeira vez, a Apple poderá verificar se provém de um anúncio específico com esta assinatura.
De seguida, é enviado um postback para a rede de publicidade para atribuir uma nova instalação.
A assinatura não contém quaisquer dados de identificação, mantendo a privacidade ao máximo ao impossibilitar a associação de uma instalação a um utilizador específico.
Para integrar o SKADNetwork, é necessário chamar dois métodos:
- registarAppForAdNetworkAttribution(): Este método deve ser chamado no primeiro lançamento e registar o utilizador para atribuição. Se o utilizador for proveniente de um anúncio assinado, será disparado um postback nas horas seguintes, notificando a rede de anúncios da instalação desta aplicação.
- updateConversionValue(_:) Este método deve ser chamado sempre que se pretenda atualizar o valor de conversão associado a este utilizador específico. Pode chamar este método as vezes que quiser, mas o valor de conversão só será atualizado se for superior ao anterior.
Para a monetização de anúncios, os programadores têm de determinar, antecipadamente, as redes de anúncios que vão utilizar para a monetização e especificá-las dentro da aplicação através do plist, tal como é especificado em esta documentação.
2.1) Instalações de atributos - Integrar de registarAppForAdNetworkAttribution
Kevin: Ao chamar registerAppForAdNetworkAttribution no primeiro lançamento da aplicação, está a fazer tudo o que é necessário para ativar a atribuição da instalação da aplicação com a SKADNetwork.
No entanto, a atribuição de instalações só será possível se a rede de publicidade estiver a assinar os seus anúncios com a SKADNetwork.
No que respeita à publicidade, os programadores devem certificar-se de que as redes de publicidade têm a SKADNetwork integrada para permitir a atribuição e os postbacks.
Para facilitar as coisas, está disponível uma lista de todos os IDs de redes de publicidade disponíveis aqui.
2.2) Atribuir eventos pós-instalação - Integrar updateConversionValue(_:)
Kevin: É possível atribuir um valor de conversão a uma instalação específica. Este é um valor numérico entre 0 e 63.
Trata-se de um "sinal" que o ajudará a compreender o valor deste utilizador específico, sem lhe dar uma forma de o identificar.
As redes de publicidade podem utilizar estas informações para compreender o valor de cada instalação para a sua empresa. Este sinal pode ajudar as redes de publicidade a identificar melhores públicos para apresentar os seus anúncios e melhorar o desempenho das suas campanhas.
P: Quando é que se deve utilizar updateConversionValue(_:)?
Kevin: O valor de conversão pode ser atualizado várias vezes para o mesmo utilizador, mas existem algumas limitações:
- Só é possível atualizar o valor de conversão com um valor superior ao da chamada anterior (1->2 mas não 3->2)
- Um valor limitado entre 0-63
Os valores de conversão devem ser utilizados porque fornecem sinais valiosos às suas redes de publicidade. Também lhe permite
- Analisar o comportamento essencial na aplicação após a instalação a partir de uma campanha/canal/país específico
- Ofereça pontos de dados adicionais à rede de publicidade que pode utilizar para identificar grupos valiosos para o seu jogo e otimizar o desempenho das suas campanhas.
É necessário refletir sobre a forma como definirá cada valor de conversão para tirar o máximo partido da SKADNetwork.
Existem diferentes abordagens para a gestão dos valores de conversão:
- Acompanhar as receitas
- Por exemplo, o valor de conversão 1 é 0,1 EUR, 50 é 5,0 EUR
- Eventos de pista
- Por exemplo, level1_completed = valor de conversão 1
- Acompanhar as receitas e a evolução dos eventos
- Por exemplo, Valor de conversão 10 = lvl5_completed e gastar 1EUR
- etc...
Para os eventos de receita + progresso, criei uma tabela de conversão que permite definir cada evento que vai acompanhar e compreender o valor de conversão que vai enviar.
Como se pode ver na folha de cálculo, estamos a utilizar binários para converter eventos em valores de conversão:
- Cada valor de conversão traduz-se num conjunto de 6 valores binários.
- Os primeiros 3 valores binários representam a receita para este utilizador específico (por exemplo, compra > 10$ = "101")
- Os últimos 3 valores binários representam o progresso (por exemplo, 10 níveis concluídos = "011")
- Ao combinar os dois conjuntos de valores binários, obtemos um valor de conversão (por exemplo, "101001" converte para o valor de conversão 43)
Pode encontrar a folha de cálculo aqui:
P: O que é o Elixir e como é que o ajuda?
Kevin: Os valores de conversão só podem ser enviados a partir da aplicação, o que torna complexo ajustar a forma como rastreia os valores de conversão sem a atualizar.
Elixir é um SDK de código aberto que lhe permite definir e atualizar os seus valores de conversão sem atualizar a aplicação após cada alteração.
Como funciona:
- A tabela de conversão é definida por meio de uma das abordagens disponíveis (receita / mista / evolução)
- Armazena-o no seu servidor como um ficheiro JSON
- Integrar o Elixir SDK, rastreando todos os eventos disponíveis na aplicação
- No primeiro lançamento, o Elixir SDK solicitará o JSON e fará corresponder os valores de conversão às acções realizadas pelo utilizador em tempo real
- O Elixir SDK actualizará o conversionValue com base na tabela que criou
Pode ver um exemplo de tabela de conversão JSON. Este é o documento que o Elixir lê para gerar o valor de conversão a seguir após as acções de cada utilizador.
Atualmente, só existe um tipo de tabela disponível (ligação ao quadro) para Elixir. À medida que os programadores colaboram no projeto, todos os modelos serão facilmente abrangidos (binário de receitas de anúncios, carimbo de data/hora, geo, etc.)
2.3) Compreender como a Apple comunica instalações e eventos pós-instalação à rede de publicidade - Postbacks e temporizadores
P: Pode explicar como funciona o temporizador de postbacks em updateConversionValue(_:)?
Kevin: Existe uma complexidade adicional na forma como os postbacks são agendados.
Dois temporizadores ocorrem da seguinte forma:
- Temporizador de 24 horas: pode ser reiniciado várias vezes e tem uma duração definida de 24 horas
- Temporizador aleatório: uma vez iniciado, não pode ser reiniciado. A duração é aleatória, entre 0-24 horas
Quando se ativa registerAppForAdNetworkAttribution(), o temporizador de 24 horas é iniciado. Se decidir ativar updateConversionValue(_:)o temporizador 1 é reposto a zero e recomeça.
Sempre que dispara updateConversionValue(_:), o temporizador de 24 horas será reiniciado.
Suponhamos que não despede updateConversionValue(_:) antes de o temporizador de 24 horas expirar, será iniciado um temporizador aleatório. Uma vez iniciado o temporizador aleatório, já não é possível atualizar o valor de conversão.
No final do temporizador aleatório, o postback é enviado para a rede de publicidade. Este postback pode incluir (ou não) um valor de conversão (será o valor mais recente que definiu para este utilizador específico)
A documentação da Apple não especifica um limite de tempo ou de ocorrências para updateConversionValue. Isto significa que, desde que o utilizador venha a cada 24 horas, pode enviar um novo conversionValue até 63 vezes (com base nas limitações descritas na pergunta "Quando deve utilizar updateConversionValue(_:)?
P: Que dados estão as redes de publicidade a receber da SKADNetwork?
Kevin: As redes de anúncios receberão um postback para cada instalação com o seguinte aspeto:
Alguns valores são opcionais (por exemplo, o valor de conversão) e podem não ser incluídos no postback.
Mais pormenores sobre este postback e sobre a forma como as redes de anúncios podem verificar a autenticidade de cada instalação aqui.
3) Melhores práticas e pontos problemáticos existentes
P: Quais são as suas recomendações quando utiliza updateConversionValue(_:)?
Kevin: É necessário determinar as acções mais valiosas que os utilizadores podem realizar na sua primeira sessão e nos 1 a 3 dias seguintes.
Um evento de valor dá-lhe uma boa indicação do envolvimento dos utilizadores na sua aplicação. A compra é o sinal mais elevado que pode obter.
De seguida, deve ordenar os eventos do sinal mais baixo para o mais alto. Esta lista de eventos ajudá-lo-á a definir a tabela de conversão.
P: Quais são os outros pontos problemáticos que os programadores podem enfrentar quando trabalham com a SKAdNetwork?
Kevin: Existem diferentes desafios que terá de enfrentar quando trabalhar com a SKADNetwork:
- Gestão do carimbo de data/hora da instalação: A SKADNetwork aleatoriza a hora a que o postback é enviado para a rede de publicidade e não inclui um carimbo de data/hora de instalação. Isto torna complicado determinar quando ocorre a instalação. Torna-se ainda mais difícil se decidir enviar valores de conversão após as primeiras 24 horas.
Quanto mais tempo esperar antes de parar para atualizar os valores de conversão, mais larga fica a janela de tempo de instalação.
Uma solução poderia ser utilizar alguns dos bits do valor de conversão para definir o dia da instalação e limitar o número de dias em que actualizará o valor de conversão (por exemplo, três dias).
- Recuperação de dados / verificação de assinaturas: Atualmente, apenas as redes de publicidade terão acesso à instalação de postbacks. Ainda não é claro quais as redes de publicidade que permitirão aos anunciantes aceder aos dados da SKADNetwork. Solicitar estes dados será vital, uma vez que será possível verificar a autenticidade das instalações com uma assinatura.
- Gerir a atribuição do IDFA + SKADNetwork: Como é que se trabalha com a SKADNetwork e se continua a medir a atribuição ao nível do utilizador que optou pelo rastreio IDFA? Este modelo misto será complexo e exigirá um excelente fluxo de trabalho para evitar a deduplicação dos registos de instalação.


