Consultar métricas de visibilidad y de tráfico no válido

Descripción general

Las siguientes instrucciones proporcionan ejemplos de cómo consultar tráfico válido de visibilidad y tráfico no válido a través de la API. Estas métricas se limitan al inventario comprado a través de Google Ads, Display & Video 360 y YouTube Reserve.

Ten en cuenta que las métricas de visualización de las visualizaciones de TrueView acreditadas por el MRC requieren el uso de la API del CDA, ya que no hay ninguna consulta basada en plantillas asociada. Además, las métricas de visualización de las visualizaciones de TrueView no deben confundirse con las métricas de visibilidad.

Selecciona la plataforma publicitaria cuyas métricas de visibilidad quieras consultar:

Consultar métricas de visibilidad mediante la UI

La consulta de visibilidad basada en plantillas ofrece métricas acreditadas por el MRC.

La acreditación del MRC es binaria (los resultados pueden estar acreditados o no) y se aplica a toda la tabla de resultados. En BigQuery, la etiqueta adh-mrc-accredited se aplica a todos los resultados acreditados por el MRC. Debes ejecutar la consulta mediante la plantilla para que tus métricas estén acreditadas por el MRC.

Para ejecutar la consulta acreditada por el MRC a través de la plantilla:

  1. Sigue las instrucciones sobrecómo crear una consulta y asegúrate de seleccionar YouTube Reserve como plataforma publicitaria y Visibilidad de vídeo como plantilla de consulta.
  2. Haz clic en el botón Ejecutar situado junto a Usar plantilla.

Consultar métricas de visibilidad y de tráfico no válido mediante la API

Las métricas de visibilidad y de tráfico no válido se pueden obtener mediante la API del CDA con los endpoints generateIvtReport y startAnalysis. En el caso del tráfico no válido, las métricas se deben obtener mediante generateIvtReport para que se aplique la etiqueta adh-mrc-accredited y tus métricas estén acreditadas por el MRC. Del mismo modo, la consulta global que se indica a continuación debe usarse para obtener las métricas de visibilidad mediante la API del CDA y conseguir la acreditación del MRC. En esta sección se explica cómo enviar una solicitud a este endpoint mediante la biblioteca de cliente de Python.

Sigue las instrucciones de configuración y autorización/autenticación que se indican en la guía de inicio rápido de la API.

Después de sustituir los campos siguientes por la información pertinente de tu cuenta, puedes ejecutar la consulta que aparece a continuación para obtener un informe de tráfico no válido de tus campañas de YouTube Reserve :

  • Archivo de secretos de cliente
  • ID de cliente
  • Clave de API
  • Order IDs
  • Zona horaria

Código de muestra

Tráfico no válido

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étricas de visibilidad

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))