Exemplos de atribuição de várias redes

A maioria dos anunciantes trabalha com várias redes de publicidade diferentes para veicular anúncios em apps dos editores. Se as redes de publicidade registrarem as próprias fontes de atribuição e acionadores com a API, elas vão receber relatórios de resumo e eventos atribuídos a si.

No entanto, os anunciantes que quiserem usar um terceiro para realizar a atribuição em várias redes (XNA, na sigla em inglês) para determinar um único anúncio vencedor para uma determinada conversão podem continuar fazendo isso usando as técnicas abaixo:

  • Configurar um servidor interno para registrar eventos acionadores e receber relatórios de atribuição da API
  • Continuar usando um parceiro de medição para dispositivos móveis

Independentemente da técnica que um anunciante escolha usar, a API Attribution Reporting oferece suporte a vários recursos diferentes que permitem que um terceiro personalize a lógica XNA em nome de um anunciante:

  • Um terceiro pode fazer a atribuição com a API com ou sem redirecionamentos das redes de publicidade.
  • As chaves de prioridade, filtros e eliminação de duplicação podem oferecer mais personalização de atribuição com base nas dimensões de origem e acionador.
  • As janelas de atribuição pós-instalação permitem que as origens que geraram uma instalação continuem recebendo créditos para futuros eventos de conversão no app.

O modelo de atribuição que as adtechs usam para eliminar a duplicação em várias redes e escolher fontes vencedoras pode ter níveis variados de complexidade, dependendo de como esses recursos da API são usados.

Os exemplos abaixo ilustram cenários de exemplo de como esses recursos podem ser usados e como diferentes configurações afetam qual fonte de atribuição recebe crédito por um determinado evento acionador.

Processar

A lista a seguir descreve as etapas do processo XNA. Para simplificar, as etapas listadas aqui pressupõem um modelo em que o anunciante usa uma adtech de veiculação para veicular anúncios e um MMP para medição de conversões. No entanto, o design da API é flexível. A funcionalidade não difere entre diferentes tipos de adtechs nem exige o uso de tecnologias de publicidade.

  1. Registro da fonte: o usuário visualiza ou clica em um anúncio, e a adtech de veiculação registra essas fontes com a API. A adtech de veiculação também pode redirecionar para outras adtechs que também podem registrar fontes diretamente com a API ou ativar a atribuição de várias redes sem redirecionamentos.
  2. Registro do acionador: o usuário realiza uma ação associada à conversão, como primeiro acesso, compra ou adição ao carrinho, em que um MMP registra um acionador com a API. O MMP também pode redirecionar para outras adtechs que podem registrar acionadores diretamente com a API. Se um MMP precisar ativar a atribuição de várias redes sem redirecionamentos, a configuração de atribuição vai precisar ser especificada durante o registro do acionador.
  3. Atribuição: se a configuração de atribuição for especificada durante o registro do acionador, as origens derivadas serão geradas em nome do MMP. Cada acionador tenta ser correspondido a uma fonte qualificada registrada diretamente pelo MMP ou a uma fonte derivada qualificada gerada em nome do MMP usando as fontes da adtech de veiculação. As origens restantes, que não receberam a atribuição, são descartadas e não estão mais qualificadas para ganhar a atribuição em conversões futuras. Isso também pode ser chamado de "perder uma vez, perder sempre" em outras partes da documentação.
    1. Quando uma origem derivada perde a atribuição, a API não gera origens derivadas futuras com base na fonte original quando eventos de conversão futuros são registrados pelo MMP. As adtechs que veiculam anúncios e outros MMPs ainda podem usar a fonte original para atribuições futuras. Isso é descrito em detalhes no Cenário 6.
  4. Geração de relatórios: a atribuição leva à geração de relatórios agregados ou de eventos. Somente relatórios agregados são gerados para origens derivadas.
  5. Exibição de relatórios: os relatórios gerados são programados para exibição.

Cenário 1: atribuição de várias redes com redirecionamentos

Um anunciante está trabalhando com duas adtechs de veiculação e um MMP. Quando os anúncios veiculados pelas adtechs veiculadas são clicados, as adtechs veiculadas são redirecionadas para o MMP no registro da fonte. Quando um usuário faz uma conversão no app, o MMP é redirecionado para as adtechs no registro do acionador.

O MMP vai receber um relatório com as duplicações eliminadas em várias redes, e cada adtech que veicular vai receber relatórios autoatribuídos.

