Omówienie
Podane niżej instrukcje pokazują na przykładach, jak można za pomocą interfejsu API wysyłać zapytania o prawidłowy ruch wynikający z widoczności reklam oraz o nieprawidłowy ruch. Te dane są ograniczone do zasobów reklamowych kupionych w Google Ads, Display & Video 360 i YouTube Reserve.
Pamiętaj, że dane o wyświetleniach TrueView akredytowane przez MRC wymagają użycia interfejsu API CDR ze wzgględu na brak powiązanego zapytania opartego na szablonie. Poza tym danych o wyświetleniach TrueView view nie należy mylić z danymi o widoczności.
Wybierz platformę zakupu, w której przypadku chcesz wysyłać zapytania dotyczące danych o widoczności:
Wysyłanie zapytań dotyczących danych o widoczności za pomocą interfejsu
Oparte na szablonie zapytanie dotyczące widoczności dostarcza danych akredytowanych przez MRC.
Akredytacja MRC nie jest stopniowalna – Twoje wyniki mogą tylko być akredytowane lub nie – i ma zastosowanie do całej tabeli wyników. W BigQuery wszystkie wyniki akredytowane przez MRC są oznaczone etykietą adh-mrc-accredited
. Aby dane były akredytowane przez MRC, musisz wysłać zapytanie, korzystając z szablonu.
Aby wysłać zapytanie akredytowane przez MRC, korzystając z szablonu:
- Wykonaj instrukcje tworzenia zapytania, pamiętając, aby jako platformę zakupu wybrać YouTube Reserve, a jako szablon zapytania – Widoczność reklamy wideo.
- Obok opcji Użyj szablonu kliknij przycisk Wykonaj.
Wysyłanie za pomocą interfejsu API zapytań dotyczących danych o nieprawidłowym ruchu i widoczności
Dane dotyczące nieprawidłowego ruchu i widoczności można pobierać z interfejsu API CDR za pomocą punktów końcowych generateIvtReport
i startAnalysis
. Aby w przypadku nieprawidłowego ruchu stosowana była etykieta adh-mrc-accredited
, a dane były akredytowane przez MRC, należy je pobierać za pomocą punktów końcowych generateIvtReport
. Podobnie w przypadku danych o widoczności pobieranych za pomocą interfejsu API CDR, akredytacja MRC wymaga korzystania z podanego niżej zapytania globalnego. Z tej sekcji dowiesz się, jak wysłać żądanie do tego punktu końcowego przy użyciu biblioteki klienta w języku Python.
Postępuj zgodnie z instrukcjami konfigurowania i autoryzacji/uwierzytelniania podanymi w krótkim wprowadzeniu do interfejsu API.
Po zastąpieniu tych pól informacjami odpowiednimi dla Twojego konta możesz wysłać podane niżej zapytanie, aby pobrać raport o nieprawidłowym ruchu dotyczący YouTube Reserve kampanii:
- plik z tajnymi kluczami klientów,
- identyfikator klienta,
- klucz interfejsu API,
- Order IDs
- strefa czasowa.
Przykładowy kod
Nieprawidłowy ruch
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))
Dane dotyczące widoczności
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))
O ile nie stwierdzono inaczej, treść tej strony jest objęta licencją Creative Commons – uznanie autorstwa 4.0, a fragmenty kodu są dostępne na licencji Apache 2.0. Szczegółowe informacje na ten temat zawierają zasady dotyczące witryny Google Developers. Java jest zastrzeżonym znakiem towarowym firmy Oracle i jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2024-02-08 UTC.