Dotazy na metriky viditelnosti a neplatného provozu

Přehled

Následující pokyny uvádějí příklady toho, jak se prostřednictvím rozhraní API dotazovat na viditelnostneplatný provoz. Metriky se omezují na inventář zakoupený prostřednictvím via Google Ads, Display & Video 360 a YouTube Reserve.

Metriky zobrazování zhlédnutí TrueView akreditované organizací MRC vyžadují používání rozhraní API ADH, protože k dispozici není žádný dotaz založený na šabloně. Kromě toho by metriky zobrazování zhlédnutí TrueView neměly být zaměňovány za metriky viditelnosti.

Vyberte nákupní kanál, na jehož metriky viditelnosti se chcete dotazovat:

Dotazy na metriky viditelnosti pomocí uživatelského rozhraní

Na šabloně založený dotaz na viditelnost vrátí metriky akreditované organizací MRC.

Akreditace MRC je binární (výsledky mohou být akreditované nebo ne) a vztahuje se na celou tabulku výsledků. V BigQuery se označení adh-mrc-accredited aplikuje na všechny výsledky akreditované organizací MRC. Pokud chcete, aby výsledky byly akreditovány organizací MRC, musíte dotaz spustit prostřednictvím šablony.

Když chcete spustit dotaz akreditovaný organizací MRC prostřednictvím šablony:

  1. Postupujte podle pokynů k vytvoření dotazu. Jako nákupní kanál vyberte YouTube Reserve a jako šablonu dotazu viditelnost videa.
  2. Klikněte na tlačítko Spustit vedle možnosti Použít šablonu.

Dotazy na metriky neplatného provozu a viditelnosti pomocí rozhraní API

Metriky neplatného provozu a viditelnosti lze získat z rozhraní API ADH pomocí koncových bodů generateIvtReportstartAnalysis. V případě neplatného provozu musíte metriky získat pomocí generateIvtReport , aby bylo možné aplikovat označení adh-mrc-accredited a metriky byly akreditované organizací MRC. Obdobně musíte metriky viditelnosti získat prostřednictvím rozhraní API ADH pomocí níže uvedeného globálního dotazu, aby byly akreditovány organizací MRC. Tato sekce popisuje, jak odeslat dotaz do tohoto koncového bodu pomocí klientské knihovny Python.

Postupujte podle pokynů k nastavení a autentizaci v rychlém startu v rozhraní API.

Až nahradíte následující pole informacemi relevantními pro váš účet, můžete spustit níže uvedený dotaz a získat přehled neplatného provozu v kampaních YouTube Reserve :

  • Tajný klíč klienta
  • Číslo zákazníka
  • Klíč rozhraní API
  • Order IDs
  • Časové pásmo

Ukázka kódu

Neplatný provoz

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

Metriky viditelnosti

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