Cronograma de registros

Na t0, o usuário clica em um anúncio veiculado pela ad-tech1, que registra uma Source1 de origem junto com a Source2 do redirecionamento da mmp-ad-tech:

  "Attribution-Reporting-Register-Source": {
    "source_event_id": "34532",
    "web_destination": "https://destination.example.com",
    "priority": "10",
    "expiry": "172800",
    "aggregation_keys": {
      "campaignCounts": "0x1"
    }
  },
  "Attribution-Reporting-Redirect": [
    "https://www.mmp-ad-tech.com/source2"
  ]
// Registered by mmp-ad-tech via redirects
  "Attribution-Reporting-Register-Source": {
    "source_event_id": "788324",
    "web_destination": "https://destination.example.com",
    "priority": "30",
    "expiry": "172800",
    "aggregation_keys": {
      "campaignCounts": "0x2",
      "geoValue": "0x102"
    }
  }

Na t1, o usuário clica em um anúncio veiculado pela ad-tech2 para registrar a Source3 e redirecionar para a mmp-ad-tech, ou seja, Origem4:

  "Attribution-Reporting-Register-Source": {
    "source_event_id": "6574435",
    "web_destination": "https://destination.example.com",
    "priority": "10",
    "expiry": "172800",
    "aggregation_keys": {
      "campaignCounts": "0x3"
    }

  },
  "Attribution-Reporting-Redirect": [
    "https://www.mmp-ad-tech.com/source"
  ]
// Registered by mmp-ad-tech via redirects
  "Attribution-Reporting-Register-Source": {
    "source_event_id": "4532343",
    "web_destination": "https://destination.example.com",
    "priority": "20",
    "expiry": "172800",
    "aggregation_keys": {
      "campaignCounts": "0x4"
    }
  }

Na t2, a ação ou a conversão do usuário no app do anunciante resulta em um registro de acionador pelo mmp-ad-tech (Trigger1), que também redireciona para ad-tech1 (Trigger2) e ad-tech2 (Trigger3):

indefinido

Resultado

As fontes registradas de mmp-ad-tech Source2 e Source4 competem na atribuição pelo Acionador 1 do acionador registrado em mmp-ad-tech. Source2 vence sobre Source4 por ter prioridade mais alta. O Trigger2 da ad-tech1 é atribuído à "Source1" pela ad-tech1, e o "Trigger3" da "Ad-tech2" é atribuído à "Source3" pela "Ad-tech2".

Fontes concorrentes para

Campos

Source1

Source2

Source3

Source4

Fonte que registra a adtech

ad-tech1

mmp-ad-tech

adtech2

mmp-ad-tech

source_event_id

34532

788324

6574435

4532343

destino

https://destination.example.com

https://destination.example.com

https://destination.example.com

https://destination.example.com

prioridade

10

30

10

20

Gatilhos registrados
Resultado da atribuição

O Trigger1 atribui aos atributos da Origem2 e do Gatilho2 aos atributos da Origem1 e do Acionadores3 para a Origem3.

Fontes ignoradas post atribuição

Origem4: não vai competir por atribuição no futuro.

Relatórios de eventos

URL do relatório: https://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-event-attribution

  {
    "attribution_destination": "https://destination.example.com",
    "scheduled_report_time": "800176400",
    "source_event_id": "788324",
    "trigger_data": "1",
    "source_type": "navigation",
    "randomized_trigger_rate": 0.0024263
  }

URL do relatório: https://www.ad-tech1.com/.well-known/attribution-reporting/report-event-attribution

  {
    "attribution_destination": "https://destination.example.com",
    "scheduled_report_time": "800176400",
    "source_event_id": "34532",
    "trigger_data": "2",
    "source_type": "navigation",
    "randomized_trigger_rate": 0.0024263
  }

URL do relatório: https://www.ad-tech2.com/.well-known/attribution-reporting/report-event-attribution

  {
    "attribution_destination": "https://destination.example.com",
    "scheduled_report_time": "800176400",
    "source_event_id": "6574435",
    "trigger_data": "3",
    "source_type": "navigation",
    "randomized_trigger_rate": 0.0024263
  }

Relatórios agregados

URL do relatório: https://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-aggregate-attribution

  {
    "attribution_destination": "https://destination.example.com",
    "histograms": [
      {
        "key": "0x104",
        "value": 11
      }
    ]
  }

