En este artículo, se incluyen ejemplos de cómo crear consultas para los informes de Transferencia de datos de Ad Manager. Obtén más información sobre los archivos de Transferencia de datos y cómo comenzar a recibirlos.
Ten en cuenta que este artículo antes se llamaba "Guía de soluciones de Transferencia de datos".
Impresiones sin completar
Impresiones sin completar de NetworkImpressions
Para conocer la cifra de impresiones sin completar de un día, consulta NetworkImpressions
para ver las entradas en las que LineItemID
es 0
. No hay impresiones sin completar 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 completar de NetworkRequests
También puedes consultar NetworkRequests
para encontrar la cifra de impresiones sin completar. Busca solicitudes en las que IsFilledRequest
sea falso. No hay impresiones sin completar 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 completar por URL
Los informes de Ad Manager pueden mostrar impresiones sin completar por unidad de anuncios o tamaño solicitado, pero no por URL. Incluye RefererURL
para encontrar fácilmente las diez páginas que generan más impresiones sin completar.
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 completar por unidad de anuncios
Busca las unidades de anuncios responsables de la mayor cantidad de impresiones sin completar en una sola página. Si usas el conector de BigQuery, utilice la tabla de coincidencias de la unidad de anuncios para encontrar los nombres de las unidades de anuncios. Dado que la tabla de coincidencias contiene datos de unidades de anuncios para cada día, asegúrate de limitar los datos de la tabla de coincidencias a un 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 |
Nombre de la unidad de anuncios |
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
Usa los campos Product
y DealType
en Transferencia de datos para generar informes comparables con los de Ad Manager que usan las dimensiones "Canal de demanda", "Canal programático" y "Tipo de optimización". Selecciona las impresiones en NetworkImpressions
(donde LineItemID
no sea 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 |
Recuento |
1 | Ad Exchange | nulo | 60000000 |
2 | Ad Exchange | Subasta privada | 2000000 |
3 | Servidor de anuncios | nulo | 40000000 |
4 | Servidor de anuncios | Acuerdo preferido | 1000000 |
5 | Servidor de anuncios | Programática garantizada | 1200000 |
6 | Ofertas de Ad Exchange | nulo | 15000000 |
7 | Ofertas de Ad Exchange | Acuerdo preferido | 20000 |
8 | Ofertas de Ad Exchange | Subasta privada | 500000 |
9 | Primera vista | nulo | 100000 |
Parámetros de los informes
Ejecuta un informe en Ad Manager con la misma fecha. Elige las siguientes dimensiones y métricas:
- Dimensiones:
- Canal de demanda
- Canal programático
- Tipo de optimización
- Métricas:
- Impresiones totales
- Impresiones totales
Resultados
Fila | Canal de demanda | Canal programático | Tipo de optimización | Impresiones totales |
1 | Open Bidding | Subasta abierta | Todo el resto del tráfico | 9,000,000 |
2 | Open Bidding | Subasta abierta | Competencia optimizada | 7,000 |
3 | Open Bidding | Subasta abierta | CPM objetivo | 5,993,000 |
4 | Open Bidding | Acuerdos preferidos | Todo el resto del tráfico | 20,000 |
5 | Open Bidding | Subasta privada | Todo el resto del tráfico | 496,000 |
6 | Open Bidding | Subasta privada | Competencia optimizada | 4,000 |
7 | Servidor de anuncios | (no aplicable) | Todo el resto del tráfico | 40,000,000 |
8 | Servidor de anuncios | Acuerdos preferidos | Todo el resto del tráfico | 1,000,000 |
9 | Servidor de anuncios | Programática garantizada | Todo el resto del tráfico | 1,200,000 |
10 | Ad Exchange | Subasta abierta | Todo el resto del tráfico | 48,000,000 |
11 | Ad Exchange | Subasta abierta | Primera vista | 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 | Todo el resto del tráfico | 1,995,000 |
15 | Ad Exchange | Subasta privada | Competencia optimizada | 5,000 |
Directo
- Transferencia de datos:
Product
=Ad Server
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 = "Todo el resto del tráfico"
- Fila 7: 40,000,000
Acuerdos preferidos
- Transferencia de datos:
Product
=Ad Server
DealType
esPreferred Deal
- Fila 4: 1,000,000
- Informes de Ad Manager:
- Canal de demanda = "Servidor de anuncios"
- Canal programático = "Acuerdos preferidos"
- Tipo de optimización = "Todo el resto del tráfico"
- Fila 8: 1,000,000
- Transferencia de datos:
Product
=Exchange Bidding
DealType
esPreferred Deal
- Fila 7: 20,000
-
- Informes de Ad Manager:
- Canal de demanda = "Open Bidding"
- Canal programático = "Acuerdos preferidos"
- Tipo de optimización = "Todo el resto del tráfico"
- Fila 4: 20,000
Programática garantizada
- Transferencia de datos:
Product
=Ad Server
DealType
esProgrammatic Guaranteed
- 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 = "Todo el resto del tráfico"
- Fila 9: 1,200,000
Subasta abierta de Ad Exchange (no incluye Primera vista)
- Transferencia de datos:
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 = "Todo el resto del tráfico", "CPM objetivo", "Competencia optimizada"
- Total de las filas 10, 12 y 13: 48,000,000 + 10,000 + 11,990,000 = 60,000,000
Subasta privada de Ad Exchange
- Transferencia de datos:
Product
=Ad Exchange
DealType
esPrivate Auction
- Fila 2: 2,000,000
- Informes de Ad Manager:
- Canal de demanda = "Ad Exchange"
- Canal programático = "Subasta privada"
- Tipo de optimización = "Todo el resto del tráfico", "Competencia optimizada"
- Total de las filas 14 y 15: 1,995,000 + 5,000 = 2,000,000
Subasta abierta de Open Bidding
- Transferencia de datos:
Product
=Exchange Bidding
DealType
esnull
- Fila 6: 15,000,000
- Informes de Ad Manager:
- Canal de demanda = "Open Bidding"
- Canal programático = "Subasta abierta"
- Tipo de optimización = "Todo el resto del tráfico", "CPM objetivo", "Competencia optimizada"
- Total de las filas 1, 2 y 3: 9,000,000 + 7,000 + 5,993,000 = 15,000,000
Subasta privada de Open Bidding
- Transferencia de datos:
Product
=Exchange Bidding
DealType
esPrivate Auction
- Fila 8: 500,000
- Informes de Ad Manager:
- Canal de demanda = "Open Bidding"
- Canal programático = "Subasta privada"
- Tipo de optimización = "Todo el resto del tráfico", "Competencia optimizada"
- Total de las filas 5 y 6: 496,000 + 4,000 = 500,000
Primera vista
- Transferencia de datos:
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 = "Primera vista"
- Fila 11: 100,000
Ingresos
Ingresos por una línea de pedido de CPM
El archivo NetworkImpressions
no contiene los datos de ingresos, pero si usas el conector de BigQuery, puedes utilizar la tabla de coincidencia de línea de pedido para encontrar la tarifa de CPM. De lo contrario, usa la API de Ad Manager para encontrar la tarifa de una línea de pedido. Para encontrar los ingresos de una línea de pedido de CPM determinada en un período específico, realiza un recuento de impresiones, multiplica la cifra resultante por la tarifa y divide el resultado entre 1,000. Dado que la tabla de coincidencias contiene datos de unidades de anuncios para cada día, asegúrate de limitar los datos de la tabla de coincidencias a un 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 |
Tarifa |
CostType |
Ingresos |
1 | 123456789 | 21324 | 3.5 | CPM | 74.634 |
Ingresos por una línea de pedido de CPD
Al igual que con las líneas de pedido de CPM, puedes usar la tabla de concordancia de líneas 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 datos de unidades de anuncios para cada día, asegúrate de limitar los datos de la tabla de coincidencias a un día. Para encontrar los ingresos de una línea de pedido de CPD determinada, cuenta la cantidad de días en los que se publicaron las impresiones y multiplica la cifra resultante por la tarifa. También puedes ver el eCPM promedio si incluyes la cantidad de impresiones publicadas.
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 |
Tarifa |
Ingresos |
Impresiones |
Average_eCPM |
1 | 123456789 | 5 | CPD | 4000.0 | 20000.0 | 7000000 | 2.86 |
Ingresos por una línea de pedido de CPC
Al igual que con las líneas de pedido de CPM, puedes usar la tabla de concordancia de líneas 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 datos de unidades de anuncios para cada día, asegúrate de limitar los datos de la tabla de coincidencias a un día. Para encontrar los ingresos de una línea de pedido de CPC determinada para un período específico, realiza un recuento de clics y multiplique la cifra resultante por la tarifa. También puedes ver el eCPM promedio si incluyes la cantidad de impresiones publicadas.
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 |
Tarifa |
Ingresos |
Average_eCPM |
1 | 123456789 | CPC | 140000 | 23 | 0.02 | 15.5 | 356.5 | 2.55 |
Ingresos por una línea de pedido de vCPM
Al igual que con las líneas de pedido de CPM, puedes usar la tabla de concordancia de líneas 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 datos de unidades de anuncios para cada día, asegúrate de limitar los datos de la tabla de coincidencias a un día. Para encontrar los ingresos de una línea de pedido de vCPM determinada, realiza un recuento de las impresiones visibles de NetworkActiveViews
y multiplique la cifra resultante por la tarifa. También puedes ver el eCPM promedio si incluyes la cantidad de impresiones publicadas.
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 |
Tarifa |
Ingresos |
Average_eCPM |
1 | 123456789 | CPMAV | 500000 | 150000 | 10 | 1500.0 | 3.0 |
Ingresos por un anunciante
Para encontrar los ingresos de un anunciante en particular para un período determinado, realiza un recuento de las impresiones de cada línea de pedido y multiplica la cifra resultante por la tarifa. Usa la tabla de concordancia de líneas de pedido para buscar la tarifa y la tabla de concordancia de empresas 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 |
CompanyName |
LineItemID |
Impresiones |
Tarifa |
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 |
Publicaciones del código
En el caso de las redes con resguardo habilitado, Transferencia de datos cuenta una publicación del código por cada línea de pedido seleccionada en la cadena de resguardo, mientras que los informes de Ad Manager cuentan una publicación del código solo para la primera línea de pedido seleccionada en la cadena de resguardo. Transferencia de datos también cuenta una publicación del código para los anuncios complementarios, mientras que los informes de Ad Manager no. Si quieres que tu informe de Transferencia de datos coincida lo más posible con su informe de Ad Manager, cuenta únicamente las publicaciones de código en las que VideoFallbackPosition = 0
y IsCompanion
sea false
. Es posible que las publicaciones del código de mediación en Transferencia de datos no coincidan con las de los informes de Ad Manager. Según la implementación, puede haber otras diferencias entre los recuentos de publicaciones del código en los informes de Transferencia de datos y los de Ad Manager.
Publicaciones del código, impresiones y tasa de renderización por línea de pedido para un solo anunciante
Averigüa con qué frecuencia las publicaciones del código se convierten en impresiones para cada línea de pedido de un anunciante directo. Como analizamos un anunciante directo, solo se contabilizarán las publicaciones del código 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 | 1000000 | 371200 | 37.12 |
3 | 3333333333 | 50000 | 17550 | 35.1 |
4 | 4444444444 | 800000 | 275000 | 34.38 |
5 | 5555555555 | 1500000 | 400000 | 26.66 |
Publicaciones del código, impresiones y tasa de renderización por categoría de dispositivo y tamaño de creatividad publicado
Incluye la categoría de dispositivo y el tamaño de creatividad publicado para ver cómo varían las tasas de renderización para 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 | De video/superpuestos | 100 | 40 | 40.0 |
2 | 6666666666 | Computadora | De video/superpuestos | 20000 | 9000 | 45.0 |
3 | 6666666666 | Smartphone | De video/superpuestos | 32000 | 25000 | 78.13 |
4 | 6666666666 | Tablet | De video/superpuestos | 1000 | 800 | 80.0 |
5 | 7777777777 | TV conectada | 300 × 250 | 200 | 190 | 95.0 |
6 | 7777777777 | Computadora | 300 × 250 | 185000 | 184000 | 99.46 |
7 | 7777777777 | Smartphone | 300 × 250 | 225000 | 220000 | 97.77 |
8 | 7777777777 | Tablet | 300 × 250 | 10,000 | 9800 | 98.0 |
9 | 7777777777 | TV conectada | 300 × 50 | 50 | 50 | 100.0 |
10 | 7777777777 | Computadora | 300 × 50 | 1000 | 900 | 90.0 |
11 | 7777777777 | Smartphone | 300 × 50 | 90000 | 80000 | 88.89 |
12 | 7777777777 | Tablet | 300 × 50 | 800 | 750 | 93.75 |
Visibilidad
Los datos de visibilidad se pueden encontrar en los campos ActiveViewViewCount
, ActiveViewMeasurableCount
y ActiveViewViewableCount
de los archivos Impression y ActiveView. Obtén más información sobre estos campos y cómo se establecen sus valores.
La visibilidad de un período se puede calcular si se suman los valores que aparecen en los archivos o si se suman los eventos individuales y, luego, se suman 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)
Busca la cantidad de impresiones aptas, medibles y visibles para un día determinado. Como se indicó anteriormente, se deben utilizar los archivos de impresiones y los de Vista activa.
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)
Para encontrar la cantidad de impresiones aptas, medibles y visibles de un día determinado, une los eventos individuales en los archivos de impresiones y los archivos ActiveView, y calcula el total de los valores. Existen casos excepcionales en los que recibimos un ping de Vista activa visible, pero no de impresiones. Cuando se unen los datos de ActiveView con los de Impresiones, es posible que veas diferencias entre las impresiones medibles y observes que hay menos impresiones visibles con relación a la primera consulta, como se detalla 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 la clave
Identifica con qué frecuencia aparece cada una de tus claves en una solicitud de anuncio (aparece en CustomTargeting
) y con qué frecuencoa se usó cada clave para publicar una línea de pedido (aparece en TargetedCustomCriteria
). Las claves activas que no aparecen en los resultados o que se usan con poca frecuencia pueden ser buenas candidatas para archivarlas a fin de permanecer por debajo de tu 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 | key_abc | 10000000 | 1000000 |
2 | key_def | 25000000 | 5000000 |
3 | key_ghi | 40000 | 2000 |
4 | key_jkl | 300000 | 12000 |
5 | key_mno | 100000 | 1000 |
Ofertas de socios de ofertas
Para encontrar con qué frecuencia cada uno de tus socios realiza ofertas, extrae las ofertas de CustomTargeting
. En el siguiente ejemplo, se espera que el nombre de cada socio comience con "bidder_prefix_
" como en "bidder_prefix_partnername
", y se espera que la oferta de ese socio 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 | Ofertante |
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 |
Valores de ofertas y recuentos de un solo socio de ofertas
Cuando se trata de un solo socio de ofertas, puedes encontrar los valores de ofertas más comunes y con qué frecuencia se realizó cada una. En ejemplo a cantinuación, selecciona las 10 ofertas más comunes de las tablas de impresiones para el socio llamado "bidder_partner
" (impresiones en las que CustomTargeting
contiene la clave "bidder_partner
" establecida para un precio de oferta, 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 | 100000 |
8 | 0.04 | 75000 |
9 | 0.10 | 50000 |
10 | 0.06 | 25000 |
Recuentos de ofertas y ofertas promedio
Puedes encontrar la cantidad total de ofertas y la oferta promedio de las tablas de impresiones de todos los socios de ofertas. En el siguiente ejemplo, se espera que el nombre de cada socio comience con "bidder_prefix_
" como en "bidder_prefix_partnername
", y se espera que la oferta de ese socio 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 | Ofertante |
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 |
Recuentos de segmentos de DMP
Las plataformas de administración de datos suelen pasar los segmentos a los que un usuario pertenece como pares clave-valor. Consulta con qué frecuencia aparecen estos segmentos en las solicitudes de anuncios y cuántas impresiones fueron aptas para orientarse a cada segmento. Extrae los IDs de segmento de CustomTargeting. En el siguiente ejemplo, se espera que el nombre de la clave sea "seg" y que los valores estén compuestos por 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 |
Recuento |
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
Errores de video por URL, ID de la unidad de anuncios y posición
Para solucionar problemas con líneas de pedido de video con errores significativos, es posible que debas encontrar la página o el espacio publicitario en la página que sea más responsable de los errores. Usa NetworkVideoConversions
para encontrar los errores por línea de pedido (ActionName
contiene "error
"). Si tienes más de un reproductor de video en una página, los reproductores utilizan la misma unidad de anuncios, y tú usas una clave como "pos
" para distinguir entre las unidades de anuncios de una página, extrae ese pos
de CustomTargeting
. En el siguiente ejemplo, se espera que el nombre de esa clave sea "pos
" y se muestran las cinco combinaciones principales de RefererURL
, AdUnitID
y Position
responsables de los errores en una sola línea de pedido de video.
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 |
Position |
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 |