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 ve vašich datech vytvořit 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

První kontakt

/* 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

Poslední kontakt

/* 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

Lineární

/* 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:

První kontakt

řádek placement_id kredit
1 11 2
2 22 1

Poslední kontakt

řádek placement_id kredit
1 11 3

Lineární

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