URL do relatório: https://www.ad-tech1.com/.well-known/attribution-reporting/report-aggregate-attribution

  {
    "attribution_destination": "https://destination.example.com",
    "histograms": [
      {
        "key": "0x201",
        "value": 21
      }
    ]
  }

URL do relatório: https://www.ad-tech2.com/.well-known/attribution-reporting/report-aggregate-attribution

  {
    "attribution_destination": "https://destination.example.com",
    "histograms": [
      {
        "key": "0x303",
        "value": 31
      }
    ]
  }

Cenário 2: atribuição de várias redes sem redirecionamentos

Um anunciante está trabalhando com duas adtechs de veiculação e um MMP. Um usuário clica em um anúncio da primeira adtech que veicula, que é redirecionado ao MMP no registro da fonte. Quando o usuário clica em um anúncio da segunda adtech de veiculação, a adtech não redireciona, optando por compartilhar um subconjunto das chaves de agregação com o MMP com antecedência.

Em seguida, o usuário faz a conversão no app em que o MMP registra o acionador, mas não redireciona para nenhuma adtech. A adtech sem redirecionamento ganha a atribuição de último toque. Somente o MMP receberá um relatório de resumo com duplicação eliminada em várias redes que inclua essa conversão.

Cronograma de registros

Na t0, o usuário clica em um anúncio, resultando em um registro da Source1 pela ad-tech1 e do Source2 pela mmp-ad-tech pelo redirecionamento da ad-tech1:

  "Attribution-Reporting-Register-Source": {
    "source_event_id": "234543",
    "web_destination": "https://destination.example.com",
    "priority": "20",
    "expiry": "172801",
    "aggregation_keys": {
      "campaignCounts": "0x159"
    }
  },
  "Attribution-Reporting-Redirect": [
    "http://www.mmp-ad-tech.com"
  ]
 // Registered by mmp-ad-tech via redirect
 "Attribution-Reporting-Register-Source": {
    "source_event_id": "45453",
    "web_destination": "https://destination.example.com",
    "priority": "100",
    "expiry": "172801",
    "aggregation_keys": {
      "campaignCounts": "0x159",
      "geoValue": "0x5",
    }
  }

Na t1, o usuário clica em outro anúncio, resultando no Source3 da ad-tech2, que compartilha chaves de agregação:

 // Registered by ad-tech2
  "Attribution-Reporting-Register-Source": {
    "source_event_id": "978",
    "web_destination": "https://destination.example.com",
    "priority": "20",
    "expiry": "172801",
    "aggregation_keys": {
      "campaignCounts": "0x159",
      "geoValue": "0x5"
    },
    "shared_aggregation_keys": [
      "campaignCounts"
    ]
  }

Na t2, a ação/conversão do usuário gera o registro do acionador pela mmp-ad-tech, que contém a configuração de atribuição para a ad-tech2:

  "Attribution-Reporting-Register-Trigger": {
    "event_trigger_data": [
      {
        "trigger_data": "2",
        "priority": "101"
      }
    ],
    "aggregatable_trigger_data": [
      {
        "key_piece": "0x400",
        "source_keys": [
          "campaignCounts"
        ],
        "x_network_data": {
          "key_offset": 10
        }
      }
    ],
    "aggregatable_values": {
      "campaignCounts": 32768
    },
    "attribution_config": [
      {
        "source_network": "enrollment-id-ad-tech-2",
        "source_priority_range": {
          "start": 1,
          "end": 1000
        },
        "priority": "200",
        "expiry": "172800"
      }
    ],
    "x_network_key_mapping": {
      "enrollment-id-ad-tech-2": "0x4"
    }
  }

Resultado

A origem2 corresponde o registro e o destino ao acionador para se tornar uma fonte concorrente de atribuição. Além disso, durante o registro do acionador, uma configuração de atribuição foi especificada para a ad-tech2 e a Source3 usando as chaves de agregação de compartilhamento da Ad-tech2. Isso permite que uma origem derivada, Origem3', seja gerada como uma fonte concorrente para atribuição.

Origens concorrentes

Campos

Source2

Origem3'

Fonte original que registra a adtech

mmp-ad-tech

adtech2

source_event_id

45453

978

prioridade

100

200

Gatilhos registrados

Acionador 1 da mmp-ad-tech.

Resultado da atribuição

O Acionador1 é atribuído à Origem3' porque a Origem3' tem maior prioridade que a Origem2.

