En este artículo se incluyen ejemplos de cómo crear consultas para los informes de Data Transfer de Ad Manager. Consulte más información sobre los archivos de Data Transfer y sobre cómo empezar a recibirlos.
Nota: Anteriormente, este artículo tenía como título "Guía paso a paso de Data Transfer".
Impresiones sin rellenar
Impresiones sin rellenar de NetworkImpressions
Para averiguar el número de impresiones sin rellenar de un día, consulte NetworkImpressions
en entradas en las que LineItemID
tenga el valor 0
. No hay impresiones sin rellenar en NetworkBackfillImpressions
.
Código
SELECT COUNT(1) AS UnfilledImpressions FROM NetworkImpressions WHERE LineItemID = 0 AND Time >= ‘2020-01-01’ AND Time < ‘2020-01–02’
Resultados
Fila | UnfilledImpressions |
1 | 20000000 |
Impresiones sin rellenar de NetworkRequests
También puede averiguar el número de impresiones sin rellenar mediante consulta a NetworkRequests
. Busque solicitudes donde IsFilledRequest
sea false. No hay impresiones sin rellenar en NetworkBackfillRequests
.
Código
SELECT COUNT(1) AS UnfilledImpressions FROM NetworkRequests WHERE NOT IsFilledRequest AND Time >= '2020-01-01' AND Time < '2020-01-02'
Resultados
Fila | UnfilledImpressions |
1 | 20000000 |
Impresiones sin rellenar por URL
En los informes de Ad Manager se pueden mostrar las impresiones sin rellenar por bloque de anuncios o por tamaño solicitado, pero no por URL. Incluya RefererURL
para buscar las diez páginas principales que generan impresiones sin rellenar.
Código
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
Resultados
Fila | 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 |
Impresiones sin rellenar por bloque de anuncios
Identifique los bloques de anuncios que causan más impresiones sin rellenar en una sola página. Si usa el conector de BigQuery, busque el nombre de los bloques de anuncios en la tabla de coincidencias de bloques de anuncios. Dado que la tabla de coincidencias contiene los datos de bloques de anuncios de todos los días, asegúrese de limitar los datos a un solo día.
Código
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
Resultados
Fila | AdUnitID |
AdUnitName |
UnfilledImpressions |
1 | 95730695 | Nombre del último nivel A | 1123439 |
2 | 95033015 | Nombre del último nivel B | 1116622 |
3 | 95033615 | Nombre del último nivel C | 1102641 |
4 | 95049575 | Nombre del último nivel D | 772235 |
5 | 95734535 | Nombre del último nivel E | 744777 |
6 | 95584895 | Nombre del último nivel F | 27593 |
7 | 95045255 | Nombre del último nivel G | 7482 |
8 | 95343215 | Nombre del último nivel H | 1925 |
9 | 94977215 | Nombre del último nivel I | 19 |
10 | 95033375 | Nombre del último nivel J | 12 |
Impresiones
Impresiones por Product
y DealType
Use los campos Product
y DealType
de Data Transfer para generar informes comparables a los informes de Ad Manager que usan las dimensiones "Canal de demanda", "Canal programático" y "Tipo de optimización". Seleccione impresiones de NetworkImpressions
(en las que LineItemID
no tenga el valor cero) y NetworkBackfillImpressions
.
Código
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
Resultados
Fila | Product |
DealType |
Total |
1 | Ad Exchange | null | 60000000 |
2 | Ad Exchange | Subasta privada | 2000000 |
3 | Servidor de anuncios | null | 40000000 |
4 | Servidor de anuncios | Acuerdo preferente | 1.000.000 |
5 | Servidor de anuncios | Programática garantizada | 1200000 |
6 | Subasta en exchanges | null | 15000000 |
7 | Subasta en exchanges | Acuerdo preferente | 20.000 |
8 | Subasta en exchanges | Subasta privada | 500000 |
9 | First look | null | 100.000 |
Parámetros del informe
Genere un informe en Informes de Ad Manager con la misma fecha. Seleccione las siguientes dimensiones y métricas:
- Dimensiones:
- Canal de demanda
- Canal de programática
- Tipo de optimización
- Métricas:
- Total de impresiones
- Total de impresiones
Resultados
Fila | Canal de demanda | Canal de programática | Tipo de optimización | Total de impresiones |
1 | Puja Abierta | Subasta abierta | Resto del tráfico | 9.000.000 |
2 | Puja Abierta | Subasta abierta | Competencia optimizada | 7000 |
3 | Puja Abierta | Subasta abierta | CPM objetivo | 5.993.000 |
4 | Puja Abierta | Acuerdos preferentes | Resto del tráfico | 20.000 |
5 | Puja Abierta | Subasta privada | Resto del tráfico | 496.000 |
6 | Puja Abierta | Subasta privada | Competencia optimizada | 4.000 |
7 | Servidor de anuncios | (no aplicable) | Resto del tráfico | 40.000.000 |
8 | Servidor de anuncios | Acuerdos preferentes | Resto del tráfico | 1.000.000 |
9 | Servidor de anuncios | Programática garantizada | Resto del tráfico | 1.200.000 |
10 | Ad Exchange | Subasta abierta | Resto del tráfico | 48.000.000 |
11 | Ad Exchange | Subasta abierta | First look | 100.000 |
12 | Ad Exchange | Subasta abierta | Competencia optimizada | 10.000 |
13 | Ad Exchange | Subasta abierta | CPM objetivo | 11.990.000 |
14 | Ad Exchange | Subasta privada | Resto del tráfico | 1.995.000 |
15 | Ad Exchange | Subasta privada | Competencia optimizada | 5000 |
Directa
- Data Transfer:
Product
=Servidor de anuncios
DealType
esnull
- Fila 3: 40.000.000
- Informes de Ad Manager:
- Canal de demanda = "Servidor de anuncios"
- Canal programático = "(No aplicable)"
- Tipo de optimización = "Resto del tráfico"
- Fila 7: 40.000.000
Acuerdos preferentes
- Data Transfer:
Product
=Servidor de anuncios
DealType
esacuerdo preferente
- Fila 4: 1.000.000
- Informes de Ad Manager:
- Canal de demanda = "Servidor de anuncios"
- Canal programático = "Acuerdos preferentes"
- Tipo de optimización = "Resto del tráfico"
- Fila 8: 1.000.000
- Data Transfer:
Product
=Subasta en exchanges
DealType
esacuerdo preferente
- Fila 7: 20.000
-
- Informes de Ad Manager:
- Canal de demanda = "Subasta Abierta"
- Canal programático = "Acuerdos preferentes"
- Tipo de optimización = "Resto del tráfico"
- Fila 4: 20.000
Programática garantizada
- Data Transfer:
Product
=Servidor de anuncios
DealType
esProgramática garantizada
- Fila 5: 1.200.000
- Informes de Ad Manager:
- Canal de demanda = "Servidor de anuncios"
- Canal programático = "Programática garantizada"
- Tipo de optimización = "Resto del tráfico"
- Fila 9: 1.200.000
Subasta abierta de Ad Exchange (sin incluir first look)
- Data Transfer:
Product
=Ad Exchange
DealType
esnull
- Fila 1: 60.000.000
- Informes de Ad Manager:
- Canal de demanda = "Ad Exchange"
- Canal programático = "Subasta abierta"
- Tipo de optimización: "Resto del tráfico", "CPM objetivo" y "Competencia optimizada"
- Filas 10, 12 y 13 en total: 48.000.000 + 10.000 + 11.990.000 = 60.000.000
Subasta privada de Ad Exchange
- Data Transfer:
Product
=Ad Exchange
DealType
esSubasta privada
- Fila 2: 2.000.000
- Informes de Ad Manager:
- Canal de demanda = "Ad Exchange"
- Canal programático = "Subasta privada"
- Tipo de optimización = "Resto del tráfico", "Competencia optimizada"
- Filas 14 y 15 en total: 1.995.000 + 5000 = 2.000.000
Subasta abierta de Subasta Abierta
- Data Transfer:
Product
=Subasta en exchanges
DealType
esnull
- Fila 6: 15.000.000
- Informes de Ad Manager:
- Canal de demanda = "Subasta Abierta"
- Canal programático = "Subasta abierta"
- Tipo de optimización: "Resto del tráfico", "CPM objetivo" y "Competencia optimizada"
- Filas 1, 2 y 3 en total: 9.000.000 + 7000 + 5.993.000 = 15.000.000
Subasta privada de Subasta Abierta
- Data Transfer:
Product
=Subasta en exchanges
DealType
esSubasta privada
- Fila 8: 500.000
- Informes de Ad Manager:
- Canal de demanda = "Subasta Abierta"
- Canal programático = "Subasta privada"
- Tipo de optimización = "Resto del tráfico", "Competencia optimizada"
- Filas 5 y 6 en total: 496.000 + 4000 = 500.000
First look
- Data Transfer:
Product
=First look
DealType
esnull
- Fila 9: 100.000
- Informes de Ad Manager:
- Canal de demanda = "Ad Exchange"
- Canal programático = "Subasta abierta"
- Tipo de optimización = "First look"
- Fila 11: 100.000
Revenue
Ingresos de una línea de pedido de CPM
El archivo NetworkImpressions
no contiene datos de ingresos, pero si utiliza el conector de BigQuery, puede usar la tabla de coincidencias de la línea de pedido para encontrar la tarifa de CPM. En caso contrario, utilice la API de Ad Manager para buscar la tarifa de una línea de pedido. Para calcular los ingresos de una línea de pedido de CPM determinada durante un periodo concreto, se cuentan las impresiones, se multiplican por la tarifa y se divide por 1000. Dado que la tabla de coincidencias contiene los datos de bloques de anuncios de todos los días, asegúrese de limitar los datos a un solo día.
Código
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'
Resultados
Fila | LineItemID |
Impresiones |
Precio |
CostType |
Ingresos |
1 | 123456789 | 21324 | 3,5 | CPM | 74.634 |
Ingresos de una línea de pedido de CPD
Al igual que ocurre con las líneas de pedido de CPM, puede usar la tabla de coincidencias de la línea de pedido o la API de Ad Manager para encontrar la tarifa de CPD de una línea de pedido. Dado que la tabla de coincidencias contiene los datos de bloques de anuncios de todos los días, asegúrese de limitar los datos a un solo día. Para calcular los ingresos de una línea de pedido de CPD determinada, cuente el número de días en que se sirvieron impresiones y multiplíquelo por la tarifa. Puede incluir el número de impresiones servidas para calcular el eCPM medio.
Código
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
Resultados
Fila | LineItemID |
Días |
CostType |
Precio |
Ingresos |
Impresiones |
Average_eCPM |
1 | 123456789 | 5 | CPD | 4000,0 | 20.000,0 | 7000000 | 2,86 |
Ingresos de una línea de pedido de CPC
Al igual que ocurre con las líneas de pedido de CPM, puede usar la tabla de coincidencias de la línea de pedido o la API de Ad Manager para encontrar la tarifa de CPC de una línea de pedido. Dado que la tabla de coincidencias contiene los datos de bloques de anuncios de todos los días, asegúrese de limitar los datos a un solo día. Para calcular los ingresos de una línea de pedido de CPC determinada durante un periodo concreto, cuente los clics y multiplíquelos por la tarifa. Puede incluir el número de impresiones servidas para calcular el eCPM medio.
Código
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)
Resultados
Fila | LineItemID |
CostType |
Impresiones |
Clics |
CTR |
Precio |
Ingresos |
Average_eCPM |
1 | 123456789 | CPC | 140000 | 23 | 0,02 | 15,5 | 356,5 | 2,55 |
Ingresos de una línea de pedido de vCPM
Al igual que ocurre con las líneas de pedido de CPM, puede usar la tabla de coincidencias de la línea de pedido o la API de Ad Manager para encontrar la tarifa de vCPM de una línea de pedido. Dado que la tabla de coincidencias contiene los datos de bloques de anuncios de todos los días, asegúrese de limitar los datos a un solo día. Para calcular los ingresos de una línea de pedido de vCPM determinada, cuente las impresiones visibles de NetworkActiveViews
y multiplíquelas por la tarifa. Puede incluir el número de impresiones servidas para calcular el eCPM medio.
Código
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'
Resultados
Fila | LineItemID |
CostType |
Impresiones |
ViewableImpressions |
Precio |
Ingresos |
Average_eCPM |
1 | 123456789 | coste por mil ActiveViews, CPMAV | 500000 | 150000 | 10 | 1500,0 | 3,0 |
Ingresos de un anunciante
Para calcular los ingresos de un anunciante determinado durante un periodo concreto, cuente las impresiones de cada línea de pedido y multiplique el resultado por la tarifa. Use la tabla de coincidencias de la línea de pedido para encontrar la tarifa y la tabla de coincidencias de la empresa para encontrar el nombre del anunciante.
Código
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'
Resultados
Fila | AdvertiserID |
NombreEmpresa |
LineItemID |
Impresiones |
Precio |
CostType |
Ingresos |
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 |
Códigos servidos
En el caso de las redes que tienen habilitado el respaldo, Data Transfer cuenta un código servido por cada línea de pedido seleccionada en la cadena de respaldo, mientras que los informes de Ad Manager cuentan un código servido solo por la primera línea de pedido seleccionada en la cadena de respaldo. Data Transfer también cuenta un código servido para los anuncios complementarios, mientras que los informes de Ad Manager no. Si quiere que su informe de Data Transfer coincida al máximo posible con el informe de Ad Manager, cuente los códigos servidos solo en los casos en los que VideoFallbackPosition = 0
e IsCompanion
es false
. Es posible que los códigos servidos de mediación en Data Transfer no coincidan con los de los informes de Ad Manager. En función de su implementación, puede haber otras diferencias entre los recuentos de códigos servidos de Data Transfer y los de los informes de Ad Manager.
Códigos servidos, impresiones y tasa de renderizado por línea de pedido de un solo anunciante
Consulte con qué frecuencia los códigos servidos se convierten en impresiones en cada línea de pedido de un anunciante directo. Como se trata de un anunciante directo, estos códigos servidos solo se mostrarán en NetworkCodeServes
, y las impresiones solo estarán en NetworkImpressions
.
Código
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
Resultados
Fila | LineItemID |
CodeServes |
Impresiones |
RenderRate |
1 | 1111111111 | 6000 | 2600 | 43,33 |
2 | 2222222222 | 1.000.000 | 371200 | 37,12 |
3 | 3333333333 | 50000 | 17550 | 35,1 |
4 | 4444444444 | 800000 | 275000 | 34,38 |
5 | 5555555555 | 1500000 | 400000 | 26,66 |
Códigos servidos, impresiones y tasa de renderizado por categoría de dispositivo y tamaño de creatividad entregada
Incluya la categoría de dispositivo y el tamaño de creatividad entregada para ver cómo varían las tasas de renderizado en un pedido de un anunciante.
Código
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
Resultados
Fila | LineItemID |
DeviceCategory |
CreativeSizeDelivered |
CodeServes |
Impresiones |
RenderRate |
1 | 6666666666 | TV conectada | Vídeo/Superposición | 100 | 40 | 40,0 |
2 | 6666666666 | Ordenador | Vídeo/Superposición | 20.000 | 9000 | 45,0 |
3 | 6666666666 | Smartphone | Vídeo/Superposición | 32000 | 25000 | 78,13 |
4 | 6666666666 | Tablet | Vídeo/Superposición | 1000 | 800 | 80,0 |
5 | 7777777777 | TV conectada | 300x250 | 200 | 190 | 95,0 |
6 | 7777777777 | Ordenador | 300x250 | 185000 | 184000 | 99,46 |
7 | 7777777777 | Smartphone | 300x250 | 225000 | 220000 | 97,77 |
8 | 7777777777 | Tablet | 300x250 | 10.000 | 9800 | 98,0 |
9 | 7777777777 | TV conectada | 300x50 | 50 | 50 | 100,0 |
10 | 7777777777 | Ordenador | 300x50 | 1000 | 900 | 90,0 |
11 | 7777777777 | Smartphone | 300x50 | 90000 | 80000 | 88,89 |
12 | 7777777777 | Tablet | 300x50 | 800 | 750 | 93,75 |
Visibilidad
Los datos de visibilidad se pueden encontrar en los archivos de impresiones y Active View mediante los campos ActiveViewEligibleCount
, ActiveViewMeasurableCount
y ActiveViewViewableCount
. Consulte más información sobre estos campos y cómo se definen sus valores.
La visibilidad de un periodo se puede calcular sumando los valores indicados en los archivos o uniendo cada evento y sumando los valores. Puede haber pequeñas diferencias entre estas dos estrategias, que se detallan a continuación.
Impresiones aptas, impresiones medibles e impresiones visibles (en total)
Averigüe el número de impresiones aptas, medibles y visibles de un día determinado. Como hemos dicho anteriormente, deben usarse los archivos de impresiones y de Active View.
Código
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
Resultados
Fila | EligibleImpressions |
MeasurableImpressions |
ViewableImpressions |
1 | 97000000 | 95000000 | 60000000 |
Impresiones aptas, impresiones medibles e impresiones visibles (por impresión unida)
Averigüe el número de impresiones aptas, medibles y visibles de un día determinado uniendo cada evento individual de los archivos de impresiones y de Active View y sumando luego los valores. Hay algunos casos aislados en los que hemos recibido un ping visible según Active View, pero no un ping de impresión. Al combinar datos de Active View con datos de impresiones, puede que observe diferencias entre las impresiones medibles y un menor número de impresiones visibles respecto a la primera consulta, descrita más arriba.
Código
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
Resultados
Fila | EligibleImpressions |
MeasurableImpressions |
ViewableImpressions |
1 | 97000000 | 95000000 | 59900000 |
Pares clave-valor
Uso de claves
Descubra con qué frecuencia aparece cada una de sus claves en una solicitud de anuncio (aparece en CustomTargeting
) y con qué frecuencia se ha utilizado cada clave para servir una línea de pedido (aparece en TargetedCustomCriteria
). Puede ser buena idea archivar las claves activas que no aparezcan en los resultados o que se utilicen con poca frecuencia para no superar su límite de claves.
Código
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
Resultados
Fila | Clave |
KeyUsageCount |
KeyTargetedCount |
1 | clave_abc | 10000000 | 1.000.000 |
2 | clave_def | 25000000 | 5000000 |
3 | clave_ghi | 40000 | 2000 |
4 | clave_jkl | 300000 | 12000 |
5 | clave_mno | 100.000 | 1000 |
Pujas por partners de puja
Descubra con qué frecuencia puja cada uno de sus partners extrayendo las pujas de CustomTargeting
. En el siguiente ejemplo, se espera que el nombre de cada partner empiece por "bidder_prefix_
", como en "bidder_prefix_partnername
", y que la puja de ese partner tenga el formato "bidder_prefix_partnername=1.23
".
Código
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
Resultados
Fila | Postor |
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 | 3.000.000 |
Valores y recuentos de pujas de un único partner de puja
Para un único partner de puja, consulte los valores de puja más habituales y la frecuencia con la que se ha hecho cada puja. En el ejemplo siguiente, seleccione las 10 pujas más habituales de las tablas de impresiones del partner denominado "bidder_partner
" (impresiones en las queCustomTargeting
contenga la clave "bidder_partner
", que tiene definido un precio de puja, como "1,23
").
Código
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
Resultados
Fila | 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 | 100.000 |
8 | 0,04 | 75000 |
9 | 0,10 | 50000 |
10 | 0,06 | 25000 |
Recuentos de pujas y pujas medias
En las tablas de impresiones de todos los partners de puja, puede consultar el número total de pujas y la puja media. En el siguiente ejemplo, se espera que el nombre de cada partner empiece por "bidder_prefix_
", como en "bidder_prefix_partnername
", y que la puja de ese partner tenga el formato "bidder_prefix_partnername=1.23
".
Código
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
Resultados
Fila | Postor |
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 | 3.000.000 | 0,92 |
Recuentos de segmentos de DMP
Las plataformas de gestión de datos suelen transferir los segmentos a los que pertenece un usuario como pares clave-valor. Descubra con qué frecuencia aparecen estos segmentos en las solicitudes de anuncios: cuántas impresiones eran aptas para la segmentación en cada segmento. Extraiga los IDs de segmento de CustomTargeting. En el siguiente ejemplo, se espera que el nombre de la clave sea "seg" y que los valores sean letras y números.
Código
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
Resultados
Fila | Segmento |
Total |
1 | abcd1234 | 10000000 |
2 | efgh5678 | 9000000 |
3 | ijkl9012 | 8000000 |
4 | mnop3456 | 7000000 |
5 | qrst7890 | 6000000 |
6 | uvwx1234 | 5000000 |
7 | yzab5678 | 4000000 |
8 | cdef9012 | 3.000.000 |
9 | ghij3456 | 2000000 |
10 | klmn7890 | 1.000.000 |
Vídeo
Errores de vídeo por URL, ID de bloque de anuncios y posición
Para solucionar problemas de líneas de pedido de vídeo que tengan errores significativos, quizá tenga que encontrar la página o el espacio publicitario de la página que cause más errores. Utilice NetworkVideoConversions
para buscar errores por línea de pedido (donde ActionName
contenga "error
"). Si tiene más de un reproductor de vídeo en una página, los reproductores utilizarán el mismo bloque de anuncios, y usted puede usar una clave como "pos
" para distinguir entre los bloques de anuncios de una página. Puede obtener ese valor pos
de CustomTargeting
. En el siguiente ejemplo, se espera que el nombre de la clave sea "pos
" y se muestran las cinco combinaciones de RefererURL
, AdUnitID
y Position
que causan más errores en una misma línea de pedido de vídeo.
Código
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
Resultados
Fila | RefererURL |
AdUnitID |
Posición |
ErrorCount |
1 | https://example.com/ | 11111111 | superior | 2000 |
2 | https://example.com/url/a | 22222222 | superior | 1500 |
3 | https://example.com/url/b | 22222222 | superior | 1400 |
4 | https://example.com/url/c | 11111111 | superior | 1000 |
5 | https://example.com/url/c | 11111111 | inferior | 500 |