A API AdMob pode criar experimentos A/B de mediação para maximizar a performance dos seus anúncios testando várias configurações. Com um teste A/B, você pode avaliar duas variações de um grupo de mediação para comparar os resultados lado a lado e selecionar uma configuração preferida.
Confira alguns exemplos de experimentos que você pode configurar:
- Adicione ou remova as origens de anúncios para ver o impacto no seu grupo de mediação.
- Use uma ordem de hierarquia diferente alterando o valor do eCPM manual das origens de anúncios
- Ativar ou desativar a otimização nas origens de anúncios em hierarquia
- Altere o número de vezes que uma origem de anúncios é chamada
Exemplos
Comece com um grupo de mediação e crie uma variação dele para ver qual variante, A ou B, tem melhor performance. O teste divide os usuários do seu app entre a configuração do grupo de mediação atual e a variação, com base em uma porcentagem (1%, 10% ou 50%) que você fornece.
curl (linha de comando)
Solicitações usando curl
Carregue o arquivo de chaves secretas do cliente e gere credenciais de autorização.
Na primeira vez que você fizer isso, será necessário aceitar uma solicitação de autorização no navegador. Antes de aceitar, verifique se você fez login com uma Conta do Google que tem acesso à API AdMob. Seu app será autorizado a acessar dados em nome da conta que estiver conectada no momento.
Para autenticação e autorização, recomendamos usar o oauth2l, uma ferramenta de linha de comando simples para trabalhar com o OAuth 2.0 do Google. Instale o oauth2l e execute o comando abaixo, substituindo path_to_credentials_json por um caminho para um arquivo
credentials.jsonque você baixa ao registrar seu app na nuvem. Na primeira execução, o comando orienta você pelo fluxo de autorização do OAuth 2.0. As execuções subsequentes atualizam o token automaticamente.oauth2l header --json path_to_credentials_json --scope admob.monetization,admob.readonly
Crie um experimento A/B de mediação.
Substitua
pub-XXXXXXXXXXXXXXXXpelo ID do editor eZZZZZZZZZZpelo ID do grupo de mediação. O ID do grupo de mediação pode ser encontrado na interface da AdMob ou usando o métodoaccounts.mediationGroups:list.É necessário especificar o
treatmentMediationLinese otreatmentTrafficPercentage, mas ocontrolMediationLinesé herdado do grupo de mediação principal e não precisa ser especificado.A solicitação a seguir cria um experimento A/B de mediação em que a variante de tratamento, também conhecida como variante B, contém uma única linha de mediação para a rede da AdMob usando o modo
LIVE.curl --http1.0 \ -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments \ -H "Content-Type:application/json" \ -H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)" \ --data @- << EOF { "displayName":"Mediation A/B Experiment Test Name", "treatmentTrafficPercentage": "50", "treatmentMediationLines": [{ "mediationGroupLine": { "displayName": "Test mediation group line", "adSourceId": "5450213213286189855", "cpm_mode": "LIVE" } }] } EOFConfira o exemplo de resposta abaixo, em que
SSSSSSSSSSSSSSSSSSSSSSrepresenta o ID do experimento A/B de mediação criado eYYYYYYYYYYrepresenta os últimos 10 dígitos do ID do bloco de anúncios, obedecendo ao formato:ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY.{ "name": "accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments/SSSSSSSSSSSSSSSSSSSSSS", "displayName": "Mediation A/B Experiment Test Name", "experimentId": "SSSSSSSSSSSSSSSSSSSSSS", "treatmentTrafficPercentage": "50", "treatmentMediationLines": [ { "mediationGroupLine": { "id": "11111111111111111", "displayName": "Test mediation group line", "adSourceId": "5450213213286189855", "cpmMode": "LIVE", "cpmMicros": "10000", "adUnitMappings": { "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ }, "state": "ENABLED" } } ], "controlMediationLines": [ { "mediationGroupLine": { "id": "22222222222222222", "displayName": "AdMob Network (control)", "adSourceId": "5450213213286189855", "cpmMode": "LIVE", "cpmMicros": "10000", "adUnitMappings": { "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/ }, "state": "ENABLED" } } ], "state": "RUNNING" }Verifique se o experimento de teste A/B de mediação está em execução.
Chame
accounts.mediationGroups:listpara receber o status do experimento A/B de mediação para esse grupo de mediação. Consulte o guia de grupos de mediação para mais detalhes.O
mediationAbExperimentStateé definido comoRUNNINGpara experimentos A/B de mediação ativos eNOT_RUNNINGse não houver um experimento em execução no grupo de mediação.Exemplo de solicitação:
curl --http1.0 \ -X GET https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups \ -H "$(oauth2l header --json path_to_credentials_json --scope admob.readonly)"
Interrompa o experimento A/B de mediação e selecione uma variante.
Substitua
pub-XXXXXXXXXXXXXXXXpelo ID do editor eZZZZZZZZZZpelo ID do grupo de mediação. O ID do grupo de mediação pode ser encontrado na interface da AdMob ou usando o métodoaccounts.mediationGroups:list.Para concluir o experimento, especifique a variante vencedora na solicitação:
VARIANT_CHOICE_A: use as linhas de mediação da variante A e conclua o experimento. A variante A contém as linhas de exibição originais antes da criação do experimento.VARIANT_CHOICE_B: use as linhas de mediação do formulário da variante B e conclua o experimento. A variante B contém as linhas de exibição recém-adicionadas.
Exemplo de solicitação:
curl --http1.0 \ -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments:stop \ -H "Content-Type:application/json" \ -H "$(oauth2l header --json
path_to_credentials_json--scope admob.monetization)" \ --data @- << EOF { "variantChoice": "VARIANT_CHOICE_A" }Exemplo de resposta:
{ "experimentId": "SSSSSSSSSSSSSSSSSSSSSS", "state": "EXPIRED", }