Fontes ignoradas post atribuição

Source2

Relatórios de eventos

Nenhum: os relatórios de eventos não são gerados para origens derivadas.

Relatórios agregados

A fonte mãe de Source3, ou seja, Source3, compartilha apenas campaignCounts. A chave do acionador é calculada da seguinte maneira:

(key_piece value) | ((x_network_key_mapping entry) << offset)
0x400 | (0x4 << 10) = 0x1400

Por fim, a chave resultante é gerada pela chave de acionador OR (0x1400) com a chave de origem (0x159), ou seja, 0x1559.

URL do relatório: http://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-aggregate-attribution

{
  "attribution_destination": "https://destination.example.com",
  "histograms": [
    {
     "key": "0x1559",
      "value": 32768
    }
  ]
}

Cenário 3: a fonte registrada do MMP e o candidato pai da fonte derivada na mesma cadeia de registro

Um anunciante está trabalhando com duas adtechs de veiculação e um MMP. Um usuário clica em um anúncio da primeira adtech veiculada, que não redireciona o registro da fonte, mas compartilha chaves de agregação com o MMP. O usuário clica em um anúncio da segunda adtech veiculada, que redireciona para o MMP no registro da fonte e compartilha as chaves de agregação com o MMP.

Cronograma de registros

No t0, o usuário clica em um anúncio veiculado pela ad-tech1, que inicia o registro da Source1:

 "Attribution-Reporting-Register-Source": {
    "source_event_id": "52343",
    "web_destination": "https://destination.example.com",
    "priority": "20",
    "expiry": "172800",
    "aggregation_keys": {
     "campaignCounts": "0x159",
     "geoValue": "0x5"
   },
   "shared_aggregation_keys": [
     "campaignCounts",
     "geoValue"
   ]
 }

Na t1, cadeia de registro 2, a ad-tech2 registra a Source2 e redireciona para o registro de uma fonte do MMP, Fonte3:

    "source_event_id": "234456",
    "web_destination": "https://destination.example.com",
    "priority": "20",
    "expiry": "172801",
    "aggregation_keys": {
      "campaignCounts": "0x159"
    },
    "shared_aggregation_keys": [
      "campaignCounts"
    ]
  },
  "Attribution-Reporting-Redirect": [
    "http://www.mmp-ad-tech.com"
  ]
  "Attribution-Reporting-Register-Source": {
    "source_event_id": "4234",
    "web_destination": "https://destination.example.com",
    "priority": "100",
    "expiry": "172800",
    "aggregation_keys": {
      "campaignCounts": "0x159"
    }
  }

Na t2, o registro do acionador tem a atribuição configurada para gerar origens derivadas da ad-tech1 e da ad-tech2:

  "Attribution-Reporting-Register-Trigger": {
    "event_trigger_data": [
      {
        "trigger_data": "2",
        "priority": "101"
      }
    ],
    "aggregatable_trigger_data": [
      {
        "key_piece": "0x400",
        "source_keys": [
          "campaignCounts"
        ],
        "x_network_data" : {
          "key_offset" : 10
        }
      }
    ],
    "aggregatable_values": {
      "campaignCounts": 32768,
      "geoValue": 1664
    },
    "attribution_config": [
      {
        "source_network": "enrollment-id-ad-tech-1",
        "source_priority_range": {
          "start": 1,
          "end": 1000
        },
        "priority": "20",
        "expiry": "172800"
      },
      {
        "source_network": "enrollment-id-ad-tech-2",
        "source_priority_range": {
          "start": 1,
          "end": 1000
        },
        "priority": "20",
        "expiry": "172800"
      }
    ],
    "x_network_key_mapping" : {
      "enrollment-id-ad-tech-1" : "0x2",
      "enrollment-id-ad-tech-2" : "0x4"
    }
  }

O resultado é que a fonte registrada no MMP na segunda cadeia de registro ganha a atribuição. O relatório agregado resultante será semelhante a este:

Resultado

A fonte derivada de Source2 (com "source_event_id": "234456") não participa da atribuição porque a mesma cadeia de registro também tem uma fonte registrada em mmp-ad-tech.

Origens concorrentes

Campos

Origem1

Source3

Fonte original que registra a adtech

ad-tech1

mmp-ad-tech

source_event_id

52343

4234

prioridade

20

100

Gatilhos registrados

Acionador 1 da mmp-ad-tech.

