Cet article contient des exemples montrant comment créer des requêtes pour les rapports sur le transfert de données Ad Manager. En savoir plus sur les fichiers de transfert de données et la procédure à suivre pour en recevoir
Notez que cet article s'appelait auparavant "Livre de recettes sur le transfert de données".
Impressions inachevées
Impressions inachevées provenant de NetworkImpressions
Pour connaître le nombre d'impressions inachevées au cours d'une journée, interrogez NetworkImpressions
pour les entrées où LineItemID
est 0
. Il n'y a aucune impression inachevée dans NetworkBackfillImpressions
.
Code
SELECT COUNT(1) AS UnfilledImpressions FROM NetworkImpressions WHERE LineItemID = 0 AND Time >= ‘2020-01-01’ AND Time < ‘2020-01–02’
Résultats
Ligne | UnfilledImpressions |
1 | 20000000 |
Impressions inachevées provenant de NetworkRequests
Vous pouvez également connaître le nombre d'impressions inachevées en interrogeant NetworkRequests
. Recherchez les requêtes pour lesquelles IsFilledRequest
est défini sur "false". Il n'y a aucune impression inachevée dans NetworkBackfillImpressions
.
Code
SELECT COUNT(1) AS UnfilledImpressions FROM NetworkRequests WHERE NOT IsFilledRequest AND Time >= '2020-01-01' AND Time < '2020-01-02'
Résultats
Ligne | UnfilledImpressions |
1 | 20000000 |
Impressions inachevées par URL
Les rapports Ad Manager peuvent afficher les impressions inachevées par bloc d'annonces ou taille demandée, mais pas par URL. Incluez RefererURL
pour trouver les 10 pages qui génèrent le plus d'impressions inachevées.
Code
SELECT RefererURL, COUNT(1) AS UnfilledImpressions FROM NetworkImpressions WHERE LineItemID = 0 AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY RefererURL ORDER BY UnfilledImpressions DESC LIMIT 10
Résultats
Ligne | 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 |
Impressions inachevées par bloc d'annonces
Identifiez les blocs d'annonces responsables du plus grand nombre d'impressions inachevées sur une même page. Si vous utilisez le connecteur BigQuery, utilisez la table des correspondances des blocs d'annonces pour trouver le nom des blocs d'annonces. La table des correspondances contient les données des blocs d'annonces de chaque jour. Assurez-vous donc de la limiter à un jour.
Code
SELECT AdUnitID, Name AS AdUnitName, COUNT(1) AS UnfilledImpressions FROM NetworkImpressions AS NI INNER JOIN MatchTableAdUnit AS MTAU ON AdUnitID = ID AND LineItemID = 0 AND Time >= '2020-01-01' AND Time < '2020-01-02' AND RefererURL = 'https://example.com/' AND MTAU._DATA_DATE = '2020-01-01' GROUP BY AdUnitID, AdUnitName ORDER BY UnfilledImpressions DESC, AdUnitID LIMIT 10
Résultats
Ligne | AdUnitID |
AdUnitName |
UnfilledImpressions |
1 | 95730695 | Nom du dernier niveau A | 1123439 |
2 | 95033015 | Nom du dernier niveau B | 1116622 |
3 | 95033615 | Nom du dernier niveau C | 1102641 |
4 | 95049575 | Nom du dernier niveau D | 772235 |
5 | 95734535 | Nom du dernier niveau E | 744777 |
6 | 95584895 | Nom du dernier niveau F | 27593 |
7 | 95045255 | Nom du dernier niveau G | 7482 |
8 | 95343215 | Nom du dernier niveau H | 1925 |
9 | 94977215 | Nom du dernier niveau I | 19 |
10 | 95033375 | Nom du dernier niveau J | 12 |
Impressions
Impressions par Product
et DealType
Utilisez les champs Product
et DealType
dans le transfert de données pour générer des rapports comparables aux rapports Ad Manager qui utilisent les dimensions "Critère de demande", "Canal programmatique" et "Type d'optimisation". Sélectionnez les impressions provenant de NetworkImpressions
(où LineItemID
n'est pas "0") et NetworkBackfillImpressions
.
Code
SELECT Product, DealType, COUNT(1) AS Impressions FROM NetworkImpressions WHERE LineItemID != 0 AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY Product, DealType UNION ALL SELECT Product, DealType, COUNT(1) AS Impressions FROM NetworkBackfillImpressions WHERE Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY Product, DealType ORDER BY Product, DealType
Résultats
Ligne | Produit |
DealType |
Nombre |
1 | Place de marché | null | 60000000 |
2 | Place de marché | Enchère privée | 2000000 |
3 | Ad server | null | 40000000 |
4 | Ad server | Accord préféré | 1000000 |
5 | Ad server | Programmatique garanti | 1200000 |
6 | Enchères sur une place de marché | null | 15000000 |
7 | Enchères sur une place de marché | Accord préféré | 20 000 |
8 | Enchères sur une place de marché | Enchère privée | 500000 |
9 | Premier aperçu | null | 100 000 |
Paramètres du rapport
Générez un rapport Ad Manager en utilisant la même date. Choisissez les dimensions et les métriques suivantes :
- Dimensions :
- Critère de demande
- Canal programmatique
- Type d'optimisation
- Métriques :
- Nombre total d'impressions
- Nombre total d'impressions
Résultats
Ligne | Critère de demande | Canal programmatique | Type d'optimisation | Nombre total d'impressions |
1 | Open Bidding | Enchère ouverte | Tout autre trafic | 9 000 000 |
2 | Open Bidding | Enchère ouverte | Concurrence optimisée | 7 000 |
3 | Open Bidding | Enchère ouverte | CPM cible | 5 993 000 |
4 | Open Bidding | Accords préférés | Tout autre trafic | 20 000 |
5 | Open Bidding | Enchère privée | Tout autre trafic | 496 000 |
6 | Open Bidding | Enchère privée | Concurrence optimisée | 4 000 |
7 | Ad server | (non applicable) | Tout autre trafic | 40 000 000 |
8 | Ad server | Accords préférés | Tout autre trafic | 1 000 000 |
9 | Ad server | Programmatique garanti | Tout autre trafic | 1 200 000 |
10 | Place de marché | Enchère ouverte | Tout autre trafic | 48 000 000 |
11 | Place de marché | Enchère ouverte | Premier aperçu | 100 000 |
12 | Place de marché | Enchère ouverte | Concurrence optimisée | 10 000 |
13 | Place de marché | Enchère ouverte | CPM cible | 11 990 000 |
14 | Place de marché | Enchère privée | Tout autre trafic | 1 995 000 |
15 | Place de marché | Enchère privée | Concurrence optimisée | 5 000 |
Direct
- Transfert de données :
Product
=Ad Server
DealType
estnull
- Ligne 3 : 40 000 000
- Rapports Ad Manager :
- Critère de demande = "Ad server"
- Canal programmatique = "(Non applicable)"
- Type d'optimisation = "Tout autre trafic"
- Ligne 7 : 40 000 000
Accords préférés
- Transfert de données :
Product
=Ad Server
DealType
estPreferred Deal
- Ligne 4 : 1 000 000
- Rapports Ad Manager :
- Critère de demande = "Ad server"
- Canal programmatique = "Accords préférés"
- Type d'optimisation = "Tout autre trafic"
- Ligne 8 : 1 000 000
- Transfert de données :
Product
=Exchange Bidding
DealType
estPreferred Deal
- Ligne 7 : 20 000
-
- Rapports Ad Manager :
- Critère de demande = "Open Bidding"
- Canal programmatique = "Accords préférés"
- Type d'optimisation = "Tout autre trafic"
- Ligne 4 : 20 000
Programmatique garanti
- Transfert de données :
Product
=Ad Server
DealType
estProgrammatic Guaranteed
- Ligne 5 : 1 200 000
- Rapports Ad Manager :
- Critère de demande = "Ad server"
- Canal programmatique = "Programmatique garanti"
- Type d'optimisation = "Tout autre trafic"
- Ligne 9 : 1 200 000
Enchère ouverte sur une place de marché (à l'exclusion du premier aperçu)
- Transfert de données :
Product
=Ad Exchange
DealType
estnull
- Ligne 1 : 60 000 000
- Rapports Ad Manager :
- Critère de demande = "Place de marché"
- Canal programmatique = "Enchères ouvertes"
- Type d'optimisation = "Tout autre trafic", "CPM cible", "Concurrence optimisée"
- Total des ligne 10, ligne 12 et ligne 13 : 48 000 000 + 10 000 + 11 990 000 = 60 000 000
Enchère privée sur une place de marché
- Transfert de données :
Product
=Ad Exchange
DealType
estPrivate Auction
- Ligne 2 : 2 000 000
- Rapports Ad Manager :
- Critère de demande = "Place de marché"
- Canal programmatique = "Enchères privées"
- Type d'optimisation = "Tout autre trafic", "Concurrence optimisée"
- Total des ligne 14 et ligne 15 : 1 995 000 + 5 000 = 2 000 000
Enchère ouverte Open Bidding
- Transfert de données :
Product
=Exchange Bidding
DealType
estnull
- Ligne 6 : 15 000 000
- Rapports Ad Manager :
- Critère de demande = "Open Bidding"
- Canal programmatique = "Enchères ouvertes"
- Type d'optimisation = "Tout autre trafic", "CPM cible", "Concurrence optimisée"
- Total des ligne 1, ligne 2 et ligne 3 : 9 000 000 + 7 000 + 5 993 000 = 15 000 000
Enchère privée Open Bidding
- Transfert de données :
Product
=Exchange Bidding
DealType
estPrivate Auction
- Ligne 8 : 500 000
- Rapports Ad Manager :
- Critère de demande = "Open Bidding"
- Canal programmatique = "Enchères privées"
- Type d'optimisation = "Tout autre trafic", "Concurrence optimisée"
- Total des ligne 5 et ligne 6 : 496 000 + 4 000 = 500 000
Premier aperçu
- Transfert de données :
Product
=First Look
DealType
estnull
- Ligne 9 : 100 000
- Rapports Ad Manager :
- Critère de demande = "Place de marché"
- Canal programmatique = "Enchères ouvertes"
- Type d'optimisation = "Premier aperçu"
- Ligne 11 : 100 000
Revenus
Revenus d'un élément de campagne au CPM
Le fichier NetworkImpressions
ne contient pas de données sur les revenus, mais si vous utilisez le connecteur BigQuery, vous pouvez utiliser la table des correspondances des éléments de campagne pour trouver le tarif au CPM. Sinon, utilisez l'API Ad Manager pour connaître le tarif d'un élément de campagne. Recherchez les revenus d'un élément de campagne au CPM spécifique pour une période donnée. Pour ce faire, comptabilisez les impressions, multipliez-les par le tarif, puis divisez par 1 000. La table des correspondances contient les données des blocs d'annonces de chaque jour. Assurez-vous donc de la limiter à un jour.
Code
WITH Impression_Data AS ( SELECT LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE LineItemID = 123456789 AND Time >= '2020-01-01' AND Time < '2020-01-11' GROUP BY LineItemID ) SELECT LineItemID, Impressions, CostPerUnitInNetworkCurrency AS Rate, CostType, ((Impressions * CostPerUnitInNetworkCurrency) / 1000) AS Revenue FROM Impression_Data JOIN MatchTableLineItem ON LineItemID = ID WHERE MatchTableLineItem._DATA_DATE = '2020-01-10'
Résultats
Ligne | LineItemID |
Impressions |
Rate |
CostType |
Revenue |
1 | 123456789 | 21324 | 3,5 | CPM | 74,634 |
Revenus d'un élément de campagne au CPJ
Comme pour les éléments de campagne au CPM, vous pouvez utiliser la table des correspondances des éléments de campagne ou l'API Ad Manager pour trouver le tarif au CPJ d'un élément de campagne. La table des correspondances contient les données des blocs d'annonces de chaque jour. Assurez-vous donc de la limiter à un jour. Pour connaître les revenus d'un élément de campagne au CPJ donné, comptabilisez le nombre de jours pendant lesquels les impressions ont été diffusées, puis multipliez-les par le tarif. Vous pouvez inclure le nombre d'impressions diffusées pour trouver l'eCPM moyen.
Code
WITH Impression_Data AS ( SELECT SUBSTR(Time, 0, 10) AS Date, LineItemID, CostPerUnitInNetworkCurrency AS Rate, CostType, COUNT(1) AS Impressions FROM NetworkImpressions JOIN MatchTableLineItem ON LineItemID = ID WHERE LineItemID = 123456789 AND MatchTableLineItem._DATA_DATE = '2020-01-01' GROUP BY Date, LineItemID, Rate, CostType ) SELECT LineItemID, COUNT(1) AS Days, CostType, Rate, (COUNT(1) * Rate) AS Revenue, SUM(Impressions) AS Impressions, ROUND((COUNT(1) * Rate) / SUM(Impressions) * 1000, 2) AS Average_eCPM FROM Impression_Data GROUP BY LineItemID, CostType, Rate
Résultats
Ligne | LineItemID |
Jours |
CostType |
Rate |
Revenue |
Impressions |
Average_eCPM |
1 | 123456789 | 5 | CPJ | 4000,0 | 20 000,0 | 7000000 | 2,86 |
Revenus d'un élément de campagne au CPC
Comme pour les éléments de campagne au CPM, vous pouvez utiliser la table des correspondances des éléments de campagne ou l'API Ad Manager pour trouver le tarif au CPC d'un élément de campagne. La table des correspondances contient les données des blocs d'annonces de chaque jour. Assurez-vous donc de la limiter à un jour. Pour trouver les revenus d'un élément de campagne au CPC spécifique pour une période donnée, comptabilisez les clics et multipliez-les par le tarif. Vous pouvez inclure le nombre d'impressions diffusées pour trouver l'eCPM moyen.
Code
WITH Impression_Data AS ( SELECT LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE LineItemID = 123456789 GROUP BY LineItemID ), Click_Data AS ( SELECT LineItemID, CostPerUnitInNetworkCurrency AS Rate, CostType, COUNT(1) AS Clicks FROM NetworkClicks JOIN MatchTableLineItem ON LineItemID = ID WHERE LineItemID = 123456789 AND MatchTableLineItem._DATA_DATE = '2020-01-01' GROUP BY LineItemID, Rate, CostType ) SELECT LineItemID, CostType, Impressions, Clicks, ROUND(Clicks / Impressions * 100, 2) AS CTR, Rate, (Clicks * Rate) AS Revenue, ROUND((Clicks * Rate) / Impressions * 1000, 2) AS Average_eCPM FROM Impression_Data JOIN Click_Data USING (LineItemID)
Résultats
Ligne | LineItemID |
CostType |
Impressions |
Clics |
CTR |
Rate |
Revenue |
Average_eCPM |
1 | 123456789 | CPC | 140000 | 23 | 0,02 | 15,5 | 356,5 | 2,55 |
Revenus d'un élément de campagne au vCPM
Comme pour les éléments de campagne au CPM, vous pouvez utiliser la table des correspondances des éléments de campagne ou l'API Ad Manager pour trouver le tarif au vCPC d'un élément de campagne. La table des correspondances contient les données des blocs d'annonces de chaque jour. Assurez-vous donc de la limiter à un jour. Pour connaître les revenus d'un élément de campagne au vCPM donné, comptabilisez les impressions visibles provenant de NetworkActiveViews
, puis multipliez-les par le tarif. Vous pouvez inclure le nombre d'impressions diffusées pour trouver l'eCPM moyen.
Code
WITH Active_View_Data AS ( SELECT LineItemID, COUNT(1) AS ViewableImpressions FROM NetworkActiveViews WHERE LineItemID = 123456789 GROUP BY LineItemID ), Impression_Data AS ( SELECT LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE LineItemID = 123456789 GROUP BY LineItemID ) SELECT Active_View_Data.LineItemID, CostType, Impressions, ViewableImpressions, CostPerUnitInNetworkCurrency AS Rate, (CostPerUnitInNetworkCurrency * ViewableImpressions / 1000) AS Revenue, ROUND((CostPerUnitInNetworkCurrency * ViewableImpressions / 1000) / Impressions * 1000, 2) AS Average_eCPM FROM Impression_Data JOIN Active_View_Data USING (LineItemID) JOIN MatchTableLineItem ON Active_View_Data.LineItemID = ID WHERE MatchTableLineItem._DATA_DATE = '2020-08-01'
Résultats
Ligne | LineItemID |
CostType |
Impressions |
ViewableImpressions |
Rate |
Revenue |
Average_eCPM |
1 | 123456789 | CPMAV | 500000 | 150000 | 10 | 1 500,0 | 3,0 |
Revenus d'un annonceur
Pour trouver les revenus d'un annonceur spécifique pour une période donnée, comptabilisez les impressions pour chaque élément de campagne et multipliez-les par le tarif. Utilisez la table des correspondances des éléments de campagne pour trouver le tarif et la table des correspondances des entreprises pour trouver le nom de l'annonceur.
Code
WITH Impression_Data AS ( SELECT AdvertiserID, LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE AdvertiserID = 111222333 AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY AdvertiserID, LineItemID ) SELECT AdvertiserID, MTC.Name AS CompanyName, LineItemID, Impressions, CostPerUnitInNetworkCurrency AS Rate, CostType, ((Impressions * CostPerUnitInNetworkCurrency) / 1000) AS Revenue FROM Impression_Data JOIN MatchTableLineItem AS MTLI ON LineItemID = MTLI.ID JOIN MatchTableCompany AS MTC ON AdvertiserID = MTC.ID WHERE MTLI._DATA_DATE = '2020-01-01' AND MTC._DATA_DATE = '2020-01-01'
Résultats
Ligne | 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 |
Diffusions de code
Pour les réseaux sur lesquels les créations de remplacement sont activées, le transfert de données comptabilise une diffusion de code pour chaque élément de campagne sélectionné dans la série de créations de remplacement. Les rapports Ad Manager ne comptabilisent quant à eux une diffusion de code que pour le premier élément de campagne sélectionné dans la série de créations de remplacement. Le transfert de données comptabilise également une diffusion de code pour les annonces associées, contrairement aux rapports Ad Manager. Si vous souhaitez que votre rapport sur les transferts de données se rapproche le plus possible de votre rapport Ad Manager, ne comptabilisez des diffusions de code que lorsque VideoFallbackPosition = 0
et IsCompanion
est false
. Les diffusions de code de médiation dans le cadre du transfert de données peuvent ne pas correspondre à celles des rapports Ad Manager. En fonction de votre implémentation, il peut y avoir d'autres différences entre le nombre de diffusions de code dans le transfert de données et les rapports Ad Manager.
Diffusions de code, impressions et taux d'affichage par élément de campagne pour un seul annonceur
Déterminez la fréquence à laquelle les diffusions de code génèrent des impressions pour chaque élément de campagne d'un annonceur direct. Étant donné que nous examinons un annonceur direct, ces diffusions de code ne se trouveront que dans NetworkCodeServes
, et les impressions ne seront que dans NetworkImpressions
.
Code
WITH Code_Serve_Data AS ( SELECT LineItemID, COUNT(1) AS CodeServes FROM NetworkCodeServes WHERE AdvertiserID = 12345678 AND VideoFallbackPosition = 0 AND IsCompanion IS FALSE AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY LineItemID ), Impression_Data AS ( SELECT LineItemID, COUNT(1) AS Impressions FROM NetworkImpressions WHERE AdvertiserID = 12345678 AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY LineItemID ) SELECT LineItemID, CodeServes, Impressions, ROUND((Impressions / CodeServes) * 100, 2) AS RenderRate FROM Code_Serve_Data JOIN Impression_Data USING (LineItemID) ORDER BY RenderRate DESC
Résultats
Ligne | 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 |
Diffusions de code, impressions et taux d'affichage par catégorie d'appareil et taille de création diffusée
Incluez la catégorie d'appareil et la taille de la création diffusée pour voir comment les taux d'affichage varient pour un ordre d'un annonceur.
Code
WITH Code_Serve_Data AS ( SELECT LineItemID, CreativeSizeDelivered, DeviceCategory, COUNT(1) AS CodeServes FROM NetworkCodeServes WHERE AdvertiserID = 87654321 AND OrderID = 1111111111 AND VideoFallbackPosition = 0 AND IsCompanion IS FALSE GROUP BY LineItemID, CreativeSizeDelivered, DeviceCategory ), Impression_Data AS ( SELECT LineItemID, CreativeSizeDelivered, DeviceCategory, COUNT(1) AS Impressions FROM NetworkImpressions WHERE AdvertiserID = 87654321 AND OrderID = 1111111111 GROUP BY LineItemID, CreativeSizeDelivered, DeviceCategory ) SELECT LineItemID, DeviceCategory, CreativeSizeDelivered, CodeServes, Impressions, ROUND((Impressions / CodeServes) * 100, 2) AS RenderRate FROM Code_Serve_Data JOIN Impression_Data USING (LineItemID, CreativeSizeDelivered, DeviceCategory) ORDER BY LineItemID, CreativeSizeDelivered, DeviceCategory
Résultats
Ligne | LineItemID |
DeviceCategory |
CreativeSizeDelivered |
CodeServes |
Impressions |
RenderRate |
1 | 6666666666 | TV connectée | Taille du lecteur vidéo | 100 | 40 | 40,0 |
2 | 6666666666 | Ordinateur | Taille du lecteur vidéo | 20 000 | 9000 | 45,0 |
3 | 6666666666 | Smartphone | Taille du lecteur vidéo | 32000 | 25000 | 78,13 |
4 | 6666666666 | Tablette | Taille du lecteur vidéo | 1000 | 800 | 80,0 |
5 | 7777777777 | TV connectée | 300 x 250 | 200 | 190 | 95,0 |
6 | 7777777777 | Ordinateur | 300 x 250 | 185000 | 184000 | 99,46 |
7 | 7777777777 | Smartphone | 300 x 250 | 225000 | 220000 | 97,77 |
8 | 7777777777 | Tablette | 300 x 250 | 10 000 | 9800 | 98,0 |
9 | 7777777777 | TV connectée | 300 x 50 | 50 | 50 | 100 |
10 | 7777777777 | Ordinateur | 300 x 50 | 1000 | 900 | 90,0 |
11 | 7777777777 | Smartphone | 300 x 50 | 90000 | 80000 | 88,89 |
12 | 7777777777 | Tablette | 300 x 50 | 800 | 750 | 93,75 |
Visibilité
Les données de visibilité sont disponibles dans les fichiers "Impressions" et "ActiveView" à l'aide des champs ActiveViewEligibleCount
, ActiveViewMeasurableCount
et ActiveViewViewableCount
. En savoir plus sur ces champs et la façon dont leurs valeurs sont définies
La visibilité pour une période peut être calculée en additionnant les valeurs trouvées dans les fichiers ou en associant les événements individuels, puis en additionnant les valeurs. Il peut exister de légères différences entre ces deux stratégies, détaillées ci-dessous.
Impressions éligibles, impressions mesurables et impressions visibles (au total)
Recherchez le nombre d'impressions éligibles, mesurables et visibles pour un jour donné. Comme indiqué ci-dessus, les fichiers Impression et ActiveView doivent être utilisés.
Code
DECLARE startdate STRING DEFAULT '2023-01-01 00:00:00';
DECLARE enddate STRING DEFAULT '2023-01-02 00:00:00';
WITH ActiveView_Data AS (
SELECT DeviceCategory, VideoPosition,
SUM(IFNULL(ActiveViewMeasurableCount, 0)) AS ActiveViewMeasurableCount,
SUM(IFNULL(ActiveViewViewableCount, 0)) AS ActiveViewViewableCount
FROM (
SELECT
DeviceCategory, VideoPosition,
SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount,
SUM(ActiveViewViewableCount) AS ActiveViewViewableCount
FROM
NetworkActiveViews
WHERE Time >= startdate AND Time < enddate
GROUP BY DeviceCategory, VideoPosition
UNION ALL
SELECT
DeviceCategory, VideoPosition,
SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount,
SUM(ActiveViewViewableCount) AS ActiveViewViewableCount
FROM
NetworkBackfillActiveViews
WHERE Time >= startdate AND Time < enddate
GROUP BY DeviceCategory, VideoPosition
)
GROUP BY DeviceCategory, VideoPosition
), Impression_Data AS (
SELECT DeviceCategory, VideoPosition,
SUM(IFNULL(ActiveViewEligibleCount, 0)) AS ActiveViewEligibleCount,
SUM(IFNULL(ActiveViewMeasurableCount, 0)) AS ActiveViewMeasurableCount
FROM (
SELECT
DeviceCategory, VideoPosition,
SUM(ActiveViewEligibleCount) AS ActiveViewEligibleCount,
SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount
FROM
NetworkImpressions
WHERE
Time >= startdate AND Time < enddate
AND LineItemID !=0
GROUP BY DeviceCategory, VideoPosition
UNION ALL
SELECT
DeviceCategory, VideoPosition,
SUM(ActiveViewEligibleCount) AS ActiveViewEligibleCount,
SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount
FROM
NetworkBackfillImpressions
WHERE
Time >= startdate AND Time < enddate
GROUP BY DeviceCategory, VideoPosition
)
GROUP BY DeviceCategory, VideoPosition
)
SELECT
DeviceCategory,
VideoPosition,
IFNULL(ActiveViewEligibleCount, 0) AS ActiveViewEligibleCount,
IFNULL(i.ActiveViewMeasurableCount, 0) + IFNULL(av.ActiveViewMeasurableCount, 0) AS ActiveViewMeasurableCount,
IFNULL(ActiveViewViewableCount, 0) AS ActiveViewViewableCount
FROM Impression_Data i
FULL JOIN ActiveView_Data av USING (DeviceCategory, VideoPosition)
ORDER BY DeviceCategory, VideoPosition
Résultats
Ligne | EligibleImpressions |
MeasurableImpressions |
ViewableImpressions |
1 | 97000000 | 95000000 | 60000000 |
Impressions éligibles, impressions mesurables et impressions visibles (par impression jointe)
Trouvez le nombre d'impressions éligibles, mesurables et visibles pour un jour donné en associant les événements individuels dans les fichiers d'impression et Active View, puis en additionnant les valeurs. Dans de rares cas, nous avons reçu un ping Active View visible, mais pas de ping d'impression. Lorsque vous associez les données Active View aux données sur les impressions, vous pouvez constater des différences entre les impressions mesurables et une diminution des impressions visibles par rapport à la première requête présentée ci-dessus.
Code
DECLARE startdate STRING DEFAULT '2023-01-01 00:00:00'; DECLARE enddate STRING DEFAULT '2023-01-02 00:00:00'; WITH ActiveView_Data AS ( SELECT CAST(substr(Time, 0, 10) as Date) AS Date, Product, KeyPart, TimeUsec2, SUM(ActiveViewMeasurableCount) AS avAVMC, SUM(ActiveViewViewableCount) AS ActiveViewViewableCount FROM NetworkActiveViews WHERE Time >= startdate AND Time < enddate GROUP BY Date, Product, KeyPart, TimeUsec2 UNION ALL SELECT CAST(substr(Time, 0, 10) as Date) AS Date, Product, KeyPart, TimeUsec2, SUM(ActiveViewMeasurableCount) AS avAVMC, SUM(ActiveViewViewableCount) AS ActiveViewViewableCount FROM NetworkBackfillActiveViews WHERE Time >= startdate AND Time < enddate GROUP BY Date, Product, KeyPart, TimeUsec2 ), Impression_Data AS ( SELECT CAST(substr(i.Time, 0, 10) as Date) AS Date, i.Product, i.TimeUsec2, i.KeyPart, i.ActiveViewEligibleCount AS ActiveViewEligibleCount, i.ActiveViewMeasurableCount AS iAVMC, av.avAVMC AS avAVMC, av.ActiveViewViewableCount FROM NetworkImpressions i LEFT JOIN ActiveView_Data AS av USING (Product, Keypart, TimeUsec2) WHERE i.Time >= startdate AND i.Time < enddate AND i.LineItemID !=0 UNION ALL SELECT CAST(substr(i.Time, 0, 10) as Date) AS Date, i.Product, i.TimeUsec2, i.KeyPart, i.ActiveViewEligibleCount AS ActiveViewEligibleCount, i.ActiveViewMeasurableCount AS iAVMC, av.avAVMC AS avAVMC, av.ActiveViewViewableCount FROM NetworkBackfillImpressions i LEFT JOIN ActiveView_Data AS av USING (Product, Keypart, TimeUsec2) WHERE i.Time >= startdate AND i.Time < enddate ), Full_Data AS ( SELECT Date, Product, TimeUsec2, KeyPart, ActiveViewEligibleCount, CASE WHEN ActiveViewViewableCount >=1 THEN 1 ELSE (IFNULL(iAVMC, 0) + IFNULL(avAVMC, 0)) END AS ActiveViewMeasurableCount, IFNULL(ActiveViewViewableCount, 0) AS ActiveViewViewableCount FROM Impression_Data ) SELECT SUM(ActiveViewEligibleCount) AS ActiveViewEligibleCount, SUM(ActiveViewMeasurableCount) AS ActiveViewMeasurableCount, SUM(ActiveViewViewableCount) AS ActiveViewViewableCount FROM Full_Data
Résultats
Ligne | EligibleImpressions |
MeasurableImpressions |
ViewableImpressions |
1 | 97000000 | 95000000 | 59900000 |
Clé-valeurs
Utilisation de la clé
Découvrez la fréquence d'affichage de chacune de vos clés dans une demande d'annonce (dans CustomTargeting
) et la fréquence à laquelle chaque clé a été utilisée pour diffuser un élément de campagne (dans TargetedCustomCriteria
). Les clés actives qui n'apparaissent pas dans les résultats ou qui sont rarement utilisées peuvent être de bons candidats pour l'archivage afin de ne pas dépasser votre limite de clé.
Code
WITH Key_Value_Pairs AS ( SELECT KVPair FROM NetworkImpressions CROSS JOIN UNNEST(SPLIT(CustomTargeting, ';')) AS KVPair WHERE CustomTargeting IS NOT NULL UNION ALL SELECT KVPair FROM NetworkBackfillImpressions CROSS JOIN UNNEST(SPLIT(CustomTargeting, ';')) AS KVPair WHERE CustomTargeting IS NOT NULL ), Targeted_Key_Value_Pairs AS ( SELECT TargetedKVPair FROM NetworkImpressions CROSS JOIN UNNEST(SPLIT(TargetedCustomCriteria, ';')) AS TargetedKVPair WHERE TargetedCustomCriteria IS NOT NULL UNION ALL SELECT TargetedKVPair FROM NetworkBackfillImpressions CROSS JOIN UNNEST (SPLIT(TargetedCustomCriteria, ';')) AS TargetedKVPair WHERE TargetedCustomCriteria IS NOT NULL ), Key_Usage AS ( SELECT REGEXP_REPLACE(KVPair, '=.+', '') AS Key, COUNT(1) AS KeyUsageCount FROM Key_Value_Pairs GROUP BY Key ), Key_Targeted_Usage AS ( SELECT REGEXP_REPLACE(TargetedKVPair, '(!)*(=|~).+', '') AS Key, COUNT(1) AS KeyTargetedCount FROM Targeted_Key_Value_Pairs GROUP BY Key ) SELECT CASE WHEN Key_Usage.Key IS NULL THEN Key_Targeted_Usage.Key ELSE Key_Usage.Key END AS Key, KeyUsageCount, KeyTargetedCount FROM Key_Usage FULL JOIN Key_Targeted_Usage ON Key_Usage.Key = Key_Targeted_Usage.Key ORDER BY Key
Résultats
Ligne | Clé |
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 | 100 000 | 1000 |
Enchères par partenaires d'enchères
Déterminez la fréquence des enchères de chacun de vos partenaires en extrayant les enchères de CustomTargeting
. L'exemple ci-dessous part du principe que le nom de chaque partenaire commence par bidder_prefix_
, comme dans bidder_prefix_partnername
, et qu'une enchère pour ce partenaire est au format bidder_prefix_partnername=1.23
.
Code
SELECT Bidder, COUNT(1) AS BidCount FROM ( SELECT Bidder FROM NetworkImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, '(bidder_prefix_[A-z]+)=[0-9]+\\.[0-9]*')) AS Bidder WHERE CustomTargeting LIKE '%bidder_prefix_%' AND Time >= '2020-01-01' AND Time < '2020-01-02' UNION ALL SELECT Bidder FROM NetworkBackfillImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, '(bidder_prefix_[A-z]+)=[0-9]+\\.[0-9]*')) AS Bidder WHERE CustomTargeting LIKE '%bidder_prefix_%' AND Time >= '2020-01-01' AND Time < '2020-01-02' ) GROUP BY Bidder ORDER BY BidCount
Résultats
Ligne | 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 | 3 000 000 |
Valeurs et nombres d'enchères pour un seul partenaire d'enchères
Pour un seul partenaire d'enchères, identifiez les valeurs d'enchères les plus courantes et la fréquence de chaque enchère. Dans l'exemple ci-dessous, sélectionnez les 10 enchères les plus courantes dans les tableaux d'impressions pour le partenaire nommé bidder_partner
(impressions pour lesquelles CustomTargeting
contient la clé bidder_partner
définie sur un prix d'enchère tel que 1,23
).
Code
SELECT BidPrice, SUM(BidCount) AS BidCount FROM ( SELECT SAFE_CAST(REGEXP_EXTRACT(CustomTargeting, 'bidder_partner=([0-9]+\\.[0-9]*)') AS FLOAT64) AS BidPrice, COUNT(1) AS BidCount FROM NetworkImpressions WHERE CustomTargeting LIKE '%bidder_partner=%' AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY BidPrice UNION ALL SELECT SAFE_CAST(REGEXP_EXTRACT(CustomTargeting, 'bidder_partner=([0-9]+\\.[0-9]*)') AS FLOAT64) AS BidPrice, COUNT(1) AS BidCount FROM NetworkBackfillImpressions WHERE CustomTargeting LIKE '%bidder_partner=%' AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY BidPrice ) GROUP BY BidPrice ORDER BY BidCount DESC LIMIT 10
Résultats
Ligne | 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 |
Nombre d'enchères et enchères moyennes
Le nombre total d'enchères et l'enchère moyenne sont disponibles dans les tableaux d'impressions de tous les partenaires d'enchères. L'exemple ci-dessous part du principe que le nom de chaque partenaire commence par bidder_prefix_
, comme dans bidder_prefix_partnername
, et qu'une enchère pour ce partenaire est au format bidder_prefix_partnername=1.23
.
Code
WITH Bid_Data AS ( SELECT REGEXP_EXTRACT(Bid, '(bidder_prefix_[A-z]+)=[0-9]+\\.[0-9]*') AS Bidder, SAFE_CAST(REGEXP_EXTRACT(Bid, 'bidder_prefix_[A-z]+=([0-9]+\\.[0-9]*)') AS FLOAT64) AS BidPrice, COUNT(1) AS BidCount FROM ( SELECT Bid FROM NetworkImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, 'bidder_prefix_[A-z]+=[0-9]+\\.[0-9]*')) AS Bid WHERE CustomTargeting LIKE '%bidder_prefix_%' AND Time >= '2020-01-01' AND Time < '2020-01-02' UNION ALL SELECT Bid FROM NetworkBackfillImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, 'bidder_prefix_[A-z]+=[0-9]+\\.[0-9]*')) AS Bid WHERE CustomTargeting LIKE '%bidder_prefix_%' AND Time >= '2020-01-01' AND Time < '2020-01-02' ) GROUP BY Bidder, BidPrice ), BidPrice_Totals AS ( SELECT Bidder, SUM(BidValue) AS TotalBidValue FROM ( SELECT Bidder, BidPrice * BidCount AS BidValue FROM Bid_Data ) GROUP BY Bidder ), BidCount_Totals AS ( SELECT Bidder, SUM(BidCount) AS TotalBidCount FROM Bid_Data GROUP BY Bidder ) SELECT BidCount_Totals.Bidder, TotalBidCount, ROUND((TotalBidValue / TotalBidCount), 2) AS AverageBid FROM BidCount_Totals INNER JOIN BidPrice_Totals ON BidCount_Totals.Bidder = BidPrice_Totals.Bidder ORDER BY Bidder
Résultats
Ligne | 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 | 3 000 000 | 0,92 |
Nombre de segments DMP
Les plates-formes de gestion des données transmettent souvent les segments auxquels un utilisateur appartient sous forme de paires clé-valeur. Découvrez la fréquence à laquelle ces segments apparaissent dans les demandes d'annonces (nombre d'impressions susceptibles d'être ciblées pour chaque segment). Extrayez les ID de segment de "CustomTargeting". L'exemple ci-dessous part du principe que la clé est nommée "seg", et que les valeurs sont composées de lettres et de chiffres.
Code
SELECT Segment, COUNT(1) AS Count FROM ( SELECT Segment FROM NetworkImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, 'seg=([A-z0-9]+)')) AS Segment WHERE CustomTargeting LIKE '%seg=%' AND Time >= '2020-01-01' AND Time < '2020-01-02' UNION ALL SELECT Segment FROM NetworkBackfillImpressions CROSS JOIN UNNEST(REGEXP_EXTRACT_ALL(CustomTargeting, 'seg=([A-z0-9]+)')) AS Segment WHERE CustomTargeting LIKE '%seg=%' AND Time >= '2020-01-01' AND Time < '2020-01-02' ) GROUP BY Segment ORDER BY Count DESC
Résultats
Ligne | 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 | 3 000 000 |
9 | ghij3456 | 2000000 |
10 | klmn7890 | 1000000 |
Vidéo
Erreurs vidéo par URL, ID de bloc d'annonces et position
Pour résoudre les problèmes liés aux éléments de campagne vidéo comportant des erreurs importantes, vous devrez peut-être identifier la page et/ou l'espace publicitaire sur la page à l'origine du plus grand nombre d'erreurs. Utilisez NetworkVideoConversions
pour rechercher les erreurs par élément de campagne (où ActionName
contient error
). Si une page contient plusieurs lecteurs vidéo, les lecteurs utilisent le même bloc d'annonces. Si vous utilisez une clé de type pos
pour différencier les blocs d'annonces sur une page, extrayez cette valeur pos
de CustomTargeting
. L'exemple ci-dessous part du principe que la clé est nommée pos
et affiche les cinq combinaisons principales de RefererURL
, AdUnitID
et Position
responsables des erreurs pour un seul élément de campagne vidéo.
Code
SELECT RefererURL, AdUnitID, REGEXP_EXTRACT(CustomTargeting, 'pos=([^;]+)') AS Position, COUNT(1) AS ErrorCount FROM NetworkVideoConversions WHERE LineItemID = 123456789 AND ActionName LIKE '%error%' AND Time >= '2020-01-01' AND Time < '2020-01-02' GROUP BY RefererURL, AdUnitID, Position ORDER BY ErrorCount DESC LIMIT 5
Résultats
Ligne | RefererURL |
AdUnitID |
Position |
ErrorCount |
1 | https://example.com/ | 11111111 | haut | 2000 |
2 | https://example.com/url/a | 22222222 | haut | 1 500 |
3 | https://example.com/url/b | 22222222 | haut | 1400 |
4 | https://example.com/url/c | 11111111 | haut | 1000 |
5 | https://example.com/url/c | 11111111 | bas | 500 |