概览
本文举例说明了如何通过 API 查询有效的可见流量及无效流量。这些指标仅适用于通过 Google Ads、Display & Video 360 和 YouTube 预订型广告资源购买的广告资源。
请注意,已获 MRC 认证的观看次数指标“TrueView 观看次数”需要使用 ADH API,因为没有相关的模板化查询。此外,请勿将 TrueView 观看次数指标与可见度指标相混淆。
请选择要查询可见度指标的购买渠道:
通过界面查询可见度指标
模板化可见度查询提供已获 MRC 认证的指标。
MRC 认证结果分为两种(已获认证或未获认证),且适用于整个结果表。在 BigQuery 中,标签 adh-mrc-accredited
会应用于已获 MRC 认证的所有结果。您必须通过模板运行查询,指标才能获得 MRC 认证。
如要通过模板运行已获 MRC 认证的查询,请执行以下操作:
- 按照有关如何创建查询的说明进行操作,确保选择 YouTube Reserve 作为购买渠道,同时选择视频广告可见度作为查询模板。
- 点击使用模板旁边的运行按钮。
通过 API 查询无效流量和可见度指标
您可以通过 ADH API 使用 generateIvtReport
和 startAnalysis
端点来检索无效流量和可见度指标。对于无效流量,您必须通过 generateIvtReport
检索指标,才能应用 adh-mrc-accredited
标签,您的指标也才能获得 MRC 认证。同样,必须通过 ADH API 使用下方指定的全局查询检索可见度指标,以获得 MRC 认证。本部分介绍了如何使用 Python 客户端库向此端点发送请求。
按照 API 快速入门中的设置和授权/身份验证说明进行操作。
将以下字段替换为与您的账号相关的信息后,您可以运行下方的查询来检索您的 YouTube Reserve 广告系列的无效流量报告:
- 客户端密钥文件
- 客户 ID
- API 密钥
- Order IDs
- 时区
代码示例
无效流量
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))
可见度指标
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))
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-02-08。