Resultado da atribuição

O Acionador 1 é atribuído à Origem3 porque a Origem3 tem prioridade mais alta que a Origem1'.

Fontes ignoradas post atribuição

Source1': a Source1 não vai mais ser considerada para criar uma fonte derivada para mmp-ad-tech.

Relatórios de eventos

URL do relatório: https://www.ad-tech1.com/.well-known/attribution-reporting/report-event-attribution

  {
    "attribution_destination": "https://destination.example.com",
    "scheduled_report_time": "800176400",
    "source_event_id": "4234",
    "trigger_data": "2",
    "source_type": "navigation",
    "randomized_trigger_rate": 0.0024263
  }
Relatórios agregados

URL do relatório: http://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-aggregate-attribution

{
  "report_url": "http://www.mmp-example.com",
  "payload": {
    "attribution_destination": "https://destination.example.com",
    "histograms": [
      {
        "key": "0x559"
        "value": 32768
      }
    ]
  }
}

Cenário 4: atribuição de várias redes sem redirecionamentos com critérios na seleção da origem

Um anunciante está trabalhando com quatro adtechs veiculadas e um MMP. Um usuário clica no anúncio de uma adtech que veicula anúncios e visualiza os anúncios das outras três. Quando um usuário faz uma conversão no app do anunciante, o MMP registra um acionador e especifica de quais origens registradas de adtech vão ser criadas origens derivadas, com base nos seguintes filtros:

  1. prioridade_intervalo: escolhe as fontes que têm prioridade no intervalo fornecido
  2. expiração: escolha fontes com expiração posterior à duração especificada
  3. source_filters: escolha as origens cujos filter_data correspondem aos source_filters especificados
  4. source_not_filters: escolha fontes com "not_filters" que correspondem aos "source_not_filters" especificados

Quando as fontes derivadas são geradas com base nos critérios, elas podem participar da atribuição.

Cronograma de registro

Em t0, um clique do usuário faz com que a ad-tech1 registre uma Source1 de origem, que associa source_type como navegação a essa fonte registrada:

  "Attribution-Reporting-Register-Source": {
    "source_event_id": "87456",
    "web_destination": "https://destination.example.com",
    "priority": "20",
    "expiry": "172801",
    "filter_data": {
      "filter1": [
        "does_not_matter"
      ],
      "filter2": [
        "non-match"
      ]
    },
    "aggregation_keys": {
      "campaignCounts": "0x119",
      "geoValue": "0x5"
    },
    "shared_aggregation_keys": [
      "campaignCounts",
      "geoValue"
    ]
  }

Na t1, o usuário visualiza o anúncio, fazendo com que a ad-tech2 registre uma Source2 de origem, que associa source_type como evento a essa fonte registrada:

  "Attribution-Reporting-Register-Source": {
    "source_event_id": "9078",
    "web_destination": "https://destination.example.com",
    "priority": "2000",
    "expiry": "172801",
    "filter_data": {
      "filter1": [
        "does_not_matter"
      ],
      "filter2": [
        "match"
      ]
    },
    "aggregation_keys": {
      "campaignCounts": "0x129",
      "geoValue": "0x5"
    },
    "shared_aggregation_keys": [
      "campaignCounts",
      "geoValue"
    ]
  }

Na t2, a visualização do usuário faz com que a ad-tech3 registre um Source3 de origem, que associa source_type como evento a essa fonte registrada:

  "Attribution-Reporting-Register-Source": {
    "source_event_id": "2413",
    "web_destination": "https://destination.example.com",
    "priority": "20",
    "filter_data": {
      "filter1": [
        "non-match"
      ],
      "filter2": [
        "non-match"
      ]
    },
    "aggregation_keys": {
      "campaignCounts": "0x159",
      "geoValue": "0x5"
    },
    "shared_aggregation_keys": [
      "campaignCounts",
      "geoValue"
    ]
  }

Na t3, a visualização do usuário faz com que a adtech4 registre uma Source4 de origem, que associa source_type como evento a essa fonte registrada:

  "Attribution-Reporting-Register-Source": {
    "source_event_id": "7567",
    "web_destination": "https://destination.example.com",
    "priority": "20",
    "filter_data": {
      "filter1": [
        "match"
      ],
      "filter2": [
        "match"
      ]
    },
    "aggregation_keys": {
      "campaignCounts": "0x169",
      "geoValue": "0x5"
    },
    "shared_aggregation_keys": [
      "campaignCounts",
      "geoValue"
    ]
  }

