Tổng quan
Hướng dẫn bên dưới cung cấp ví dụ về cách truy vấn cả lưu lượng truy cập khả năng xem hợp lệ và lưu lượng truy cập không hợp lệ bằng cách sử dụng API. Các chỉ số này chỉ áp dụng cho khoảng không quảng cáo được mua bằng Google Ads, Display & Video 360 và YouTube Reserve.
Xin lưu ý rằng các chỉ số về lượt xem khung hiển thị TrueView được MRC chứng nhận yêu cầu sử dụng API ADH, vì không có truy vấn mẫu nào được liên kết. Ngoài ra, bạn không nên nhầm lẫn các chỉ số về lượt xem quảng cáo TrueView với các chỉ số về khả năng xem.
Chọn kênh mua mà bạn muốn truy vấn chỉ số về khả năng xem:
Truy vấn các chỉ số về khả năng xem bằng giao diện người dùng
Truy vấn khả năng xem theo mẫu cung cấp các chỉ số được MRC công nhận.
Chứng nhận của MRC là nhị phân (có thể được chứng nhận hoặc không) và áp dụng cho toàn bộ bảng kết quả. Trong BigQuery, nhãn adh-mrc-accredited
được áp dụng cho tất cả kết quả được MRC chứng nhận. Bạn phải chạy truy vấn thông qua mẫu để các chỉ số của mình được MRC công nhận.
Cách chạy truy vấn được MRC công nhận thông qua mẫu:
- Làm theo hướng dẫn về cách tạo truy vấn, đảm bảo bạn chọn YouTube Reserve làm cửa hàng mua và Khả năng xem video làm mẫu truy vấn.
- Nhấp vào nút Run (Chạy) bên cạnh Use template (Sử dụng mẫu).
Truy vấn lưu lượng truy cập không hợp lệ và các chỉ số về khả năng xem bằng API
Bạn có thể truy xuất các chỉ số về lưu lượng truy cập và khả năng xem không hợp lệ từ API ADH bằng các điểm cuối generateIvtReport
và startAnalysis
. Đối với lưu lượng truy cập không hợp lệ, bạn phải truy xuất các chỉ số của mình thông qua generateIvtReport
để áp dụng nhãn adh-mrc-accredited
và các chỉ số của bạn được MRC công nhận. Tương tự, bạn phải sử dụng truy vấn chung được chỉ định bên dưới cho các chỉ số về khả năng xem thông qua API ADH để được chứng nhận MRC. Phần này trình bày cách gửi yêu cầu đến điểm cuối này bằng thư viện ứng dụng Python.
Làm theo hướng dẫn thiết lập và uỷ quyền/xác thực trong phần Bắt đầu nhanh về API.
Sau khi thay thế các trường sau bằng thông tin liên quan đến tài khoản của mình, bạn có thể chạy truy vấn bên dưới để truy xuất báo cáo lưu lượng truy cập không hợp lệ cho YouTube Reserve chiến dịch:
- Tệp khoá bí mật của ứng dụng khách
- Mã khách hàng
- Khóa API
- Order IDs
- Múi giờ
Mã mẫu
Lưu lượng truy cập không hợp lệ
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))
Chỉ số về khả năng xem
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))
Tính các chỉ số về khả năng xem trừ đi lưu lượng truy cập không hợp lệ thông thường
Sử dụng các công thức sau để lấy chỉ số khả năng xem được công nhận của MRC, trừ đi lưu lượng truy cập không hợp lệ thông thường (GIVT):
- Tổng số lượt hiển thị (GIVT thuần): Tổng số lượt hiển thị – Số lượt hiển thị không hợp lệ chung
- Số lượt hiển thị có thể xem (GIVT thuần): Số lượt hiển thị có thể xem + Số lượt hiển thị có thể xem không hợp lệ – Số lượt hiển thị có thể xem của lưu lượng truy cập không hợp lệ thông thường (GIVT)
- Số lượt hiển thị có thể đo lường (GIVT thuần): Số lượt hiển thị có thể đo lường + Số lượt hiển thị có thể đo lường không hợp lệ – Số lượt hiển thị có thể đo lường của lưu lượng truy cập không hợp lệ chung (GIVT)
- Số lượt hiển thị đủ điều kiện (GIVT thuần): Số lượt hiển thị đủ điều kiện + Số lượt hiển thị đủ điều kiện không hợp lệ – Số lượt hiển thị đủ điều kiện của lưu lượng truy cập không hợp lệ chung (GIVT)
- Số lượt hiển thị không thể xem (GIVT thuần) : Số lượt hiển thị có thể đo lường (GIVT thuần) – Số lượt hiển thị có thể xem (GIVT thuần)
- Số lượt hiển thị không đo lường được (GIVT thuần): Số lượt hiển thị đủ điều kiện (GIVT thuần) – Số lượt hiển thị có thể đo lường (GIVT thuần)
- % Số lượt hiển thị có thể đo lường (GIVT thuần): Số lượt hiển thị có thể đo lường (GIVT thuần) / Số lượt hiển thị đủ điều kiện (GIVT thuần)
- % Số lượt hiển thị có thể xem (GIVT thuần): Số lượt hiển thị có thể xem (GIVT thuần) / Số lượt hiển thị có thể đo lường (GIVT thuần)