W tym artykule znajdziesz przykłady tworzenia zapytań w przypadku raportów Przenoszenia danych w usłudze Ad Manager. Dowiedz się więcej o plikach Przenoszenia danych, m.in. o ich otrzymywaniu
Ten artykuł był wcześniej zatytułowany „Przenoszenie danych – cookbook”.
Niewypełnione wyświetlenia
Niewypełnione wyświetlenia z zapytania NetworkImpressions
Aby sprawdzić liczbę niewypełnionych wyświetleń na dzień, wpisz zapytanie NetworkImpressions
w przypadku wpisów, w których LineItemID
ma wartość 0
. W przypadku NetworkBackfillImpressions
nie ma niewypełnionych wyświetleń.
Kod
SELECT COUNT(1) AS UnfilledImpressions FROM NetworkImpressions WHERE LineItemID = 0 AND Time >= ‘2020-01-01’ AND Time < ‘2020-01–02’
Wyniki
Wiersz | UnfilledImpressions |
1 | 20000000 |
Niewypełnione wyświetlenia z zapytania NetworkRequests
Liczbę niewypełnionych wyświetleń możesz też sprawdzić za pomocą zapytania NetworkRequests
. Poszukaj żądań, w których przypadku parametr IsFilledRequest
ma wartość false (fałsz). W przypadku NetworkBackfillRequests
nie ma niewypełnionych wyświetleń.
Kod
SELECT COUNT(1) AS UnfilledImpressions FROM NetworkRequests WHERE NOT IsFilledRequest AND Time >= '2020-01-01' AND Time < '2020-01-02'
Wyniki
Wiersz | UnfilledImpressions |
1 | 20000000 |
Niewypełnione wyświetlenia według adresu URL
Raportowanie w usłudze Ad Manager może pokazywać niewypełnione wyświetlenia według jednostki reklamowej lub żądanego rozmiaru, ale nie według adresu URL. Uwzględnij RefererURL
, aby znaleźć 10 stron, które generują najwięcej niewypełnionych wyświetleń.
Kod
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
Wyniki
Wiersz | 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 |
Niewypełnione wyświetlenia według jednostki reklamowej
Znajdź jednostki reklamowe, które odpowiadają za najwięcej niewypełnionych wyświetleń na jednej stronie. Jeśli korzystasz z oprogramowania sprzęgającego BigQuery, użyj tabeli odpowiedników jednostki reklamowej, aby znaleźć nazwy jednostek reklamowych. Tabela odpowiedników zawiera dane o jednostkach reklamowych z każdego dnia, dlatego pamiętaj, aby ograniczyć je do jednego dnia.
Kod
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
Wyniki
Wiersz | AdUnitID |
AdUnitName |
UnfilledImpressions |
1 | 95730695 | Nazwa ostatniego poziomu A | 1123439 |
2 | 95033015 | Nazwa ostatniego poziomu B | 1116622 |
3 | 95033615 | Nazwa ostatniego poziomu C | 1102641 |
4 | 95049575 | Nazwa ostatniego poziomu D | 772235 |
5 | 95734535 | Nazwa ostatniego poziomu E | 744777 |
6 | 95584895 | Nazwa ostatniego poziomu F | 27593 |
7 | 95045255 | Nazwa ostatniego poziomu G | 7482 |
8 | 95343215 | Nazwa ostatniego poziomu H | 1925 |
9 | 94977215 | Nazwa ostatniego poziomu I | 19 |
10 | 95033375 | Nazwa ostatniego poziomu J | 12 |
Wyświetlenia
Wyświetlenia według pól Product
i DealType
Pola Product
i DealType
w Przenoszeniu danych pozwalają generować raporty, które można porównać z raportami Ad Managera, gdzie wykorzystywane są wymiary „Kanał popytu”, „Kanał automatyzacji” i „Typ optymalizacji”. Wybierz wyświetlenia z NetworkImpressions
(gdzie LineItemID
nie ma wartości 0) i NetworkBackfillImpressions
.
Kod
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
Wyniki
Wiersz | Product |
DealType |
Liczba |
1 | Ad Exchange | null | 60000000 |
2 | Ad Exchange | Aukcja prywatna | 2000000 |
3 | Serwer reklam | null | 40000000 |
4 | Serwer reklam | Umowa preferencyjna | 1000000 |
5 | Serwer reklam | Automatyzacja gwarantowana | 1200000 |
6 | Ustalanie stawek na giełdzie | null | 15000000 |
7 | Ustalanie stawek na giełdzie | Umowa preferencyjna | 20000 |
8 | Ustalanie stawek na giełdzie | Aukcja prywatna | 500000 |
9 | Pierwszeństwo | null | 100000 |
Parametry raportów
Wygeneruj raport w ramach raportowania w usłudze Ad Manager, używając tej samej daty. Wybierz te wymiary i dane:
- Wymiary:
- Kanał popytu
- Kanał automatyzacji
- Typ optymalizacji
- Dane:
- Łączna liczba wyświetleń
- Łączna liczba wyświetleń
Wyniki
Wiersz | Kanał popytu | Kanał automatyzacji | Typ optymalizacji | Łączna liczba wyświetleń |
1 | Otwarte ustalanie stawek | Aukcja otwarta | Cały pozostały ruch | 9 000 000 |
2 | Otwarte ustalanie stawek | Aukcja otwarta | Zoptymalizowana konkurencja | 7000 |
3 | Otwarte ustalanie stawek | Aukcja otwarta | Docelowy CPM | 5 993 000 |
4 | Otwarte ustalanie stawek | Umowy preferencyjne | Cały pozostały ruch | 20 000 |
5 | Otwarte ustalanie stawek | Aukcja prywatna | Cały pozostały ruch | 496 000 |
6 | Otwarte ustalanie stawek | Aukcja prywatna | Zoptymalizowana konkurencja | 4000 |
7 | Serwer reklam | Nie dotyczy | Cały pozostały ruch | 40 000 000 |
8 | Serwer reklam | Umowy preferencyjne | Cały pozostały ruch | 1 000 000 |
9 | Serwer reklam | Automatyzacja gwarantowana | Cały pozostały ruch | 1 200 000 |
10 | Ad Exchange | Aukcja otwarta | Cały pozostały ruch | 48 000 000 |
11 | Ad Exchange | Aukcja otwarta | Pierwszeństwo | 100 000 |
12 | Ad Exchange | Aukcja otwarta | Zoptymalizowana konkurencja | 10 000 |
13 | Ad Exchange | Aukcja otwarta | Docelowy CPM | 11 990 000 |
14 | Ad Exchange | Aukcja prywatna | Cały pozostały ruch | 1 995 000 |
15 | Ad Exchange | Aukcja prywatna | Zoptymalizowana konkurencja | 5000 |
Umowy bezpośrednie
- Przenoszenie danych:
Product
=Ad Server
DealType
ma wartośćnull
- Wiersz 3: 40 000 000
- Raportowanie w usłudze Ad Manager:
- Kanał popytu = „Serwer reklam”
- Kanał automatyzacji = „Nie dotyczy”
- Typ optymalizacji = „Cały pozostały ruch”
- Wiersz 7: 40 000 000
Umowy preferencyjne
- Przenoszenie danych:
Product
=Ad Server
DealType
toPreferred Deal
- Wiersz 4: 1 000 000
- Raportowanie w usłudze Ad Manager:
- Kanał popytu = „Serwer reklam”
- Kanał automatyzacji = „Umowy preferencyjne”
- Typ optymalizacji = „Cały pozostały ruch”
- Wiersz 8: 1 000 000
- Przenoszenie danych:
Product
=Exchange Bidding
DealType
toPreferred Deal
- Wiersz 7: 20 000
-
- Raportowanie w usłudze Ad Manager:
- Kanał popytu = „Otwarte ustalanie stawek”
- Kanał automatyzacji = „Umowy preferencyjne”
- Typ optymalizacji = „Cały pozostały ruch”
- Wiersz 4: 20 000
Automatyzacja gwarantowana
- Przenoszenie danych:
Product
=Ad Server
DealType
toProgrammatic Guaranteed
- Wiersz 5: 1 200 000
- Raportowanie w usłudze Ad Manager:
- Kanał popytu = „Serwer reklam”
- Kanał automatyzacji = „Automatyzacja gwarantowana”
- Typ optymalizacji = „Cały pozostały ruch”
- Wiersz 9: 1 200 000
Aukcja otwarta Ad Exchange (bez Pierwszeństwa)
- Przenoszenie danych:
Product
=Ad Exchange
DealType
ma wartośćnull
- Wiersz 1: 60 000 000
- Raportowanie w usłudze Ad Manager:
- Kanał popytu = „Ad Exchange”
- Kanał automatyzacji = „Aukcja otwarta”
- Typ optymalizacji = „Cały pozostały ruch”, „Docelowy CPM”, „Zoptymalizowana konkurencja”
- Wiersz 10, wiersz 12 i wiersz 13 (suma): 48 000 000 + 10 000 + 11 990 000 = 60 000 000
Aukcja prywatna Ad Exchange
- Przenoszenie danych:
Product
=Ad Exchange
DealType
toPrivate Auction
- Wiersz 2: 2 000 000
- Raportowanie w usłudze Ad Manager:
- Kanał popytu = „Ad Exchange”
- Kanał automatyzacji = „Aukcja prywatna”
- Typ optymalizacji = „Cały pozostały ruch”, „Zoptymalizowana konkurencja”
- Wiersz 14 i wiersz 15 (suma): 1 995 000 + 5000 = 2 000 000
Aukcja otwarta z Otwartym ustalaniem stawek
- Przenoszenie danych:
Product
=Exchange Bidding
DealType
ma wartośćnull
- Wiersz 6: 15 000 000
- Raportowanie w usłudze Ad Manager:
- Kanał popytu = „Otwarte ustalanie stawek”
- Kanał automatyzacji = „Aukcja otwarta”
- Typ optymalizacji = „Cały pozostały ruch”, „Docelowy CPM”, „Zoptymalizowana konkurencja”
- Wiersz 1, wiersz 2 i wiersz 3 (suma): 9 000 000 + 7000 + 5 993 000 = 15 000 000
Aukcja prywatna z Otwartym ustalaniem stawek
- Przenoszenie danych:
Product
=Exchange Bidding
DealType
toPrivate Auction
- Wiersz 8: 500 000
- Raportowanie w usłudze Ad Manager:
- Kanał popytu = „Otwarte ustalanie stawek”
- Kanał automatyzacji = „Aukcja prywatna”
- Typ optymalizacji = „Cały pozostały ruch”, „Zoptymalizowana konkurencja”
- Wiersz 5 i wiersz 6 (suma): 496 000 + 4000 = 500 000
Pierwszeństwo
- Przenoszenie danych:
Product
=First Look
DealType
ma wartośćnull
- Wiersz 9: 100 000
- Raportowanie w usłudze Ad Manager:
- Kanał popytu = „Ad Exchange”
- Kanał automatyzacji = „Aukcja otwarta”
- Typ optymalizacji = „Pierwszeństwo”
- Wiersz 11: 100 000
Przychody
Przychody z elementu zamówienia CPM
Plik NetworkImpressions
nie zawiera danych o przychodach, ale jeśli korzystasz z oprogramowania sprzęgającego BigQuery, stawkę CPM możesz znaleźć w tabeli odpowiedników elementu zamówienia. Możesz też ją znaleźć za pomocą interfejsu API Ad Managera. Aby poznać przychody z danego elementu zamówienia CPM w konkretnym zakresie dat, policz wyświetlenia, pomnóż je przez stawkę i podziel wynik przez 1000. Tabela odpowiedników zawiera dane o jednostkach reklamowych z każdego dnia, dlatego pamiętaj, aby ograniczyć je do jednego dnia.
Kod
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'
Wyniki
Wiersz | LineItemID |
Impressions |
Rate |
CostType |
Revenue |
1 | 123456789 | 21324 | 3,5 | CPM | 74,634 |
Przychody z elementu zamówienia CPD
Podobnie jak w przypadku elementów zamówienia CPM, do określenia stawki CPD elementu zamówienia możesz użyć tabeli odpowiedników lub interfejsu API Ad Managera. Tabela odpowiedników zawiera dane o jednostkach reklamowych z każdego dnia, dlatego pamiętaj, aby ograniczyć je do jednego dnia. Aby poznać przychody z danego elementu zamówienia CPD, policz liczbę dni, w których wyświetlenia były realizowane, i pomnóż ją przez stawkę. Aby sprawdzić średni eCPM, możesz dodać liczbę zrealizowanych wyświetleń.
Kod
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
Wyniki
Wiersz | LineItemID |
Days |
CostType |
Rate |
Revenue |
Impressions |
Average_eCPM |
1 | 123456789 | 5 | CPD | 4000,0 | 20000,0 | 7000000 | 2,86 |
Przychody z elementu zamówienia CPC
Podobnie jak w przypadku elementów zamówienia CPM, do określenia stawki CPC elementu zamówienia możesz użyć tabeli odpowiedników lub interfejsu API Ad Managera. Tabela odpowiedników zawiera dane o jednostkach reklamowych z każdego dnia, dlatego pamiętaj, aby ograniczyć je do jednego dnia. Aby poznać przychody z danego elementu zamówienia CPC w konkretnym zakresie dat, policz kliknięcia i pomnóż je przez stawkę. Aby sprawdzić średni eCPM, możesz dodać liczbę zrealizowanych wyświetleń.
Kod
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)
Wyniki
Wiersz | LineItemID |
CostType |
Impressions |
Clicks |
CTR |
Rate |
Revenue |
Average_eCPM |
1 | 123456789 | CPC | 140000 | 23 | 0,02 | 15,5 | 356,5 | 2,55 |
Przychody z elementu zamówienia vCPM
Podobnie jak w przypadku elementów zamówienia CPM, do określenia stawki vCPM elementu zamówienia możesz użyć tabeli odpowiedników lub interfejsu API Ad Managera. Tabela odpowiedników zawiera dane o jednostkach reklamowych z każdego dnia, dlatego pamiętaj, aby ograniczyć je do jednego dnia. Aby poznać przychody z danego elementu zamówienia vCPM, policz widoczne wyświetlenia z NetworkActiveViews
i pomnóż je przez stawkę. Aby sprawdzić średni eCPM, możesz dodać liczbę zrealizowanych wyświetleń.
Kod
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'
Wyniki
Wiersz | LineItemID |
CostType |
Impressions |
ViewableImpressions |
Rate |
Revenue |
Average_eCPM |
1 | 123456789 | CPMAV | 500000 | 150000 | 10 | 1500,0 | 3,0 |
Przychody reklamodawcy
Aby poznać przychody danego reklamodawcy w konkretnym zakresie dat, policz wyświetlenia każdego elementu zamówienia i pomnóż wynik przez stawkę. Stawkę znajdziesz w tabeli odpowiedników elementu zamówienia, a nazwę reklamodawcy – w tabeli odpowiedników firmy.
Kod
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'
Wyniki
Wiersz | 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 |
Współczynniki wykorzystania kodu
W przypadku sieci z włączonymi kreacjami zastępczymi Przenoszenie danych zlicza współczynniki wykorzystania kodu dla każdego elementu zamówienia wybranego w łańcuchu kreacji zastępczych. W ramach raportowania w usłudze Ad Manager współczynniki wykorzystania kodu są zliczane tylko w przypadku pierwszego elementu zamówienia wybranego w łańcuchu kreacji zastępczych. Przenoszenie danych zlicza też współczynniki wykorzystania kodu w przypadku reklam towarzyszących, natomiast raportowanie w usłudze Ad Manager – nie. Jeśli chcesz, aby raport Przenoszenia danych był jak najbardziej zbliżony do raportu Ad Managera, zliczaj tylko współczynniki wykorzystania kodu, gdzie VideoFallbackPosition = 0
i gdzie IsCompanion
ma wartość false
. Współczynniki wykorzystania kodu w ramach Zapośredniczenia w Przenoszeniu danych mogą nie odpowiadać współczynnikom wykorzystania kodu w ramach Zapośredniczenia w raportowaniu w usłudze Ad Manager. W zależności od implementacji mogą wystąpić inne różnice między liczbami współczynników wykorzystania kodu w Przenoszeniu danych i raportowaniu w usłudze Ad Manager.
Współczynniki wykorzystania kodu, wyświetlenia i współczynnik renderowania według elementu zamówienia w przypadku jednego reklamodawcy
Sprawdź, jak często współczynniki wykorzystania kodu zmieniają się na wyświetlenia w przypadku każdego elementu zamówienia reklamodawcy bezpośredniego. Analizujemy reklamodawcę bezpośredniego, więc te współczynniki będą tylko w NetworkCodeServes
, a wyświetlenia tylko w NetworkImpressions
.
Kod
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
Wyniki
Wiersz | 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 |
Współczynniki wykorzystania kodu, wyświetlenia i współczynnik renderowania według kategorii urządzenia i wymiaru kreacji (wyświetlonego)
Uwzględnij kategorię urządzenia i wymiar kreacji (wyświetlony), aby zobaczyć różnice we współczynnikach renderowania w przypadku jednego zamówienia danego reklamodawcy.
Kod
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
Wyniki
Wiersz | LineItemID |
DeviceCategory |
CreativeSizeDelivered |
CodeServes |
Impressions |
RenderRate |
1 | 6666666666 | Urządzenie CTV | Wideo/nakładka | 100 | 40 | 40,0 |
2 | 6666666666 | Komputer | Wideo/nakładka | 20000 | 9000 | 45,0 |
3 | 6666666666 | Smartfon | Wideo/nakładka | 32000 | 25000 | 78,13 |
4 | 6666666666 | Tablet | Wideo/nakładka | 1000 | 800 | 80,0 |
5 | 7777777777 | Urządzenie CTV | 300 × 250 | 200 | 190 | 95,0 |
6 | 7777777777 | Komputer | 300 × 250 | 185000 | 184000 | 99,46 |
7 | 7777777777 | Smartfon | 300 × 250 | 225000 | 220000 | 97,77 |
8 | 7777777777 | Tablet | 300 × 250 | 10 000 | 9800 | 98,0 |
9 | 7777777777 | Urządzenie CTV | 300 x 50 | 50 | 50 | 100,0 |
10 | 7777777777 | Komputer | 300 x 50 | 1000 | 900 | 90,0 |
11 | 7777777777 | Smartfon | 300 x 50 | 90000 | 80000 | 88,89 |
12 | 7777777777 | Tablet | 300 x 50 | 800 | 750 | 93,75 |
Widoczność
Dane o widoczności można znaleźć zarówno w plikach wyświetleń, jak i Widoku aktywnego, korzystając z pól ActiveViewEligibleCount
, ActiveViewMeasurableCount
i ActiveViewVisibleCount
. Dowiedz się więcej o tych polach i określaniu ich wartości.
Widoczność dla okresu może być obliczona przez zsumowanie wartości znajdujących się w plikach lub złączenie poszczególnych zdarzeń, a następnie zsumowanie wartości. Mogą wystąpić niewielkie różnice między tymi 2 strategiami, które opisujemy poniżej.
Zakwalifikowane wyświetlenia, wymierne wyświetlenia i widoczne wyświetlenia (w sumie)
Sprawdź liczbę zakwalifikowanych, wymiernych i widocznych wyświetleń w danym dniu. Jak już wspomnieliśmy, trzeba używać plików wyświetleń i Widoku aktywnego.
Kod
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
Wyniki
Wiersz | EligibleImpressions |
MeasurableImpressions |
ViewableImpressions |
1 | 97000000 | 95000000 | 60000000 |
Zakwalifikowane wyświetlenia, wymierne wyświetlenia i widoczne wyświetlenia (według złączonych wyświetleń)
Sprawdź liczbę zakwalifikowanych, wymiernych i widocznych wyświetleń w danym dniu, łącząc poszczególne zdarzenia w plikach wyświetleń i Widoku aktywnego, a następnie sumując wartości. W rzadkich przypadkach otrzymujemy ping widocznego wyświetlenia w Widoku aktywnym, ale nie otrzymujemy pingu wyświetlenia. Łącząc dane Widoku aktywnego z danymi wyświetleń możesz zauważyć różnice w wymiernych wyświetleniach oraz mniejszą liczbę widocznych wyświetleń w porównaniu z pierwszym zapytaniem (co widać powyżej).
Kod
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
Wyniki
Wiersz | EligibleImpressions |
MeasurableImpressions |
ViewableImpressions |
1 | 97000000 | 95000000 | 59900000 |
Pary klucz-wartość
Użycie klucza
Sprawdź, jak często każdy z kluczy pojawia się w żądaniu reklamy (CustomTargeting
) i jak często był używany do wyświetlania elementu zamówienia (TargetedCustomCriteria
). Aktywne klucze, które nie pojawiają się w wynikach lub są rzadko używane, mogą zostać zarchiwizowane, aby uniknąć przekroczenia limitu kluczy.
Kod
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
Wyniki
Wiersz | 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 |
Stawki ustalane przez partnerów licytujących
Dowiedz się, jak często każdy z partnerów ustala stawki, wyodrębniając stawki z CustomTargeting
. W poniższym przykładzie nazwa każdego partnera powinna zaczynać się od „bidder_prefix_
”, jak w przypadku „bidder_prefix_partnername
”, a stawka partnera powinna być w formacie „bidder_prefix_partnername=1,23
”.
Kod
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
Wyniki
Wiersz | 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 |
Wartości i liczby stawek w przypadku jednego partnera licytującego
Znajdź najpopularniejsze wartości stawek i częstotliwość ich ustalania w przypadku jednego partnera licytującego. W przykładzie poniżej wybierz 10 najpopularniejszych stawek z tabel wyświetleń dla partnera o nazwie „bidder_partner
” (wyświetlenia, w których CustomTargeting
zawiera klucz „bidder_partner
” ustawiony na wysokość stawki, np. „1,23
”).
Kod
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
Wyniki
Wiersz | 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 |
Liczby stawek i średnie stawki
Poznaj łączną liczbę stawek i średnią stawkę z tabel wyświetleń dla wszystkich partnerów licytujących. W poniższym przykładzie nazwa każdego partnera powinna zaczynać się od „bidder_prefix_
”, jak w przypadku „bidder_prefix_partnername
”, a stawka partnera powinna być w formacie „bidder_prefix_partnername=1,23
”.
Kod
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
Wyniki
Wiersz | 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 |
Liczba segmentów DMP
Platformy zarządzania danymi często przekazują segmenty, do których użytkownik należy, jako pary klucz-wartość. Sprawdź, jak często te segmenty pojawiają się w żądaniach reklam – ile wyświetleń kwalifikowało się do kierowania na każdy segment. Wyodrębnij identyfikatory segmentów z CustomTargeting. W poniższym przykładzie nazwą klucza powinno być „seg”, a wartości powinny składać się z liter i cyfr.
Kod
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
Wyniki
Wiersz | Segment |
Count |
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 |
Wideo
Błędy wideo według adresu URL, pozycji i identyfikatora jednostki reklamowej
Aby rozwiązać problemy z elementami zamówienia wideo, w których występują poważne błędy, konieczne może być znalezienie strony lub boksu reklamowego na stronie, które w największym stopniu odpowiadają za te błędy. Używaj NetworkVideoConversions
, aby znaleźć błędy według elementu zamówienia (gdzie ActionName
zawiera wartość „error
”). Jeśli na stronie jest więcej niż 1 odtwarzacz, odtwarzacze korzystają z tej samej jednostki reklamowej, a Ty używasz klucza „pos
”, aby odróżnić jednostki reklamowe na stronie. W tym celu wyodrębnij wartość pos
z CustomTargeting
. W poniższym przykładzie nazwą klucza powinno być „pos
”. Przykład przedstawia 5 najczęstszych kombinacji RefererURL
, AdUnitID
i Position
odpowiedzialnych za błędy w przypadku jednego elementu zamówienia wideo.
Kod
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
Wyniki
Wiersz | RefererURL |
AdUnitID |
Position |
ErrorCount |
1 | https://example.com/ | 11111111 | góra | 2000 |
2 | https://example.com/url/a | 22222222 | góra | 1500 |
3 | https://example.com/url/b | 22222222 | góra | 1400 |
4 | https://example.com/url/c | 11111111 | góra | 1000 |
5 | https://example.com/url/c | 11111111 | dół | 500 |