Na t4, a conversão do usuário faz com que a mmp-ad-tech registre um acionador com a configuração de atribuição para todas as outras fontes registradas dessas adtechs mencionadas acima:

  "Attribution-Reporting-Register-Trigger": {
    "event_trigger_data": [
      {
        "trigger_data": "2",
        "priority": "100"
      }
    ],
    "aggregatable_trigger_data": [
      {
        "key_piece": "0x400",
        "source_keys": [
          "campaignCounts"
        ]
      }
    ],
    "aggregatable_values": {
      "campaignCounts": 32768,
      "geoValue": 1664
    },
    "attribution_config": [
      {
        "source_network": "enrollment-id-ad-tech-1",
        "source_priority_range": {
          "start": 1,
          "end": 100
        },
        "source_filters": {
          "source_type": [
            "event"
          ]
        },
        "priority": "100",
        "expiry": "172801"
      },
      {
        "source_network": "enrollment-id-ad-tech-2",
        "source_priority_range": {
          "start": 1,
          "end": 1000
        },
        "source_filters": {
          "source_type": [
            "navigation"
          ]
        },
        "priority": "100",
        "expiry": "172801"
      },
      {
        "source_network": "enrollment-id-ad-tech-3",
        "source_priority_range": {
          "start": 1,
          "end": 1000
        },
        "source_filters": {
          "source_type": [
            "navigation"
          ],
          "filter1": [
            "match"
          ],
          "filter2": [
            "match"
          ]
        },
        "priority": "50",
        "expiry": "172801"
      },
      {
        "source_network": "enrollment-id-ad-tech-4",
        "source_priority_range": {
          "start": 1,
          "end": 1000
        },
        "source_filters": {
          "source_type": [
            "navigation"
          ],
          "filter1": [
            "match"
          ],
          "filter2": [
            "match"
          ]
        },
        "priority": "30",
        "expiry": "172801"
      }
    ],
    "x_network_key_mapping": {
      "enrollment-id-ad-tech-1": "0x1",
      "enrollment-id-ad-tech-2": "0x2",
      "enrollment-id-ad-tech-3": "0x3",
      "enrollment-id-ad-tech-4": "0x4"
    }
  }

Resultado

As seguintes origens não são consideradas qualificadas para gerar origens derivadas devido a critérios incompatíveis:

  1. A origem 1 não atende ao filtro "source_type":"event" na configuração de atribuição da adtech1
  2. A origem 2 tem prioridade definida como 2.000, que está fora do filtro de intervalo de prioridade da adtech2 (1.1000)
  3. A origem3 não corresponde ao valor de "filter2"
Origens concorrentes

Campos

Origem4'

Fonte original que registra a adtech

adtech4

source_event_id

7567

destino

https://destination.example.com

prioridade

30

validade

Tempo de registro + 2 dias

Gatilhos registrados

Acionador 1 da mmp-ad-tech.

Resultado da atribuição

O Acionador 1 é atribuído à Origem4' porque é a única fonte qualificada para atribuição

Fontes ignoradas post atribuição

Nenhum

Relatórios de eventos

Nenhuma: os relatórios de eventos não são gerados para um vencedor de origem derivada

Relatórios agregados

URL do relatório: http://www.mmp-ad-tech.com

{
  "attribution_destination": "https://example.com",
  "histograms": [
    {
      "key": "0x56d",
      "value": 32768
    },
    {
      "key": "0x5",
      "value": 1664
    }
  ]
}

Cenário 5: atribuição pós-instalação

Um anunciante está trabalhando com duas adtechs de veiculação e um MMP. Um usuário clica em um anúncio da primeira adtech e instala o app do anunciante. Durante a atribuição das conversões pós-instalação, a fonte derivada com atribuição de instalação prevalece sobre outras fontes, mesmo que elas tenham prioridades mais altas.

Cronograma de registro

No t0, a interação do usuário faz com que a ad-tech1 registre a Origem1:

  "Attribution-Reporting-Register-Source": {
    "source_event_id": "3645",
    "destination": "android-app://com.example.app",
    "priority": "20",
    "expiry": "172801",
    "install_attribution_window": "86400",
    "post_install_exclusivity_window": "864000",
    "aggregation_keys": {
      "campaignCounts": "0x119",
      "geoValue": "0x5"
    },
    "shared_aggregation_keys": [
      "campaignCounts",
      "geoValue"
    ]
  }

