Interroger des métriques de visibilité et de trafic incorrect

Présentation

Les instructions ci-dessous illustrent comment interroger le trafic de visibilité correct et le trafic incorrect via l'API. Ces métriques sont limitées à l'inventaire acheté via Google Ads, Display & Video 360 et YouTube Reserve.

Notez que pour collecter des métriques sur les vues TrueView accréditées par le MRC, vous devez utiliser l'API ADH, car aucune requête modélisée n'est associée. Par ailleurs, il ne faut pas confondre les métriques sur les vues TrueView avec les métriques de visibilité.

Sélectionnez le mode d'achat pour lequel vous souhaitez interroger des métriques de visibilité :

Interroger des métriques de visibilité à l'aide de l'UI

La requête de visibilité modélisée fournit des métriques accréditées par le MRC.

L'accréditation MRC est binaire (vos résultats peuvent être accrédités ou non) et s'applique à l'ensemble de votre tableau de résultats. Dans BigQuery, le libellé adh-mrc-accredited est appliqué à tous les résultats accrédités par le MRC. Vous devez exécuter la requête via le modèle pour que vos métriques soient accréditées par le MRC.

Pour exécuter la requête accréditée par le MRC via le modèle :

  1. Suivez les instructions pour créer une requête en veillant à sélectionner YouTube Reserve comme mode d'achat et Visibilité de la vidéo comme modèle de requête.
  2. Cliquez sur le bouton Exécuter à côté de l'option Utiliser le modèle.

Interroger des métriques de trafic incorrect et de visibilité à l'aide de l'API

Vous pouvez récupérer les métriques de trafic incorrect et de visibilité depuis l'API ADH à l'aide des points de terminaison generateIvtReport et startAnalysis. En cas de trafic incorrect, vous devez récupérer vos métriques via le generateIvtReport pour que le libellé adh-mrc-accredited soit appliqué et que vos métriques soient accréditées par le MRC. De même, la requête globale spécifiée ci-dessous doit être utilisée pour les métriques de visibilité via l'API ADH pour obtenir l'accréditation MRC. Cette section explique comment envoyer une requête à ce point de terminaison à l'aide de la bibliothèque cliente Python.

Suivez les instructions de configuration et d'autorisation/authentification décrites dans le guide de démarrage rapide de l'API.

Après avoir remplacé les champs suivants par des informations pertinentes pour votre compte, vous pouvez exécuter la requête ci-dessous afin de récupérer un rapport sur le trafic incorrect pour vos campagnes YouTube Reserve  :

  • Fichier de secrets client
  • ID client
  • Clé API
  • Order IDs
  • Fuseau horaire

Exemple de code

Trafic incorrect

from __future__ import print_function
import json
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build

# If modifying these scopes, delete the file `token.json`.
SCOPES = ['https://www.googleapis.com/auth/adsdatahub']
TOKEN_FILE = 'token.json'

creds = None

# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists(TOKEN_FILE):
    creds = Credentials.from_authorized_user_file(TOKEN_FILE, SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
    if creds and creds.expired and creds.refresh_token:
        creds.refresh(Request())
    else:
        flow = InstalledAppFlow.from_client_secrets_file(
            'YOUR_CLIENT_SECRETS.json', SCOPES)
        creds = flow.run_local_server(port=0)
    # Save the credentials for the next run.
    with open(TOKEN_FILE, 'w') as token:
        token.write(creds.to_json())

service = build('adsdatahub', 'v1', credentials=creds,
                developerKey='YOUR_API_KEY',
                discoveryServiceUrl='https://adsdatahub.googleapis.com/$discovery/rest?version=v1&labels=')

body = {
    'ads_data_customer_id': YOUR_CUSTOMER_ID,
    'start_date': {
        'year': 2019,
        'month': 12,
        'day': 15
    },
    'end_date': {
        'year': 2019,
        'month': 12,
        'day': 20
    },
    'time_zone': 'YOUR_TIMEZONE',
    'yt_reserve_dimensions': {
        'order_ids': [YOUR_ORDER_IDS],
        'metric_type': 'METRIC_TYPE_IMPRESSION'
    },
    'dest_table': 'YOUR_DESTINATION_TABLE'
}

resp = service.customers().generateIvtReport(name='customers/YOUR_CUSTOMER_ID,
                                             body=body).execute()
print(json.dumps(resp))

Métriques de visibilité

from __future__ import print_function
import json
import os.path
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build

# If modifying these scopes, delete the file `token.json`.
SCOPES = ['https://www.googleapis.com/auth/adsdatahub']
TOKEN_FILE = 'token.json'

creds = None

# The file token.json stores the user's access and refresh tokens, and is
# created automatically when the authorization flow completes for the first
# time.
if os.path.exists(TOKEN_FILE):
    creds = Credentials.from_authorized_user_file(TOKEN_FILE, SCOPES)
# If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
    if creds and creds.expired and creds.refresh_token:
        creds.refresh(Request())
    else:
        flow = InstalledAppFlow.from_client_secrets_file(
            'YOUR_CLIENT_SECRETS.json', SCOPES)
        creds = flow.run_local_server(port=0)
    # Save the credentials for the next run.
    with open(TOKEN_FILE, 'w') as token:
        token.write(creds.to_json())

service = build('adsdatahub', 'v1', credentials=creds,
                developerKey='YOUR_API_KEY',
                discoveryServiceUrl='https://adsdatahub.googleapis.com/$discovery/rest?version=v1&labels=')

name = 'customers/global/analysisQueries/ad88e8562a8f4baa9c8522945fe95522'
body = {
  'spec': {
    'ads_data_customer_id': YOUR_CUSTOMER_ID,
    'start_date': {
      'year': 2019,
      'month': 12,
      'day': 15
    },
    'end_date': {
      'year': 2019,
      'month': 12,
      'day': 20
    },
    'time_zone': 'YOUR_TIMEZONE',
    'parameter_values': {
      'line_item_ids': {
        'array_value': {
          'values': [
            {
              'value': 'YOUR_LINE_ITEM_ID'
            },
          ]
        }
      }
    }
  },
  'dest_table': 'YOUR_DESTINATION_TABLE',
  'customer_id': YOUR_CUSTOMER_ID
}

resp = service.customers().analysisQueries().start(name=name,body=body).execute()
print(json.dumps(resp))