User agent do app
Como parte dos nossos esforços mais amplos para combater o spam, desenvolvemos uma especificação padronizada para o cabeçalho User-Agent enviado por um produto de análise/anúncios em nome de um usuário de app. O user agent do app pode ser derivado do código nativo para aderir à seguinte especificação:
name version (os_and_version; locale; device; build; Proxy)
A definição desses campos é a seguinte:
Componentes do user agent | |
---|---|
name | O nome do produto do Google Analytics/Ads. ( Se o user agent for criado no lado do cliente, Android// Specified by API consumer. iOS// Specified by API consumer. |
version | A versão do produto de análise/anúncios.
( Android// Specified by API consumer. iOS// Specified by API consumer. |
os_and_version | O sistema operacional e a versão em que o app
está sendo executado. ( AndroidString osAndVersion = "Android " + Build.VERSION.RELEASE; iOSUIDevice *uid = [UIDevice currentDevice]; NSString *osAndVersion = [NSString stringWithFormat:@"%@ %@", [uid systemName], [uid systemVersion]]; |
locale | Uma tag de localidade do IETF para o dispositivo, usando um código de idioma e país de duas letras separados por um sublinhado.
( AndroidString locale = Locale.getDefault(); iOSNSString *locale = [[NSLocale currentLocale] localeIdentifier] |
device | O nome do dispositivo físico que executa o produto de análise/anúncios.
( AndroidString device = Build.MODEL; iOS@import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname("hw.machine", buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding]; } |
build | "Build/" seguido pelo número da versão do sistema operacional.
( AndroidString build = "Build/" + Build.ID; iOS@import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname("kern.osversion", buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding]; } |
Inclua ; Proxy
apenas no final do User-Agent do app ao construir o
User-Agent do app no lado do servidor. Se o user agent do app for totalmente construído no lado do cliente, exclua ; Proxy
. Assim, um User-Agent de app pode ser:
- Android:
AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M; Proxy)
- iOS:
AdMob/7.10.1 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy)
Solicitação de acompanhamento de conversões
O objetivo das solicitações de acompanhamento de conversões é notificar o Google Ads sobre um evento do app que deve ser rastreado como uma conversão e/ou usado para preencher uma lista de remarketing, além de recuperar metadados que descrevem qualquer clique anterior ao evento.
Todas as chamadas de API são feitas para o domínio www.googleadservices.com
. As solicitações de conversão são solicitações POST
via HTTPS no seguinte caminho:
/pagead/conversion/app/version
1.0
.
Uma solicitação padrão de conversão de app contém os seguintes parâmetros.
Solicitação de acompanhamento de conversões | |
---|---|
dev_token |
Obrigatório Local: consulta O token de desenvolvedor exclusivo e estático emitido para o consumidor da API. Z_eErE4DkvcKjDM1OVE4c4 |
link_id |
Obrigatório Local: consulta A vinculação do identificador de link que associa o token de desenvolvedor do consumidor da API a um app específico. 31FF8D67E5BB5DD5029DCC2734C2F884 |
app_event_type |
Obrigatório Local: consulta O nome do evento do app que ocorreu. Esse campo é uma enumeração e aceita apenas os seguintes valores: • first_open • session_start • in_app_purchase • view_item_list • view_item • view_search_results • add_to_cart • ecommerce_purchase • custom O evento |
app_event_name |
Obrigatório sob certas condições Local: consulta O nome de qualquer evento de app personalizado que não seja aceito no campo level_achieved Level Achieved Esse campo não pode conter nenhum dos valores reservados para |
app_event_data |
Opcional Local: corpo Encaminhe outros dados de eventos avançados como um objeto JSON simples que mapeia chaves de string para valores. Os valores aceitáveis são strings e matrizes de strings. {"level": 5, "attempts": 20} |
rdid |
Obrigatório Local: consulta Uma string UUID válida que representa o ID bruto do dispositivo. f10e1de2-e237-4f50-b6aa-843c45cc63d6 Se o ID do dispositivo estiver faltando, como o ID de um usuário que não consentiu com a ATT, defina como zero. 00000000-0000-0000-0000-000000000000 |
id_type |
Obrigatório Local: consulta O tipo de identificador armazenado no campo Androidadvertisingid iOSidfa |
eea |
Obrigatório sob certas condições Local: consulta O escopo do EEA.
|
ad_personalization |
Obrigatório sob certas condições Local: consulta As flags para anúncios personalizados
|
ad_user_data |
Obrigatório sob certas condições Local: consulta A flag de consentimento para uso de dados do usuário para fins de publicidade.
|
lat |
Obrigatório Local: consulta Status de limite de rastreamento de anúncios para o dispositivo.
|
app_version |
Obrigatório Local: consulta A versão atual do app. Ela precisa ser padronizada da seguinte forma: AndroidpackageManager.getPackageInfo(packageName(), PackageManager.GET_META_DATA).versionName iOS[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] 1.2.4 |
os_version |
Obrigatório Local: consulta A versão atual do SO host do app. Isso deve ser padronizado da seguinte forma. Androidandroid.os.Build.VERSION.RELEASE iOS[[UIDevice currentDevice] systemVersion] |
sdk_version |
Obrigatório Local: consulta A versão do SDK que mediu o evento. Como isso é usado principalmente
para depuração, ele precisa refletir a versão de lançamento exatamente como é publicada
com as versões do SDK. Se o app não usar um SDK, transmita o mesmo
valor de 1.9.5r6 |
timestamp |
Obrigatório Local: consulta O carimbo de data/hora UNIX em que o evento de conversão ocorreu, em segundos com precisão de até microssegundos. 1432681913.123456 |
value |
Opcional Local: consulta O valor monetário do evento, se houver. Ele sempre precisa ser formatado como um valor de ponto flutuante legível por máquina usando um ponto decimal para separar a parte inteira e fracionária do valor. 1.99 |
currency_code |
Obrigatório sob certas condições Local: consulta O código de moeda ISO 4217 para o parâmetro USD |
gclid |
Obrigatório sob certas condições Local: consulta O valor do parâmetro de consulta Cj0KEQjw0dy4BRCuuL_e5M |
market_referrer_gclid |
Obrigatório sob certas condições Local: consulta O valor do parâmetro de consulta BX3QojHp4mY5MrJtFM_d1u |
gclid_only_request |
Obrigatório sob certas condições Local: consulta Identificador para atribuição baseada em 1 |
gbraid |
Obrigatório sob certas condições Local: consulta O último valor ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O |
app_open_source |
Obrigatório sob certas condições Local: consulta Valor para identificar o link direto de clique no anúncio ou as sessões orgânicas do app. ad_click or organic |
User-Agent |
Obrigatório Local: cabeçalho O user agent do app, conforme definido na seção anterior. AdMob/7.10.1 (Android 6.0; en_US; SM-G900F; Build/MMB29M) |
X-Forwarded-For |
Obrigatório Local: cabeçalho O endereço IPv4 ou IPv6 público do dispositivo em que o evento foi medido. 216.58.194.174 |
Todas as solicitações precisam ser enviadas via HTTPS. Os pings recebidos por HTTP serão rejeitados.
Se o corpo da solicitação estiver vazio (nos casos em que nenhum dado de evento avançado
é transmitido no payload app_event_data
), nosso servidor exige que
você defina explicitamente o cabeçalho Content-Length: 0
na sua solicitação.
Exemplo de solicitação
Exemplo de uma solicitação válida de acompanhamento de conversões com um tipo de evento não personalizado e informações de receita:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=in_app_purchase &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD &market_referrer_gclid=BX3QojHp4mY5MrJtFM_d1u &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gclid_only_request=0 &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
{"app_event_data":{"item_id":["Crayons","Markers"]}}
Exemplo de uma solicitação de acompanhamento de conversões válida com um tipo de evento não personalizado e informações de receita com rdid (advertisingid) não disponível:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=in_app_purchase &rdid=00000000-0000-0000-0000-000000000000 &id_type=advertisingid &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=1 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD &market_referrer_gclid=BX3QojHp4mY5MrJtFM_d1u &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gclid_only_request=1 &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; Android,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
{"app_event_data":{"item_id":["Crayons","Markers"]}}
Exemplo de uma solicitação válida de início de sessão:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=session_start &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Exemplo de uma solicitação válida de início de sessão reatribuição para uma sessão
que começou com o link direto
example://product/123?gclid=Cj0KEQjw0dy4BRCuuL_e5M
:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=session_start &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=0 &ad_personalization=1 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &gclid=Cj0KEQjw0dy4BRCuuL_e5M &gbraid=ChEI8IixhgYQrufHkIjz3YWRARIzALev_G_O Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Exemplo de uma solicitação de acompanhamento de conversões válida para um usuário do EEE com consentimento de dados do usuário de anúncios concedido e personalização de anúncios recusada:
POST /pagead/conversion/app/1.0 ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=in_app_purchase &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &eea=1 &ad_personalization=0 &ad_user_data=1 &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Codificação de dados de eventos
Para o parâmetro de corpo app_event_data
, use as seguintes convenções para tipos de dados primitivos:
Ponto flutuante
- Use o ponto como separador decimal, independente da localização do app
- Use precisão decimal de dois dígitos para representar valores monetários, por exemplo, 2,99.
- Não use notação exponencial, por exemplo, 2E+9.
- Não use vírgulas para separar grupos de dígitos, por exemplo, 1.000.000.
- Exemplos válidos:
-0.5
2.99
1000000.123
Número inteiro
- Envie apenas valores inteiros sem dígitos decimais.
- Não use vírgula para separar grupos de dígitos, por exemplo, 1.000.000.
- Exemplos válidos:
1000
-11
0
Data
- Formato da data: aaaa-mm-dd
yyyy
= ano com quatro dígitos, por exemplo, 2016mm
= mês de dois dígitos, por exemplo, 09 para setembrodd
= dia com dois dígitos, por exemplo, 23 para o 23º dia do mês
- Sempre envie o número de dígitos especificado acima. Por exemplo, se você estiver enviando o valor de dd para o 5º dia do mês, envie
05
. - Exemplos válidos:
"2016-09-23"
"1990-12-31"
- Formato da data: aaaa-mm-dd
Carimbo de data/hora
- Formato de hora: carimbo de data/hora Unix/Epoch definido no fuso horário UTC com precisão de até microssegundos
- Exemplos válidos:
1478713087
para Wed, 09 Nov 2016 17:38:07 GMT1073513982.123000
para quarta-feira, 7 de janeiro de 2004, 22:19:42.123 GMT
Matrizes
- Envie apenas matrizes de valores primitivos (strings, números e booleanos)
- Exemplos válidos:
[123, 456, 789]
["abc"]
Resposta do acompanhamento de conversões
A resposta do acompanhamento de conversões tem o seguinte formato:
{ "ad_events": [<ad event objects>], "errors": [<error strings>], "attributed": true|false }
Os arrays ad_events e errors podem estar vazios.
Esperamos que os erros sejam códigos legíveis por máquina, por exemplo, invalid_timestamp
.
Códigos de erro
invalid_timestamp: a solicitação não tinha um carimbo de data/hora válido.
eea_missing_or_invalid: a solicitação não tinha o campo "eea"" definido ou era inválida.
ad_user_data_missing: o campo de solicitação "ad_user_data" não foi definido. O campo "ad_user_data" é obrigatório para todas as solicitações de DMA no escopo.
ad_user_data_invalid: o valor da solicitação "ad_user_data" era inválido. O campo "ad_user_data" é obrigatório para todas as solicitações de DMA no escopo.
ad_personalization_missing_or_invalid: a solicitação não tinha o campo "ad_personalization" definido ou ele era inválido. O campo "ad_personalization" é obrigatório para todas as solicitações de DMA no escopo.
Os eventos de anúncio são os objetos principais da atribuição de app e contêm as seguintes propriedades.
Observações importantes sobre o comportamento da resposta dependendo do consentimento do usuário:
Se a conversão tiver consentimento para uso de dados do usuário de anúncios e o usuário tiver consentimento para uso cruzado
nas configurações de usuário do Google, o Google Ads vai responder com um único último
clique em todas as CPSes. Se o usuário não tiver dado consentimento para uso cruzado nas configurações de usuário do Google, o Google Ads vai responder com vários últimos cliques, com base no CPS.
Se a conversão incluir determinados CPSes no consentimento de uso cruzado selecionado pelo usuário, mas não outros, o Google Ads vai responder com um único último clique em todos os CPSes que receberam consentimento de uso cruzado, mas com vários últimos cliques, por CPS, para aqueles que não receberam.
Resposta do acompanhamento de conversões | |
---|---|
ad_event_id |
Sempre presente string
Q2owS0VRancwZHk0QlJDdXVMX2U1TQ |
conversion_metric |
Sempre presente string A métrica de conversão usada para atribuição. Inicialmente, vamos oferecer suporte a uma métrica de conversão. conversion |
timestamp |
Sempre presente número O carimbo de data/hora UNIX em que o evento de anúncio ocorreu, em segundos com precisão de até microssegundos. Esse valor deve ser usado para a atribuição de último clique. 1432681913.123456 |
campaign_type |
Sempre presente string Esse campo identifica o tipo de campanha que gerou o evento de anúncio. Os valores possíveis são os seguintes. ACI ACE ACPre Search Display Video Shopping Hotel Performance_Max Other ACI é a abreviação de "campanha de apps para instalação". ACE é uma abreviação de Campanhas de apps para engajamento. |
campaign_id |
Sempre presente número O ID numérico da campanha que gerou o evento de anúncio. Esse valor é garantido como único. 123456789 |
campaign_name |
Sempre presente string O nome da campanha definida pelo anunciante que gerou o evento de anúncio. Esse valor não tem garantia de exclusividade. Occasional Gamers (Video) |
ad_type |
Sempre presente string O tipo de anúncio que resultou no evento de anúncio. Esse valor pode ser usado para distinguir entre vários tipos de inventário da seguinte forma. Promoção de appClickToDownload AppDeepLink AppDeepLinkContinue Unknown |
external_customer_id |
Sempre presente número O identificador do anunciante proprietário da campanha que gerou o evento de anúncio. Esse valor pode ser usado para diferenciar contas do Google Ads. 123456789 |
location |
Sempre presente número O código do ID do local para a localização geográfica do evento de anúncio. Consulte a referência da API Google Ads para interpretar os códigos de local. |
network_type |
Sempre presente string Este campo identifica a rede de publicidade do Google Ads em que o evento de anúncio ocorreu. Os valores possíveis são os seguintes: Search Display YouTube GoogleTv cross-network |
network_subtype |
Será string Este campo identifica o "subtipo" da rede de publicidade do Google Ads em que o evento de anúncio ocorreu. Os valores possíveis variam de acordo com o tipo de rede principal. PesquisaPesquisa Google comumGoogleSearch SearchPartners DisplayPublishers da Web para dispositivos móveismGDN Google AdMob YouTubeRede de Vídeos do YouTubeYouTubeVideos YouTubeSearch VideoPartners GoogleTvRede de vídeos do Google TVGoogleTvVideos cross-networkCampanhas Performance Max em várias redescross-network |
video_id |
Só é fornecido quando string O ID do vídeo do YouTube associado ao evento de anúncio. dQw4w9WgXcQ |
keyword |
Só é fornecido quando string A palavra-chave de pesquisa associada ao evento de anúncio. +food +delivery |
match_type |
Só é fornecido quando string O tipo de correspondência para palavras-chave de pesquisa. Exatae p b |
placement |
Só é fornecido quando string O posicionamento associado ao evento de anúncio. mobileapp::1-343200656 |
ad_group_id |
Fornecido apenas quando número O ID numérico do grupo de anúncios que gerou o evento de anúncio. Esse valor é garantido como exclusivo. 123456789 |
ad_group_name |
Só é fornecido quando string O nome do grupo de anúncios definido pelo anunciante que gerou o evento de anúncio. Esse valor não tem garantia de exclusividade. My App AdGroup |
creative_id |
Só é fornecido quando número O ID numérico do bloco de anúncios do criativo que gerou o evento de anúncio. Esse valor é garantido como exclusivo. 123456789 |
interaction_type |
Esse campo sempre será "engagement". string |
Exemplos de respostas
Exemplo de uma resposta de acompanhamento de conversões quando a solicitação continha erros:
{ "ad_events": [], "errors": ["INVALID_CURRENCY_CODE"], "attributed": false }
Exemplo de resposta negativa de acompanhamento de conversões:
{ "ad_events": [], "errors": [], "attributed": false }
Uma resposta de acompanhamento de conversões será retornada para todas as solicitações de acompanhamento de conversões.
Exemplo de uma resposta afirmativa de acompanhamento de conversões para um usuário de fora do EEE em uma campanha para apps:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Search", "network_subtype": "GoogleSearch", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Exemplo de uma resposta afirmativa de acompanhamento de conversões para um usuário de fora do EEE em uma campanha de pesquisa:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "Search", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Search", "network_subtype": "GoogleSearch", "video_id": null, "keyword": "+space +birds", "match_type": "b", "placement": null, "ad_group_id": 123456789, "ad_group_name": "My App AdGroup", "creative_id": 123456789, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Exemplo de uma resposta afirmativa de acompanhamento de conversões para um usuário de fora do EEE em uma campanha de display:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "Display", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "mGDN", "video_id": null, "keyword": null, "match_type": null, "placement": "mobile-app::2-343200656", "ad_group_id": 123456789, "ad_group_name": "My App AdGroup", "creative_id": 123456789, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Exemplo de uma resposta afirmativa de acompanhamento de conversões para um usuário de fora do EEE em uma campanha do YouTube:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "engagement", "campaign_type": "Video", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "YouTube", "network_subtype": "YouTubeVideos", "video_id": "dQw4w9WgXcQ", "keyword": null, "match_type": null, "placement": null, "ad_group_id": 123456789, "ad_group_name": "My App AdGroup", "creative_id": 123456789, "timestamp": 1432681913.123456 }], "errors": [], "attributed": true, "warnings": [] }
Exemplo de uma resposta de acompanhamento de conversões atribuídas em que a conversão é atribuída a interações de anúncios do Google Play e da pesquisa, mas o consentimento de uso cruzado 5(2)(b) + 5(2)(c) é negado entre as CPSs do Google Play e da pesquisa:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, { "ad_event_id": "I8YUwWqxvOyqcwOcqBAkYZBMaOONSd", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Search", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
Um exemplo de resposta de rastreamento de conversão atribuída em que a conversão é atribuída a interações com anúncios do Google Play e de pesquisa e o consentimento de uso cruzado 5(2)(b) + 5(2)(c) é aceito entre os CPSs do Google Play e de pesquisa é semelhante ao comportamento de conversão atual:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
Exemplo de uma resposta de acompanhamento de conversões atribuídas em que a conversão é atribuída a interações de anúncios do Google Play, da Pesquisa e do YouTube, e o consentimento de uso cruzado 5(2)(b) + 5(2)(c) é aceito entre as CPSs do Google Play e da Pesquisa, mas negado à CPS do YouTube:
{ "ad_events": [{ "ad_event_id": "Q2owS0VRancwZHk0QlJDdXVMX2U1TQ", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Display", "network_subtype": "", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, { "ad_event_id": "I8YUwWqxvOyqcwOcqBAkYZBMaOONSd", "conversion_metric": "conversion", "interaction_type": "click", "campaign_type": "ACI", "campaign_id": 123456789, "campaign_name": "My App Campaign", "ad_type": "ClickToDownload", "external_customer_id": 123456789, "location": 21144, "network_type": "Youtube", "network_subtype": "YouTubeVideos", "video_id": null, "keyword": null, "match_type": null, "placement": null, "ad_group_id": null, "ad_group_name": "", "creative_id": null, "timestamp": 1432681913.123456 }, ], "errors": [], "warnings": [], "attributed": true }
Solicitação de atribuição de várias redes
Quando o Google Ads responde a uma solicitação de acompanhamento de conversões de forma afirmativa, o consumidor da API precisa notificar o Google Ads sobre a decisão de atribuição entre redes depois de identificar o último clique.
A solicitação de atribuição entre redes é idêntica à solicitação original de acompanhamento de conversões, mas com um caminho de solicitação de:
/pagead/conversion/app/1.0/cross_network
e a adição de dois parâmetros obrigatórios:
Solicitação de atribuição de várias redes | |
---|---|
ad_event_id |
Obrigatório Local: consulta O identificador |
attributed |
Obrigatório Local: consulta Se o Google Ads recebeu crédito pela conversão do consumidor da API. |
Exemplo de uma solicitação válida de atribuição de várias redes:
POST /pagead/conversion/app/1.0/cross_network ?dev_token=Z_eErE4DkvcKjDM1OVE4c4 &link_id=31FF8D67E5BB5DD5029DCC2734C2F884 &app_event_type=custom &app_event_name=level_achieved &rdid=0F7AB11F-DA50-498E-B225-21AC1977A85D &id_type=idfa &lat=0 &app_version=1.2.4 &os_version=9.3.2 &sdk_version=1.9.5r6 ×tamp=1432681913.123456 &value=1.99 ¤cy_code=USD &ad_event_id=Q2owS0VRancwZHk0QlJDdXVMX2U1TQ &attributed=1 Host: www.googleadservices.com User-Agent: MyAnalyticsCompany/1.0.0 (iOS 10.0.2; en_US; iPhone9,1; Build/13D15; Proxy) X-Forwarded-For: 216.58.194.174 Content-Type: application/json; charset=utf-8
Uma solicitação de atribuição entre redes válida sempre recebe uma resposta 200 genérica sem corpo de resposta.