Em t1, o usuário instala o app com.example.app no dispositivo.

Na t2, a interação do usuário faz com que a ad-tech2 registre a Origem2:

  "Attribution-Reporting-Register-Source": {
    "source_event_id": "345789",
    "destination": "android-app://com.example.app",
    "priority": "100",
    "aggregation_keys": {
      "campaignCounts": "0x159",
      "geoValue": "0x5"
    },
    "shared_aggregation_keys": [
      "campaignCounts",
      "geoValue"
    ]
  }

Na t3, um acionador é registrado pela mmp-ad-tech com configurações de atribuição para ad-tech1 e ad-tech2:

  "Attribution-Reporting-Register-Trigger": {
    "event_trigger_data": [
      {
        "trigger_data": "2",
        "priority": "100"
      }
    ],
    "aggregatable_trigger_data": [
      {
        "key_piece": "0x400",
        "source_keys": [
          "campaignCounts"
        ]
      }
    ],
    "aggregatable_values": {
      "campaignCounts": 32768,
      "geoValue": 1664
    },
    "attribution_config": [
      {
        "source_network": "enrollment-id-ad-tech-1",
        "priority": "10",
        "expiry": "172801",
        "post_install_exclusivity_window": "172800"
      },
      {
        "source_network": "enrollment-id-ad-tech-2",
        "priority": "20",
        "expiry": "172801"
      }
    ],
    "x_network_key_mapping": {
      "enrollment-id-ad-tech-1": "0x1",
      "enrollment-id-ad-tech-2": "0x3"
    }
  }

Resultado

Foram geradas origens derivadas de Origem1 e Origem2, ou seja, Origem1' e Origem2', respectivamente, que competem pela atribuição.

Origens concorrentes

Campos

Origem1

Origem2

Fonte original que registra a adtech

ad-tech1

adtech2

source_event_id

3645

345789

destino

app-android://com.exemplo.app

app-android://com.exemplo.app

prioridade

10

20

Instalação do app Drove

sim

não

Gatilhos registrados

Acionador 1 da mmp-ad-tech.

Resultado da atribuição

O acionador 1 é atribuído à origem 1 porque gerou a instalação do app de destino. Observe que Source2' tinha uma prioridade mais alta.

Fontes ignoradas post atribuição

Source2: as origens derivadas não vão ser consideradas na atribuição dos acionadores registrados pela mmp-ad-tech.

Relatórios de eventos

Nenhuma: os relatórios de eventos não são gerados para um vencedor de origem derivada

Relatórios agregados

URL do relatório: http://www.mmp-ad-tech.com/.well-known/attribution-reporting/report-aggregate-attribution

{
  "attribution_destination": "android-app://com.example.app",
  "histograms": [
    {
      "key": "0x519",
      "value": 32768
    },
    {
      "key": "0x5",
      "value": 1664
    }
  ]
}

Cenário 6: perder uma vez, perder sempre

Se a ad-tech1 tiver uma fonte derivada que participou da atribuição do acionador da mmp-ad-tech e perdeu a atribuição, ela não vai ser usada para criar outra derivada para os acionadores da mmp-ad-tech depois. Veja um exemplo de linha do tempo:

  • Em t0, a Source1 da ad-tech1 está registrada com "priority": "10".
  • Em t1, a Source2 da ad-tech2 é registrada com "priority": "20".
  • Na t2, o Trigger1 da mmp-ad-tech é registrado com as configurações de atribuição da ad-tech1 e da ad-tech2.
  • Na t3, a atribuição para o Acionador1 ocorre quando a origem derivada da ad-tech2 ganha a atribuição, e a origem da ad-tech1 é ignorada.
  • Em t4, a Source3 da ad-tech3 está registrada com "priority": "5".
  • Na t5, o Trigger2 da mmp-ad-tech é registrado com as configurações da ad-tech1 e da ad-tech3.
  • Na t6, a atribuição para o Acionador 2 ocorre, em que a origem derivada da Origem3 (Source3') ganha a atribuição.

Explicação do resultado

A origem derivada da ad-tech1 perdeu a atribuição para o Acionador1. Por isso, ela não foi usada para criar outra para a atribuição do Acionador2. Se não tivesse perdido antes na t3, teria ganhado a fonte da ad-tech3 por ter uma prioridade mais alta.