Attributionsmodellierung mit der Pfadtabelle

Die *_paths-Tabellen geben Aufschluss über Nutzerinteraktionen mit Medien, die Sie in Display & Video 360 und Campaign Manager 360 verwalten. Diese Interaktionen (auch als Touchpoints bezeichnet) werden zu Ereignispfaden zusammengeführt, um den Pfad einer Nutzergruppe durch Ihren Conversion-Trichter zu erfassen. Die Daten in den *_paths-Tabellen entsprechen denen, die Ihnen über die Datenübertragung zur Verfügung stehen, werden Ihnen aber über vorab zusammengestellte Pfade bereitgestellt. Ereignispfade sind für Nutzer mit und ohne Conversion verfügbar und können mehrere Conversions enthalten.

Wie bei allen Nutzerdaten in Ads Data Hub gelten für die Daten aus den *_paths-Tabellen bestimmte Aggregationsanforderungen.

Technische Details

Jede Zeile von paths enthält einen einzelnen Kaufprozess in einem 30-Tage-Zeitraum. Diese Daten werden täglich aktualisiert und beziehen sich jeweils auf die letzten 30 Tage. Ereignispfade werden mithilfe von Cookies zusammengestellt und sind daher auf ein einzelnes Gerät beschränkt. In bestimmten Situationen, z. B. wenn der Nutzer personalisierte Werbung deaktiviert hat, wird die Nutzer-ID auf null gesetzt. Normalerweise werden diese Nutzer trotzdem nach Zeilen getrennt, sodass zwei unterschiedliche Conversion-Pfade mit der Nutzer-ID 0 in separaten Zeilen sind. Bei bestimmten Analysetypen, z. B. bei der Gruppierung nach user_id = 0, werden jedoch mehrere Conversion-Pfade zu einem zusammengeführt. Dies könnte zu Abweichungen bei den Daten führen. Weitere Informationen zu auf null gesetzten Nutzer-IDs

Jede Zeile der Spalte *_paths.events enthält ein Array mit Strukturen, wobei jede Struktur ein einzelnes Ereignis im Nutzerpfad ist. Die Strukturen des Pfads sind nach Zeitstempel geordnet, wobei das erste Ereignis im Array das älteste ist.

Beispielabfragen

Mit den folgenden Abfragen wird die Auswirkung von Placements auf die Conversions bei einem bestimmten Nutzersegment gemessen. In den Abfragen wird der Beitrag zur Conversion mithilfe von drei verschiedenen Attributionsmodellen zugeordnet:

  • Erste Interaktion: Der gesamte Wert wird dem ersten Touchpoint zugeordnet.
  • Letzte Interaktion: Der gesamte Wert wird dem letzten Touchpoint zugeschrieben.
  • Linear: Die Beiträge werden gleichmäßig auf die Touchpoints aufgeteilt.

Beispieldaten

Zeile 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

Beispielabfragen

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

Ergebnisse

Wenn Sie die Abfrage für die Beispieldaten ausführen, erhalten Sie folgende Ergebnisse:

Zeile placement_id Beitrag
1 11 2
2 22 1
Zeile placement_id Beitrag
1 11 3
Zeile placement_id Beitrag
1 11 2,5
2 22 0,5