Modelování atribucí pomocí tabulky tras

Tabulky *_paths poskytují statistiky o interakcích, které uživatelé uskutečnili s vašimi médii spravovanými prostřednictvím služeb Display & Video 360 a Campaign Manager 360. Tyto interakce (označované také jako kontaktní body) jsou seskupeny do tras událostí, které představují chronologický postup skupiny uživatelů po konverzní cestě. Data v tabulkách *_paths využívají stejná data, jaká máte k dispozici pomocí funkce Přenos dat, jsou vám ale předkládána v předem sestavených trasách. Trasy událostí jsou dostupné pro uživatele s konverzí i bez konverze a mohou zahrnovat několik konverzí.

Stejně jako na všechny údaje o uživatelích se i na data v tabulkách *_paths ve službě Ads Data Hub vztahují požadavky na agregaci.

Technické podrobnosti

Každý řádek tabulky paths obsahuje jednu cestu zákazníka za třicetidenní období. Tato data jsou aktualizována denně tak, aby pokrývala posledních 30 dní. Trasy událostí jsou sestavovány pomocí souborů cookie, takže jsou omezeny na jedno zařízení. V některých případech, například když se uživatel odhlásí od personalizace reklam, bude ID uživatele nastaveno na 0. Za normálních okolností budou i tito uživatelé odděleni řádkem, takže dvě různé konverzní trasy spárované klíčem s ID uživatele 0 budou v samostatných řádcích. Při určitých typech analýz – například při sdružování podle user_id = 0 — však bude několik konverzních tras sloučeno do jedné, což může do vašich dat vnést nesoulad. Další informace o nulových ID uživatele

Každý řádek sloupce *_paths.events obsahuje pole struktur, kde každá struktura představuje jednu událost na uživatelově cestě. Struktury, z nichž je cesta sestavena, jsou uspořádány podle časového razítka. První událost v poli je nejstarší.

Ukázkové dotazy

Níže uvedené dotazy měří vliv umístění na uskutečnění konverze určitým segmentem uživatelů. Kredit za konverzi připisují dotazy pomocí tří různých atribučních modelů:

  • První kontakt: veškerý kredit je přidělen prvnímu kontaktnímu bodu.
  • Poslední kontakt: veškerý kredit je přidělen poslednímu kontaktnímu bodu.
  • Lineární: kredit je mezi kontaktní body rovnoměrně rozdělen.

Ukázková data

Řádek user_id *_paths.events.event_time *_paths.events.event_type *_paths.events.placement_id
1 1 1563384139 FLOODLIGHT null
1563384129 CLICK 11
1563384119 VIEW 22
2 2 1563384139 FLOODLIGHT null
1563384129 VIEW 11
1563384119 FLOODLIGHT null
1563384109 VIEW 11

Ukázkové dotazy

/* Substitute *_paths for the specific paths table that you want to query. */
SELECT
 
(
 
SELECT
    attributed_event_metadata
.placement_id
 
FROM (
   
SELECT
     
AS STRUCT attributed_event.placement_id,
      ROW_NUMBER
() OVER(ORDER BY attributed_event.event_time ASC) AS rank
   
FROM
      UNNEST
(t.*_paths.events) AS attributed_event
   
WHERE
      attributed_event
.event_type != "FLOODLIGHT"
     
AND attributed_event.event_time < conversion_event.event_time
     
AND attributed_event.event_time > (
     
SELECT
        IFNULL
( (
         
SELECT
            MAX
(prev_conversion_event.event_time) AS event_time
         
FROM
            UNNEST
(t.*_paths.events) AS prev_conversion_event
         
WHERE
            prev_conversion_event
.event_type = "FLOODLIGHT"
           
AND prev_conversion_event.event_time < conversion_event.event_time),
         
0)) ) AS attributed_event_metadata
 
WHERE
    attributed_event_metadata
.rank = 1) AS placement_id,
  COUNT
(*) AS credit
FROM
  adh
.*_paths AS t,
  UNNEST
(*_paths.events) AS conversion_event
WHERE
  conversion_event
.event_type = "FLOODLIGHT"
GROUP BY
  placement_id
HAVING
  placement_id
IS NOT NULL
ORDER BY
  credit
DESC
/* Substitute *_paths for the specific paths table that you want to query. */
SELECT
 
(
 
SELECT
    attributed_event_metadata
.placement_id
 
FROM (
   
SELECT
     
AS STRUCT attributed_event.placement_id,
      ROW_NUMBER
() OVER(ORDER BY attributed_event.event_time DESC) AS rank
   
FROM
      UNNEST
(t.*_paths.events) AS attributed_event
   
WHERE
      attributed_event
.event_type != "FLOODLIGHT"
     
AND attributed_event.event_time < conversion_event.event_time
     
AND attributed_event.event_time > (
     
SELECT
        IFNULL
( (
         
SELECT
            MAX
(prev_conversion_event.event_time) AS event_time
         
FROM
            UNNEST
(t.*_paths.events) AS prev_conversion_event
         
WHERE
            prev_conversion_event
.event_type = "FLOODLIGHT"
           
AND prev_conversion_event.event_time < conversion_event.event_time),
         
0)) ) AS attributed_event_metadata
 
WHERE
    attributed_event_metadata
.rank = 1) AS placement_id,
  COUNT
(*) AS credit
FROM
  adh
.*_paths AS t,
  UNNEST
(*_paths.events) AS conversion_event
WHERE
  conversion_event
.event_type = "FLOODLIGHT"
GROUP BY
  placement_id
HAVING
  placement_id
IS NOT NULL
ORDER BY
  credit
DESC
/* Substitute *_paths for the specific paths table that you want to query. */
SELECT
  attributed_event_metadata
.placement_id AS placement_id,
 
/* Give equal credit to all attributed events */
  SUM
(SAFE_DIVIDE(1, ARRAY_LENGTH(attributed_events_metadata)))
FROM (
 
SELECT
    ARRAY
(
   
SELECT
     
AS STRUCT attributed_event.placement_id,
      ROW_NUMBER
() OVER(ORDER BY attributed_event.event_time DESC) AS rank
   
FROM
      UNNEST
(t.*_paths.events) AS attributed_event
   
WHERE
      attributed_event
.event_type!="FLOODLIGHT"
     
AND attributed_event.event_time < conversion_event.event_time
     
AND attributed_event.event_time > (
     
SELECT
        MAX
(prev_conversion_event.event_time) AS event_time
     
FROM
        UNNEST
(t.*_paths.events) AS prev_conversion_event
     
WHERE
        prev_conversion_event
.event_type="FLOODLIGHT"
       
AND prev_conversion_event.event_time < conversion_event.event_time)) AS attributed_events_metadata
 
FROM
    adh
.*_paths AS t,
    UNNEST
(*_paths.events) AS conversion_event
 
WHERE
    conversion_event
.event_type="FLOODLIGHT" ),
  UNNEST
(attributed_events_metadata) AS attributed_event_metadata
GROUP BY
 
1
HAVING
  placement_id
IS NOT NULL
ORDER BY
 
2 DESC

Výsledky

Pokud byste tento dotaz spustili na ukázkových datech, dostali byste tyto výsledky:

řádek placement_id kredit
1 11 2
2 22 1
řádek placement_id kredit
1 11 3
řádek placement_id kredit
1 11 2,5
2 22 0,5