Dieser Artikel enthält Beispiele zum Erstellen von Abfragen für Ad Manager-Datenübertragungsberichte. Weitere Informationen zu Datenübertragungsdateien und ihren Empfang
Dieser Artikel hieß in der englischen Version früher „Data Transfer Cookbook“.
Alles maximieren Alles minimieren
Nicht gefüllte Impressionen
Nicht gefüllte Impressionen aus NetworkImpressions
Um die Anzahl der nicht gefüllten Impressionen für einen Tag zu ermitteln, fragen Sie NetworkImpressions
für Einträge ab, bei denen LineItemID
den Wert 0
hat. In NetworkBackfillImpressions
sind keine nicht gefüllten Impressionen enthalten.
Code
SELECT COUNT(1) AS UnfilledImpressions FROM NetworkImpressions WHERE LineItemID = 0 AND Time >= ‘2020-01-01’ AND Time < ‘2020-01–02’
Ergebnisse
Zeile | UnfilledImpressions |
1 | 20000000 |
Nicht gefüllte Impressionen aus NetworkRequests
Sie können die Anzahl der nicht gefüllten Impressionen auch durch die Abfrage von NetworkRequests
ermitteln. Suchen Sie nach Anfragen, bei denen IsFilledRequest
den Wert „false“ hat. In NetworkBackfillRequests
sind keine nicht gefüllten Impressionen enthalten.
Code
SELECT COUNT(1) AS UnfilledImpressions FROM NetworkRequests WHERE NOT IsFilledRequest AND Time >= '2020-01-01' AND Time < '2020-01-02'
Ergebnisse
Zeile | UnfilledImpressions |
1 | 20000000 |
Nicht gefüllte Impressionen nach URL
In der Ad Manager-Berichterstellung können nicht gefüllte Impressionen nach Anzeigenblock oder angeforderter Größe aufgeführt werden, aber nicht nach URL. Mit RefererURL
können Sie die zehn Seiten mit den meisten nicht gefüllten Impressionen ermitteln.
Code
SELECT RefererURL, COUNT(1) AS UnfilledImpressions FROM NetworkImpressions WHERE LineItemID = 0 AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY RefererURL ORDER BY UnfilledImpressions DESC LIMIT 10
Ergebnisse
Zeile | RefererURL |
UnfilledImpressions |
1 | http://example.com/ | 4903691 |
2 | http://example.com/url/a | 748271 |
3 | http://example.com/url/b | 383293 |
4 | http://example.com/url/c | 364355 |
5 | http://example.com/url/d | 326495 |
6 | http://example.net/ | 295346 |
7 | http://example.net/url/a | 291043 |
8 | http://example.net/url/b | 276106 |
9 | http://example.net/url/c | 231169 |
10 | http://example.net/url/d | 194988 |
Nicht gefüllte Impressionen nach Anzeigenblock
Suchen Sie die Anzeigenblöcke, die für die meisten nicht gefüllten Impressionen auf einer einzelnen Seite verantwortlich sind. Wenn Sie den BigQuery-Connector verwenden, verwenden Sie die Match-Table für Anzeigenblöcke, um den Namen der Anzeigenblöcke zu ermitteln. Da die Match-Table Anzeigenblockdaten für jeden Tag enthält, sollten Sie die Match-Table-Daten auf einen einzelnen Tag beschränken.
Code
SELECT AdUnitID, Name AS AdUnitName, COUNT(1) AS UnfilledImpressions FROM NetworkImpressions AS NI INNER JOIN MatchTableAdUnit AS MTAU ON AdUnitID = ID AND LineItemID = 0 AND Time >= '2020-01-01' AND Time < '2020-01-02' AND RefererURL = 'https://example.com/' AND MTAU._DATA_DATE = '2020-01-01' GROUP BY AdUnitID, AdUnitName ORDER BY UnfilledImpressions DESC, AdUnitID LIMIT 10
Ergebnisse
Zeile | AdUnitID |
AdUnitName |
UnfilledImpressions |
1 | 95730695 | Name der letzten Ebene A | 1123439 |
2 | 95033015 | Name der letzten Ebene B | 1116622 |
3 | 95033615 | Name der letzten Ebene C | 1102641 |
4 | 95049575 | Name der letzten Ebene D | 772235 |
5 | 95734535 | Name der letzten Ebene E | 744777 |
6 | 95584895 | Name der letzten Ebene F | 27593 |
7 | 95045255 | Name der letzten Ebene G | 7482 |
8 | 95343215 | Name der letzten Ebene H | 1925 |
9 | 94977215 | Name der letzten Ebene I | 19 |
10 | 95033375 | Name der letzten Ebene J | 12 |
Impressionen
Impressionen nach Product
und DealType
Mit den Feldern Product
und DealType
in der Datenübertragung können Sie Berichte erstellen, die mit Ad Manager-Berichten vergleichbar sind, in denen die Dimensionen "Nachfragechannel", "Programmatischer Channel" und "Optimierungstyp" verwendet werden. Wählen Sie Impressionen aus NetworkImpressions
(wobei LineItemID
nicht null ist) und NetworkBackfillImpressions
aus.
Code
SELECT Product, DealType, COUNT(1) AS Impressions FROM NetworkImpressions WHERE LineItemID != 0 AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY Product, DealType UNION ALL SELECT Product, DealType, COUNT(1) AS Impressions FROM NetworkBackfillImpressions WHERE Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY Product, DealType ORDER BY Product, DealType
Ergebnisse
Zeile | Product |
DealType |
Anzahl |
1 | Ad Exchange | null | 60000000 |
2 | Ad Exchange | Private Auktion | 2000000 |
3 | Ad-Server | null | 40000000 |
4 | Ad-Server | Preferred Deal | 1000000 |
5 | Ad-Server | Programmatisch garantiert | 1200000 |
6 | Anzeigenplattform-Gebote | null | 15000000 |
7 | Anzeigenplattform-Gebote | Preferred Deal | 20000 |
8 | Anzeigenplattform-Gebote | Private Auktion | 500000 |
9 | Vorschau | null | 100000 |
Berichtsparameter
Erstellen Sie in Ad Manager-Berichterstellung einen Bericht mit demselben Datum. Wählen Sie die folgenden Dimensionen und Messwerte aus:
- Dimensionen:
- Nachfragechannel
- Programmatischer Channel
- Optimierungstyp
- Messwerte:
- Impressionen insgesamt
- Impressionen insgesamt
Ergebnisse
Zeile | Nachfragechannel | Programmatischer Channel | Optimierungstyp | Impressionen insgesamt |
1 | Open Bidding | Offene Auktion | Jeglicher sonstiger Traffic | 9.000.000 |
2 | Open Bidding | Offene Auktion | Optimierter Wettbewerb | 7.000 |
3 | Open Bidding | Offene Auktion | Ziel-CPM | 5.993.000 |
4 | Open Bidding | Preferred Deals | Jeglicher sonstiger Traffic | 20.000 |
5 | Open Bidding | Private Auktion | Jeglicher sonstiger Traffic | 496.000 |
6 | Open Bidding | Private Auktion | Optimierter Wettbewerb | 4.000 |
7 | Ad-Server | (Nicht zutreffend) | Jeglicher sonstiger Traffic | 40.000.000 |
8 | Ad-Server | Preferred Deals | Jeglicher sonstiger Traffic | 1.000.000 |
9 | Ad-Server | Programmatisch garantiert | Jeglicher sonstiger Traffic | 1.200.000 |
10 | Ad Exchange | Offene Auktion | Jeglicher sonstiger Traffic | 48.000.000 |
11 | Ad Exchange | Offene Auktion | Vorschau | 100.000 |
12 | Ad Exchange | Offene Auktion | Optimierter Wettbewerb | 10.000 |
13 | Ad Exchange | Offene Auktion | Ziel-CPM | 11.990.000 |
14 | Ad Exchange | Private Auktion | Jeglicher sonstiger Traffic | 1.995.000 |
15 | Ad Exchange | Private Auktion | Optimierter Wettbewerb | 5.000 |
Direkt
- Datenübertragung:
Product
=Ad Server
DealType
istnull
- Zeile 3: 40.000.000
- Ad Manager-Berichterstellung:
- Nachfragechannel = „Ad-Server“
- Programmatischer Channel = „(Nicht zutreffend)“
- Optimierungstyp = „Jeglicher sonstiger Traffic“
- Zeile 7: 40.000.000
Preferred Deals
- Datenübertragung:
Product
=Ad Server
DealType
istPreferred Deal
- Zeile 4: 1.000.000
- Ad Manager-Berichterstellung:
- Nachfragechannel = „Ad-Server“
- Programmatischer Channel = „Preferred Deals“
- Optimierungstyp = „Jeglicher sonstiger Traffic“
- Zeile 8: 1.000.000
- Datenübertragung:
Product
=Exchange Bidding
DealType
istPreferred Deal
- Zeile 7: 20.000
-
- Ad Manager-Berichterstellung:
- Nachfragechannel = „Open Bidding“
- Programmatischer Channel = „Preferred Deals“
- Optimierungstyp = „Jeglicher sonstiger Traffic“
- Zeile 4: 20.000
Programmatisch garantiert
- Datenübertragung:
Product
=Ad Server
DealType
istProgrammatic Guaranteed
.- Zeile 5: 1.200.000
- Ad Manager-Berichterstellung:
- Nachfragechannel = „Ad-Server“
- Programmatischer Channel = „Programmatisch garantiert“
- Optimierungstyp = „Jeglicher sonstiger Traffic“
- Zeile 9: 1.200.000
Ad Exchange – Offene Auktion („Vorschau“ ausgenommen)
- Datenübertragung:
Product
=Ad Exchange
DealType
istnull
- Zeile 1: 60.000.000
- Ad Manager-Berichterstellung:
- Nachfragechannel = „Ad Exchange“
- Programmatischer Channel = „Offene Auktion“
- Optimierungstyp = "Jeglicher sonstiger Traffic", "Ziel-CPM", "Optimierter Wettbewerb"
- Zeile 10, Zeile 12 und Zeile 13 insgesamt: 48.000.000 + 10.000 + 11.990.000 = 60.000.000
Ad Exchange – Private Auktion
- Datenübertragung:
Product
=Ad Exchange
DealType
istPrivate Auction
- Zeile 2: 2.000.000
- Ad Manager-Berichterstellung:
- Nachfragechannel = „Ad Exchange“
- Programmatischer Channel = „Private Auktion“
- Optimierungstyp = "Jeglicher sonstiger Traffic", "Optimierter Wettbewerb"
- Zeile 14 und 15 Zeile insgesamt: 1.995.000 + 5.000 = 2.000.000
Open Bidding – Offene Auktion
- Datenübertragung:
Product
=Exchange Bidding
DealType
istnull
- Zeile 6: 15.000.000
- Ad Manager-Berichterstellung:
- Nachfragechannel = „Open Bidding“
- Programmatischer Channel = „Offene Auktion“
- Optimierungstyp = "Jeglicher sonstiger Traffic", "Ziel-CPM", "Optimierter Wettbewerb"
- Zeile 1, Zeile 2 und Zeile 3 insgesamt: 9.000.000 + 7.000 + 5.993.000 = 15.000.000
Open Bidding – Private Auktion
- Datenübertragung:
Product
=Exchange Bidding
DealType
istPrivate Auction
- Zeile 8: 500.000
- Ad Manager-Berichterstellung:
- Nachfragechannel = „Open Bidding“
- Programmatischer Channel = „Private Auktion“
- Optimierungstyp = "Jeglicher sonstiger Traffic", "Optimierter Wettbewerb"
- Zeile 5 und 6 insgesamt: 496.000 + 4.000 = 500.000
Vorschau
- Datenübertragung:
Product
=First Look
DealType
istnull
- Zeile 9: 100.000
- Ad Manager-Berichterstellung:
- Nachfragechannel = „Ad Exchange“
- Programmatischer Channel = „Offene Auktion“
- Optimierungstyp = "Vorschau"
- Zeile 11: 100.000
Umsatz
Umsatz für eine CPM-Werbebuchung
Die Datei NetworkImpressions
enthält keine Umsatzdaten. Wenn Sie jedoch den BigQuery-Connector verwenden, können Sie den CPM-Preis mithilfe der Werbebuchungs-Match-Table ermitteln. Andernfalls können Sie mit der Ad Manager API den Preis einer Werbebuchung bestimmen. Wenn Sie den Umsatz für eine bestimmte CPM-Werbebuchung für einen bestimmten Zeitraum ermitteln möchten, zählen Sie die Impressionen, multiplizieren Sie mit dem Preis und teilen Sie das Ergebnis durch 1.000. Da die Match-Table Anzeigenblockdaten für jeden Tag enthält, sollten Sie die Match-Table-Daten auf einen einzelnen Tag beschränken.
Code
WITH Impression_Data AS ( SELECT LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE LineItemID = 123456789 AND Time >= '2020-01-01' AND Time < '2020-01-11' GROUP BY LineItemID ) SELECT LineItemID, Impressions, CostPerUnitInNetworkCurrency AS Rate, CostType, ((Impressions * CostPerUnitInNetworkCurrency) / 1000) AS Revenue FROM Impression_Data JOIN MatchTableLineItem ON LineItemID = ID WHERE MatchTableLineItem._DATA_DATE = '2020-01-10'
Ergebnisse
Zeile | LineItemID |
Impressions |
Rate |
CostType |
Revenue |
1 | 123456789 | 21324 | 3,5 | CPM | 74,634 |
Umsatz für eine CPD-Werbebuchung
Wie bei CPM-Werbebuchungen können Sie die Werbebuchungs-Match-Table oder die Ad Manager API verwenden, um den CPD-Preis einer Werbebuchung zu ermitteln. Da die Match-Table Anzeigenblockdaten für jeden Tag enthält, sollten Sie die Match-Table-Daten auf einen einzelnen Tag beschränken. Um den Umsatz für eine bestimmte CPD-Werbebuchung zu ermitteln, zählen Sie die Anzahl der Tage, an denen die Impressionen erzielt wurden, und multiplizieren Sie mit dem Preis. Sie können auch die Anzahl der erzielten Impressionen einbeziehen, um den durchschnittlichen eCPM zu ermitteln.
Code
WITH Impression_Data AS ( SELECT SUBSTR(Time, 0, 10) AS Date, LineItemID, CostPerUnitInNetworkCurrency AS Rate, CostType, COUNT(1) AS Impressions FROM NetworkImpressions JOIN MatchTableLineItem ON LineItemID = ID WHERE LineItemID = 123456789 AND MatchTableLineItem._DATA_DATE = '2020-01-01' GROUP BY Date, LineItemID, Rate, CostType ) SELECT LineItemID, COUNT(1) AS Days, CostType, Rate, (COUNT(1) * Rate) AS Revenue, SUM(Impressions) AS Impressions, ROUND((COUNT(1) * Rate) / SUM(Impressions) * 1000, 2) AS Average_eCPM FROM Impression_Data GROUP BY LineItemID, CostType, Rate
Ergebnisse
Zeile | LineItemID |
Days |
CostType |
Rate |
Revenue |
Impressions |
Average_eCPM |
1 | 123456789 | 5 | CPD | 4000,0 | 20000,0 | 7000000 | 2,86 |
Umsatz für eine CPC-Werbebuchung
Wie bei CPM-Werbebuchungen können Sie die Werbebuchungs-Match-Table oder die Ad Manager API verwenden, um den CPC-Preis einer Werbebuchung zu ermitteln. Da die Match-Table Anzeigenblockdaten für jeden Tag enthält, sollten Sie die Match-Table-Daten auf einen einzelnen Tag beschränken. Um den Umsatz für eine bestimmte CPC-Werbebuchung für einen bestimmten Zeitraum zu ermitteln, zählen Sie die Klicks und multiplizieren Sie mit dem Preis. Sie können auch die Anzahl der erzielten Impressionen einbeziehen, um den durchschnittlichen eCPM zu ermitteln.
Code
WITH Impression_Data AS ( SELECT LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE LineItemID = 123456789 GROUP BY LineItemID ), Click_Data AS ( SELECT LineItemID, CostPerUnitInNetworkCurrency AS Rate, CostType, COUNT(1) AS Clicks FROM NetworkClicks JOIN MatchTableLineItem ON LineItemID = ID WHERE LineItemID = 123456789 AND MatchTableLineItem._DATA_DATE = '2020-01-01' GROUP BY LineItemID, Rate, CostType ) SELECT LineItemID, CostType, Impressions, Clicks, ROUND(Clicks / Impressions * 100, 2) AS CTR, Rate, (Clicks * Rate) AS Revenue, ROUND((Clicks * Rate) / Impressions * 1000, 2) AS Average_eCPM FROM Impression_Data JOIN Click_Data USING (LineItemID)
Ergebnisse
Zeile | LineItemID |
CostType |
Impressions |
Klicks |
CTR |
Rate |
Revenue |
Average_eCPM |
1 | 123456789 | CPC | 140000 | 23 | 0,02 | 15,5 | 356,5 | 2,55 |
Umsatz für eine vCPM-Werbebuchung
Wie bei CPM-Werbebuchungen können Sie die Werbebuchungs-Match-Table oder die Ad Manager API verwenden, um den vCPM-Preis einer Werbebuchung zu ermitteln. Da die Match-Table Anzeigenblockdaten für jeden Tag enthält, sollten Sie die Match-Table-Daten auf einen einzelnen Tag beschränken. Um den Umsatz für eine bestimmte vCPM-Werbebuchung zu ermitteln, zählen Sie die sichtbaren Impressionen aus NetworkActiveViews
und multiplizieren Sie sie mit dem Preis. Sie können auch die Anzahl der erzielten Impressionen einbeziehen, um den durchschnittlichen eCPM zu ermitteln.
Code
WITH Active_View_Data AS ( SELECT LineItemID, COUNT(1) AS ViewableImpressions FROM NetworkActiveViews WHERE LineItemID = 123456789 GROUP BY LineItemID ), Impression_Data AS ( SELECT LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE LineItemID = 123456789 GROUP BY LineItemID ) SELECT Active_View_Data.LineItemID, CostType, Impressions, ViewableImpressions, CostPerUnitInNetworkCurrency AS Rate, (CostPerUnitInNetworkCurrency * ViewableImpressions / 1000) AS Revenue, ROUND((CostPerUnitInNetworkCurrency * ViewableImpressions / 1000) / Impressions * 1000, 2) AS Average_eCPM FROM Impression_Data JOIN Active_View_Data USING (LineItemID) JOIN MatchTableLineItem ON Active_View_Data.LineItemID = ID WHERE MatchTableLineItem._DATA_DATE = '2020-08-01'
Ergebnisse
Zeile | LineItemID |
CostType |
Impressions |
ViewableImpressions |
Rate |
Revenue |
Average_eCPM |
1 | 123456789 | CPMAV | 500000 | 150000 | 10 | 1500,0 | 3,0 |
Umsatz für einen Werbetreibenden
Um den Umsatz für einen bestimmten Werbetreibenden für einen bestimmten Zeitraum zu ermitteln, multiplizieren Sie die Impressionen für jede Werbebuchung mit dem Preis. Verwenden Sie die Werbebuchungs-Match-Table, um den Preis zu finden, und die Unternehmens-Match-Table, um den Namen des Werbetreibenden zu finden.
Code
WITH Impression_Data AS ( SELECT AdvertiserID, LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE AdvertiserID = 111222333 AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY AdvertiserID, LineItemID ) SELECT AdvertiserID, MTC.Name AS CompanyName, LineItemID, Impressions, CostPerUnitInNetworkCurrency AS Rate, CostType, ((Impressions * CostPerUnitInNetworkCurrency) / 1000) AS Revenue FROM Impression_Data JOIN MatchTableLineItem AS MTLI ON LineItemID = MTLI.ID JOIN MatchTableCompany AS MTC ON AdvertiserID = MTC.ID WHERE MTLI._DATA_DATE = '2020-01-01' AND MTC._DATA_DATE = '2020-01-01'
Ergebnisse
Zeile | AdvertiserID |
CompanyName |
LineItemID |
Impressions |
Rate |
CostType |
Revenue |
1 | 111222333 | ABC | 111111111 | 20212 | 5,0 | CPM | 101,06 |
2 | 111222333 | ABC | 222222222 | 58321 | 3,0 | CPM | 174,963 |
3 | 111222333 | ABC | 333333333 | 82772 | 8,5 | CPM | 703,562 |
4 | 111222333 | ABC | 444444444 | 19003 | 3,25 | CPM | 61,7597 |
Codeübermittlungen
Bei Netzwerken mit aktiviertem Fallback wird bei der Datenübertragung für jede in der Fallback-Kette ausgewählte Werbebuchung eine Codeübermittlung gezählt, während dies bei der Ad Manager-Berichterstellung nur für die erste in der Fallback-Kette ausgewählte Werbebuchung erfolgt. Bei der Datenübertragung wird auch eine Codeübermittlung für Companion-Anzeigen gezählt, bei der Ad Manager-Berichterstellung dagegen nicht. Wenn die Ergebnisse des Datenübertragungsberichts möglichst genau mit dem Ad Manager-Bericht übereinstimmen sollen, werden nur Codeübermittlungen gezählt, bei denen VideoFallbackPosition = 0
ist und IsCompanion
den Wert false
hat. Vermittlungscodeübermittlungen bei der Datenübertragung stimmen möglicherweise nicht mit den Vermittlungscodeübermittlungen bei der Ad Manager-Berichterstellung überein. Je nach Implementierung kann sich die Anzahl der Codeübermittlungen bei der Datenübertragung und bei der Ad Manager-Berichterstellung unterscheiden.
Codeübermittlungen, Impressionen und Renderingrate nach Werbebuchung für einen einzelnen Werbetreibenden
Ermitteln Sie, wie oft Codeübermittlungen für jede Werbebuchung eines direkten Werbetreibenden zu Impressionen führen. Da es sich um einen direkten Werbetreibenden handelt, sind diese Codeübermittlungen nur in NetworkCodeServes
und die Impressionen nur in NetworkImpressions
enthalten.
Code
WITH Code_Serve_Data AS ( SELECT LineItemID, COUNT(1) AS CodeServes FROM NetworkCodeServes WHERE AdvertiserID = 12345678 AND VideoFallbackPosition = 0 AND IsCompanion IS FALSE AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY LineItemID ), Impression_Data AS ( SELECT LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE AdvertiserID = 12345678 AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY LineItemID ) SELECT LineItemID, CodeServes, Impressions, ROUND((Impressions / CodeServes) * 100, 2) AS RenderRate FROM Code_Serve_Data JOIN Impression_Data USING (LineItemID) ORDER BY RenderRate DESC
Ergebnisse
Zeile | LineItemID |
CodeServes |
Impressions |
RenderRate |
1 | 1111111111 | 6000 | 2600 | 43,33 |
2 | 2222222222 | 1000000 | 371200 | 37,12 |
3 | 3333333333 | 50000 | 17550 | 35,1 |
4 | 4444444444 | 800000 | 275000 | 34,38 |
5 | 5555555555 | 1500000 | 400000 | 26,66 |
Codeübermittlungen, Impressionen und Renderingrate nach Gerätekategorie und ausgelieferter Creative-Größe
Schließen Sie die Gerätekategorie und die ausgelieferte Creative-Größe ein, um zu sehen, wie die Renderingraten für einen einzelnen Auftrag eines Werbetreibenden variieren.
Code
WITH Code_Serve_Data AS ( SELECT LineItemID, CreativeSizeDelivered, DeviceCategory, COUNT(1) AS CodeServes FROM NetworkCodeServes WHERE AdvertiserID = 87654321 AND OrderID = 1111111111 AND VideoFallbackPosition = 0 AND IsCompanion IS FALSE GROUP BY LineItemID, CreativeSizeDelivered, DeviceCategory ), Impression_Data AS ( SELECT LineItemID, CreativeSizeDelivered, DeviceCategory, COUNT(1) AS Impressions FROM NetworkImpressions WHERE AdvertiserID = 87654321 AND OrderID = 1111111111 GROUP BY LineItemID, CreativeSizeDelivered, DeviceCategory ) SELECT LineItemID, DeviceCategory, CreativeSizeDelivered, CodeServes, Impressions, ROUND((Impressions / CodeServes) * 100, 2) AS RenderRate FROM Code_Serve_Data JOIN Impression_Data USING (LineItemID, CreativeSizeDelivered, DeviceCategory) ORDER BY LineItemID, CreativeSizeDelivered, DeviceCategory
Ergebnisse
Zeile | LineItemID |
DeviceCategory |
CreativeSizeDelivered |
CodeServes |
Impressions |
RenderRate |
1 | 6666666666 | Internetfähiger Fernseher | Größe des Videoplayers | 100 | 40 | 40,0 |
2 | 6666666666 | Computer | Größe des Videoplayers | 20000 | 9000 | 45,0 |
3 | 6666666666 | Smartphone | Größe des Videoplayers | 32000 | 25000 | 78,13 |
4 | 6666666666 | Tablet | Größe des Videoplayers | 1000 | 800 | 80,0 |
5 | 7777777777 | Internetfähiger Fernseher | 300 x 250 | 200 | 190 | 95,0 |
6 | 7777777777 | Computer | 300 x 250 | 185000 | 184000 | 99,46 |
7 | 7777777777 | Smartphone | 300 x 250 | 225000 | 220000 | 97,77 |
8 | 7777777777 | Tablet | 300 x 250 | 10000 | 9800 | 98,0 |
9 | 7777777777 | Internetfähiger Fernseher | 300 × 50 | 50 | 50 | 100,0 |
10 | 7777777777 | Computer | 300 × 50 | 1000 | 900 | 90,0 |
11 | 7777777777 | Smartphone | 300 × 50 | 90000 | 80000 | 88,89 |
12 | 7777777777 | Tablet | 300 × 50 | 800 | 750 | 93,75 |
Sichtbarkeit
Die Sichtbarkeitsdaten sind sowohl in den Impressions- als auch in den ActiveView-Dateien enthalten, wenn Sie die Felder ActiveViewEligibleCount
, ActiveViewMeasurableCount
oder ActiveViewViewableCount
verwenden. Weitere Informationen zu diesen Feldern und ihrer Einstellung
Die Sichtbarkeit für einen Zeitraum kann durch Addition der Werte in den Dateien oder durch Zusammenführen der einzelnen Ereignisse und anschließenden Addieren der Werte berechnet werden. Zwischen den beiden Strategien können geringfügige Unterschiede bestehen, wie unten beschrieben.
Mögliche, messbare und sichtbare Impressionen (insgesamt)
Ermitteln Sie die Anzahl der möglichen, messbaren und sichtbaren Impressionen für einen bestimmten Tag. Wie bereits erwähnt, müssen die Impressionsdateien und die ActiveView-Dateien verwendet werden.
Code
DECLARE startdate STRING DEFAULT '2023-01-01 00:00:00';
DECLARE enddate STRING DEFAULT '2023-01-02 00:00:00';
WITH ActiveView_Data AS (
SELECT DeviceCategory, VideoPosition,
SUM(IFNULL(ActiveViewMeasurableCount, 0)) AS ActiveViewMeasurableCount,
SUM(IFNULL(ActiveViewViewableCount, 0)) AS ActiveViewViewableCount
FROM (
SELECT
DeviceCategory, VideoPosition,
SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount,
SUM(ActiveViewViewableCount) AS ActiveViewViewableCount
FROM
NetworkActiveViews
WHERE Time >= startdate AND Time < enddate
GROUP BY DeviceCategory, VideoPosition
UNION ALL
SELECT
DeviceCategory, VideoPosition,
SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount,
SUM(ActiveViewViewableCount) AS ActiveViewViewableCount
FROM
NetworkBackfillActiveViews
WHERE Time >= startdate AND Time < enddate
GROUP BY DeviceCategory, VideoPosition
)
GROUP BY DeviceCategory, VideoPosition
), Impression_Data AS (
SELECT DeviceCategory, VideoPosition,
SUM(IFNULL(ActiveViewEligibleCount, 0)) AS ActiveViewEligibleCount,
SUM(IFNULL(ActiveViewMeasurableCount, 0)) AS ActiveViewMeasurableCount
FROM (
SELECT
DeviceCategory, VideoPosition,
SUM(ActiveViewEligibleCount) AS ActiveViewEligibleCount,
SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount
FROM
NetworkImpressions
WHERE
Time >= startdate AND Time < enddate
AND LineItemID !=0
GROUP BY DeviceCategory, VideoPosition
UNION ALL
SELECT
DeviceCategory, VideoPosition,
SUM(ActiveViewEligibleCount) AS ActiveViewEligibleCount,
SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount
FROM
NetworkBackfillImpressions
WHERE
Time >= startdate AND Time < enddate
GROUP BY DeviceCategory, VideoPosition
)
GROUP BY DeviceCategory, VideoPosition
)
SELECT
DeviceCategory,
VideoPosition,
IFNULL(ActiveViewEligibleCount, 0) AS ActiveViewEligibleCount,
IFNULL(i.ActiveViewMeasurableCount, 0) + IFNULL(av.ActiveViewMeasurableCount, 0) AS ActiveViewMeasurableCount,
IFNULL(ActiveViewViewableCount, 0) AS ActiveViewViewableCount
FROM Impression_Data i
FULL JOIN ActiveView_Data av USING (DeviceCategory, VideoPosition)
ORDER BY DeviceCategory, VideoPosition
Ergebnisse
Zeile | EligibleImpressions |
MeasurableImpressions |
ViewableImpressions |
1 | 97000000 | 95000000 | 60000000 |
Mögliche, messbare und sichtbare Impressionen (nach zusammengeführter Impression)
Ermitteln Sie die Anzahl der möglichen, messbaren und sichtbaren Impressionen für einen bestimmten Tag. Führen Sie dazu die einzelnen Ereignisse in den Impressions- und ActiveView-Dateien zusammen und addieren Sie die Werte. In seltenen Fällen empfangen wie einen Ping für die Sichtbarkeit mit Active View, aber kein Impressions-Ping. Wenn Sie ActiveView-Daten mit Impressionsdaten zusammenführen, stellen Sie möglicherweise Unterschiede bei den messbaren Impressionen und weniger sichtbare Impressionen relativ zur ersten Abfrage fest (siehe oben).
Code
DECLARE startdate STRING DEFAULT '2023-01-01 00:00:00'; DECLARE enddate STRING DEFAULT '2023-01-02 00:00:00'; WITH ActiveView_Data AS ( SELECT CAST(substr(Time, 0, 10) as Date) AS Date, Product, KeyPart, TimeUsec2, SUM(ActiveViewMeasurableCount) AS avAVMC, SUM(ActiveViewViewableCount) AS ActiveViewViewableCount FROM NetworkActiveViews WHERE Time >= startdate AND Time < enddate GROUP BY Date, Product, KeyPart, TimeUsec2 UNION ALL SELECT CAST(substr(Time, 0, 10) as Date) AS Date, Product, KeyPart, TimeUsec2, SUM(ActiveViewMeasurableCount) AS avAVMC, SUM(ActiveViewViewableCount) AS ActiveViewViewableCount FROM NetworkBackfillActiveViews WHERE Time >= startdate AND Time < enddate GROUP BY Date, Product, KeyPart, TimeUsec2 ), Impression_Data AS ( SELECT CAST(substr(i.Time, 0, 10) as Date) AS Date, i.Product, i.TimeUsec2, i.KeyPart, i.ActiveViewEligibleCount AS ActiveViewEligibleCount, i.ActiveViewMeasurableCount AS iAVMC, av.avAVMC AS avAVMC, av.ActiveViewViewableCount FROM NetworkImpressions i LEFT JOIN ActiveView_Data AS av USING (Product, Keypart, TimeUsec2) WHERE i.Time >= startdate AND i.Time < enddate AND i.LineItemID !=0 UNION ALL SELECT CAST(substr(i.Time, 0, 10) as Date) AS Date, i.Product, i.TimeUsec2, i.KeyPart, i.ActiveViewEligibleCount AS ActiveViewEligibleCount, i.ActiveViewMeasurableCount AS iAVMC, av.avAVMC AS avAVMC, av.ActiveViewViewableCount FROM NetworkBackfillImpressions i LEFT JOIN ActiveView_Data AS av USING (Product, Keypart, TimeUsec2) WHERE i.Time >= startdate AND i.Time < enddate ), Full_Data AS ( SELECT Date, Product, TimeUsec2, KeyPart, ActiveViewEligibleCount, CASE WHEN ActiveViewViewableCount >=1 THEN 1 ELSE (IFNULL(iAVMC, 0) + IFNULL(avAVMC, 0)) END AS ActiveViewMeasurableCount, IFNULL(ActiveViewViewableCount, 0) AS ActiveViewViewableCount FROM Impression_Data ) SELECT SUM(ActiveViewEligibleCount) AS ActiveViewEligibleCount, SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount, SUM(ActiveViewViewableCount) AS ActiveViewViewableCount FROM Full_Data
Ergebnisse
Zeile | EligibleImpressions |
MeasurableImpressions |
ViewableImpressions |
1 | 97000000 | 95000000 | 59900000 |
Schlüssel/Wert-Paare
Schlüsselverwendung
Ermitteln Sie, wie oft jeder Schlüssel in einer Anzeigenanfrage vorkommt (siehe CustomTargeting
) und wie oft jeder Schlüssel zur Auslieferung einer Werbebuchung verwendet wurde (siehe TargetedCustomCriteria
). Aktive Schlüssel, die nicht in den Ergebnissen angezeigt werden oder nur selten verwendet werden, können sich für die Archivierung eignen, um die maximale Anzahl von Schlüsseln nicht zu überschreiten.
Code
WITH Key_Value_Pairs AS ( SELECT KVPair FROM NetworkImpressions CROSS JOIN UNNEST(SPLIT(CustomTargeting, ';')) AS KVPair WHERE CustomTargeting IS NOT NULL UNION ALL SELECT KVPair FROM NetworkBackfillImpressions CROSS JOIN UNNEST(SPLIT(CustomTargeting, ';')) AS KVPair WHERE CustomTargeting IS NOT NULL ), Targeted_Key_Value_Pairs AS ( SELECT TargetedKVPair FROM NetworkImpressions CROSS JOIN UNNEST(SPLIT(TargetedCustomCriteria, ';')) AS TargetedKVPair WHERE TargetedCustomCriteria IS NOT NULL UNION ALL SELECT TargetedKVPair FROM NetworkBackfillImpressions CROSS JOIN UNNEST (SPLIT(TargetedCustomCriteria, ';')) AS TargetedKVPair WHERE TargetedCustomCriteria IS NOT NULL ), Key_Usage AS ( SELECT REGEXP_REPLACE(KVPair, '=.+', '') AS Key, COUNT(1) AS KeyUsageCount FROM Key_Value_Pairs GROUP BY Key ), Key_Targeted_Usage AS ( SELECT REGEXP_REPLACE(TargetedKVPair, '(!)*(=|~).+', '') AS Key, COUNT(1) AS KeyTargetedCount FROM Targeted_Key_Value_Pairs GROUP BY Key ) SELECT CASE WHEN Key_Usage.Key IS NULL THEN Key_Targeted_Usage.Key ELSE Key_Usage.Key END AS Key, KeyUsageCount, KeyTargetedCount FROM Key_Usage FULL JOIN Key_Targeted_Usage ON Key_Usage.Key = Key_Targeted_Usage.Key ORDER BY Key
Ergebnisse
Zeile | Key |
KeyUsageCount |
KeyTargetedCount |
1 | key_abc | 10000000 | 1000000 |
2 | key_def | 25000000 | 5000000 |
3 | key_ghi | 40000 | 2000 |
4 | key_jkl | 300000 | 12000 |
5 | key_mno | 100000 | 1000 |
Gebote von Bidding-Partnern
Ermitteln Sie, wie oft jeder Ihrer Partner Gebote abgibt, indem Sie die Gebote aus CustomTargeting
extrahieren. Im Beispiel unten wird erwartet, dass der Name jedes Partners mit bidder_prefix_
wie in bidder_prefix_partnername
beginnt und dass das Gebot für diesen Partner das Format bidder_prefix_partnername=1.23
hat.
Code
SELECT Bidder, COUNT(1) AS BidCount FROM ( SELECT Bidder FROM NetworkImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, '(bidder_prefix_[A-z]+)=[0-9]+\\.[0-9]*')) AS Bidder WHERE CustomTargeting LIKE '%bidder_prefix_%' AND Time >= '2020-01-01' AND Time < '2020-01-02' UNION ALL SELECT Bidder FROM NetworkBackfillImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, '(bidder_prefix_[A-z]+)=[0-9]+\\.[0-9]*')) AS Bidder WHERE CustomTargeting LIKE '%bidder_prefix_%' AND Time >= '2020-01-01' AND Time < '2020-01-02' ) GROUP BY Bidder ORDER BY BidCount
Ergebnisse
Zeile | Bidder |
BidCount |
1 | bidder_prefix_partner_1 | 15000000 |
2 | bidder_prefix_partner_2 | 12000000 |
3 | bidder_prefix_partner_3 | 9000000 |
4 | bidder_prefix_partner_4 | 6000000 |
5 | bidder_prefix_partner_5 | 3000000 |
Gebotswerte und Anzahlen für einen einzelnen Bidding-Partner
Für einen einzelnen Bidding-Partner finden Sie die gängigsten Gebotswerte und die Häufigkeit der einzelnen Gebote. Wählen Sie im folgenden Beispiel die 10 gängigsten Gebote aus den Impressionstabellen für den Partner mit dem Namen bidder_partner
aus (Impressionen, bei denen CustomTargeting
den Schlüssel bidder_partner
enthält, der auf einen Gebotspreis festgelegt ist, z. B. 1.23
.
Code
SELECT BidPrice, SUM(BidCount) AS BidCount FROM ( SELECT SAFE_CAST(REGEXP_EXTRACT(CustomTargeting, 'bidder_partner=([0-9]+\\.[0-9]*)') AS FLOAT64) AS BidPrice, COUNT(1) AS BidCount FROM NetworkImpressions WHERE CustomTargeting LIKE '%bidder_partner=%' AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY BidPrice UNION ALL SELECT SAFE_CAST(REGEXP_EXTRACT(CustomTargeting, 'bidder_partner=([0-9]+\\.[0-9]*)') AS FLOAT64) AS BidPrice, COUNT(1) AS BidCount FROM NetworkBackfillImpressions WHERE CustomTargeting LIKE '%bidder_partner=%' AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY BidPrice ) GROUP BY BidPrice ORDER BY BidCount DESC LIMIT 10
Ergebnisse
Zeile | BidPrice |
BidCount |
1 | 0,01 | 600000 |
2 | 0,02 | 500000 |
3 | 0,05 | 400000 |
4 | 0,07 | 300000 |
5 | 0,09 | 200000 |
6 | 0,03 | 150000 |
7 | 0,08 | 100000 |
8 | 0,04 | 75000 |
9 | 0,10 | 50000 |
10 | 0,06 | 25000 |
Gebotsanzahlen und durchschnittliche Gebote
Die Gesamtzahl der Gebote und das durchschnittliche Gebot finden Sie in den Impressionstabellen aller Bidding-Partner. Im Beispiel unten wird erwartet, dass der Name jedes Partners mit bidder_prefix_
wie in bidder_prefix_partnername
beginnt und dass das Gebot für diesen Partner das Format bidder_prefix_partnername=1.23
hat.
Code
WITH Bid_Data AS ( SELECT REGEXP_EXTRACT(Bid, '(bidder_prefix_[A-z]+)=[0-9]+\\.[0-9]*') AS Bidder, SAFE_CAST(REGEXP_EXTRACT(Bid, 'bidder_prefix_[A-z]+=([0-9]+\\.[0-9]*)') AS FLOAT64) AS BidPrice, COUNT(1) AS BidCount FROM ( SELECT Bid FROM NetworkImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, 'bidder_prefix_[A-z]+=[0-9]+\\.[0-9]*')) AS Bid WHERE CustomTargeting LIKE '%bidder_prefix_%' AND Time >= '2020-01-01' AND Time < '2020-01-02' UNION ALL SELECT Bid FROM NetworkBackfillImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, 'bidder_prefix_[A-z]+=[0-9]+\\.[0-9]*')) AS Bid WHERE CustomTargeting LIKE '%bidder_prefix_%' AND Time >= '2020-01-01' AND Time < '2020-01-02' ) GROUP BY Bidder, BidPrice ), BidPrice_Totals AS ( SELECT Bidder, SUM(BidValue) AS TotalBidValue FROM ( SELECT Bidder, BidPrice * BidCount AS BidValue FROM Bid_Data ) GROUP BY Bidder ), BidCount_Totals AS ( SELECT Bidder, SUM(BidCount) AS TotalBidCount FROM Bid_Data GROUP BY Bidder ) SELECT BidCount_Totals.Bidder, TotalBidCount, ROUND((TotalBidValue / TotalBidCount), 2) AS AverageBid FROM BidCount_Totals INNER JOIN BidPrice_Totals ON BidCount_Totals.Bidder = BidPrice_Totals.Bidder ORDER BY Bidder
Ergebnisse
Zeile | Bidder |
BidCount |
AverageBid |
1 | bidder_prefix_partner_1 | 15000000 | 0,21 |
2 | bidder_prefix_partner_2 | 12000000 | 1,43 |
3 | bidder_prefix_partner_3 | 9000000 | 2,67 |
4 | bidder_prefix_partner_4 | 6000000 | 6,80 |
5 | bidder_prefix_partner_5 | 3000000 | 0,92 |
DVP-Segmentanzahlen
Datenverwaltungsplattformen übergeben häufig die Segmente, denen ein Nutzer angehört, als Schlüssel/Wert-Paare. Ermitteln Sie, wie oft diese Segmente in Anzeigenanfragen aufgeführt wurden, also wie viele Impressionen für jedes Segment für das Targeting infrage kamen. Extrahieren Sie die Segment-IDs aus CustomTargeting. Im folgenden Beispiel wird davon ausgegangen, dass der Schlüsselname „seg“ lautet und dass die Werte aus Buchstaben und Zahlen bestehen.
Code
SELECT Segment, COUNT(1) AS Count FROM ( SELECT Segment FROM NetworkImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, 'seg=([A-z0-9]+)')) AS Segment WHERE CustomTargeting LIKE '%seg=%' AND Time >= '2020-01-01' AND Time < '2020-01-02' UNION ALL SELECT Segment FROM NetworkBackfillImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, 'seg=([A-z0-9]+)')) AS Segment WHERE CustomTargeting LIKE '%seg=%' AND Time >= '2020-01-01' AND Time < '2020-01-02' ) GROUP BY Segment ORDER BY Count DESC
Ergebnisse
Zeile | Segment |
Anzahl |
1 | abcd1234 | 10000000 |
2 | efgh5678 | 9000000 |
3 | ijkl9012 | 8000000 |
4 | mnop3456 | 7000000 |
5 | qrst7890 | 6000000 |
6 | uvwx1234 | 5000000 |
7 | yzab5678 | 4000000 |
8 | cdef9012 | 3000000 |
9 | ghij3456 | 2000000 |
10 | klmn7890 | 1000000 |
Video
Videofehler nach URL, Anzeigenblock-ID und Position
Um Probleme mit Videowerbebuchungen mit erheblichen Fehlern zu beheben, müssen Sie unter Umständen die Seite und/oder die Anzeigenfläche auf der Seite finden, die für am meisten die Fehler verantwortlich ist. Mit NetworkVideoConversions
können Sie Fehler nach Werbebuchung suchen, wobei ActionName
den Wert error
enthält. Wenn Sie auf einer Seite mehr als einen Videoplayer haben, die Player denselben Anzeigenblock verwenden und Sie einen Schlüssel wie pos
verwenden, um zwischen den Anzeigenblöcken auf einer Seite zu unterscheiden, extrahieren Sie diesen pos
-Wert aus CustomTargeting
. Im folgenden Beispiel wird davon ausgegangen, dass der Name des Schlüssels pos
lautet. Es werden die fünf Kombinationen von RefererURL
, AdUnitID
und Position
angezeigt, die am meisten für Fehler bei einer einzelnen Videowerbebuchung verantwortlich sind.
Code
SELECT RefererURL, AdUnitID, REGEXP_EXTRACT(CustomTargeting, 'pos=([^;]+)') AS Position, COUNT(1) AS ErrorCount FROM NetworkVideoConversions WHERE LineItemID = 123456789 AND ActionName LIKE '%error%' AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY RefererURL, AdUnitID, Position ORDER BY ErrorCount DESC LIMIT 5
Ergebnisse
Zeile | RefererURL |
AdUnitID |
Position |
ErrorCount |
1 | https://example.com/ | 11111111 | oben | 2000 |
2 | https://example.com/url/a | 22222222 | oben | 1500 |
3 | https://example.com/url/b | 22222222 | oben | 1400 |
4 | https://example.com/url/c | 11111111 | oben | 1000 |
5 | https://example.com/url/c | 11111111 | unten | 500 |