Ce guide explique pourquoi des lignes avec des métriques nulles apparaissent dans les rapports de l'API Google Ads, et comment les exclure ou les gérer dans vos requêtes.
Métriques nulles dans les résultats de recherche
Lorsque vous exécutez une requête, vous pouvez rencontrer des métriques nulles pour les entités. Les raisons peuvent être multiples :
- Les entités ne sont pas éligibles à l'affichage.
- Ils ont été mis en veille pendant la période du rapport.
Les résultats de requête vous permettent souvent d'obtenir des informations sur les performances de vos campagnes. Dans ce contexte, il n'est pas forcément souhaitable d'avoir des métriques nulles. Pour produire un rapport plus utile, vous pouvez exclure explicitement les métriques nulles.
Exclure les métriques nulles avec un prédicat
Un prédicat est une expression qui prend la valeur TRUE, FALSE ou UNKNOWN.
Les prédicats sont utilisés dans la condition de recherche des clauses WHERE dans le langage de requête Google Ads.
La requête suivante montre comment supprimer explicitement les métriques nulles à l'aide d'un prédicat :
SELECT
campaign.id,
metrics.impressions
FROM campaign
WHERE metrics.impressions > 0
Exclure les métriques nulles par segmentation
Les métriques nulles sont toujours exclues lors de la segmentation d'un rapport, à condition que toutes les métriques sélectionnées soient nulles (voir Lignes renvoyées avec des métriques nulles).
Pour segmenter un rapport, incluez un champ segments dans la clause SELECT de la requête de recherche (le filtrage sur un segment de date principal dans WHERE sans le sélectionner dans SELECT ne segmente pas le rapport). Par exemple, si vous segmentez un rapport par segments.date, les métriques sont ventilées avec une ligne pour chaque date. Les dates sans métriques ne sont pas renvoyées dans un tel rapport.
Pour la requête suivante, le rapport n'inclura pas les lignes sans métrique :
SELECT
campaign.name,
metrics.impressions,
segments.date
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Lignes renvoyées avec des métriques nulles
Les lignes dont les métriques sélectionnées sont toutes égales à zéro ne seront pas renvoyées lors de la segmentation. Prenons par exemple la requête suivante, qui sélectionne metrics.impressions, metrics.clicks et metrics.conversions :
SELECT
ad_group_criterion.criterion_id,
metrics.impressions,
metrics.clicks,
metrics.conversions,
segments.date
FROM keyword_view
WHERE segments.date BETWEEN '2026-01-01' AND '2026-01-31'
Le rapport obtenu ne contiendra aucune ligne dans laquelle les trois métriques sélectionnées sont égales à zéro, mais il renverra les lignes où au moins l'une des trois métriques sélectionnées est supérieure à zéro.
Lorsque vous interrogez des données historiques au-delà de la durée de conservation des données, les données précises datant de plus de 37 mois ne sont pas disponibles et ne renvoient pas de lignes. Les requêtes de segments de date précis (segments.date, segments.week et segments.hour) couvrant des périodes de plus de 37 mois renvoient DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTED dans la version 24 et les versions ultérieures (ou DateRangeError.UNKNOWN dans la version 23). Les données agrégées générales (segments.month, segments.quarter et segments.year) sont conservées pendant 11 ans, à compter du début de la période calendaire complète suivante. Par exemple, si la limite de l'historique de 11 ans tombe le 2015-03-22 (ou le 2015-03-01), les données mensuelles sont disponibles à partir du premier mois calendaire complet après la limite (2015-04-01). Pour en savoir plus, consultez Plages de dates.
Suppression des métriques de couverture et valeurs nulles
En plus des entités qui n'ont pas enregistré d'impressions, les métriques de couverture (comme metrics.unique_users et les métriques de tranche de fréquence metrics.unique_users_two_plus à metrics.unique_users_ten_plus) peuvent s'afficher comme nulles ou être omises lorsque les données de couverture sont supprimées. La métrique metrics.unique_users (et metrics.unique_users_info) est compatible avec les campagnes display, vidéo, Demand Gen et pour applications, tandis que les métriques de tranche de fréquence metrics.unique_users_*_plus (et metrics.unique_users_*_plus_info) s'appliquent aux campagnes vidéo.
La suppression de la couverture peut se produire pour plusieurs raisons :
- Seuils de confidentialité : les données de couverture sont supprimées lorsque le nombre d'utilisateurs ne respecte pas les seuils de confidentialité (comme la k-anonymat) afin de protéger l'identité des utilisateurs.
- Seuils de qualité : les données de couverture peuvent être retenues si elles ne respectent pas les normes de qualité.
- Conservation des données : l'historique des données de couverture est conservé pendant trois ans (36 mois). Les requêtes couvrant des dates au-delà de cette période de conservation de trois ans ne peuvent pas renvoyer de métriques de couverture. Les requêtes couvrant des dates comprises entre 36 et 37 mois auparavant aboutissent sans renvoyer l'erreur
DateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTEDdécrite dans la section précédente, mais elles omettent les métriques de couverture (et renvoient l'erreurDATE_RANGE_BEYOND_RETENTIONlorsque les métadonnées de couverture associées sont sélectionnées).
Dans la version 26 et les versions ultérieures, chaque métrique de couverture utilisateur unique est associée à un champ de métadonnées de type ReachMetricInfo (par exemple, metrics.unique_users_info et metrics.unique_users_two_plus_info à metrics.unique_users_ten_plus_info).
Dans le langage de requête Google Ads (GAQL), les champs de couverture associée sont des métriques MESSAGE sélectionnées directement dans la clause SELECT (par exemple, metrics.unique_users_info). N'ajoutez pas .reach_metric_states dans la clause SELECT, car la sélection de champs de message imbriqués dans GAQL échoue avec UNRECOGNIZED_FIELD. À la place, la sélection de metrics.unique_users_info renvoie un message ReachMetricInfo contenant le champ d'énumération répété reach_metric_states de type ReachMetricState, qui indique si la métrique a été supprimée ou si elle est complète.
Chaque fois qu'une métrique de couverture est supprimée ou se trouve en dehors de la période de conservation (PRIVACY_SUPPRESSION, QUALITY_SUPPRESSION ou DATE_RANGE_BEYOND_RETENTION), son champ optional int64 sur Metrics n'est pas défini (ce qui correspond à 0 si la présence du champ n'est pas vérifiée), tandis que LOW_QUALITY renseigne toujours la métrique numérique :
COMPLETE: la métrique de couverture est terminée sans suppression.PRIVACY_SUPPRESSION: les données de couverture ont été masquées pour des motifs liés à la confidentialité.QUALITY_SUPPRESSION: les données de couverture ont été supprimées pour des raisons de qualité des données.LOW_QUALITY: la métrique de couverture a été calculée, mais elle est signalée comme étant de faible qualité.DATE_RANGE_BEYOND_RETENTION: les métriques de couverture ne sont pas disponibles, car la période sélectionnée dépasse la limite de conservation des données de couverture fixée à trois ans.
En sélectionnant à la fois la métrique de couverture et son champ de métadonnées associé, votre application peut faire la distinction entre une couverture réellement nulle et des valeurs de couverture qui ont été supprimées :
SELECT
campaign.id,
campaign.name,
metrics.unique_users,
metrics.unique_users_info,
metrics.unique_users_two_plus,
metrics.unique_users_two_plus_info,
metrics.unique_users_ten_plus,
metrics.unique_users_ten_plus_info
FROM campaign
WHERE campaign.advertising_channel_type = 'VIDEO'
AND segments.date DURING LAST_30_DAYS