Truy vấn khả năng xem và chỉ số lưu lượng truy cập không hợp lệ

Tổng quan

Hướng dẫn dưới đây 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 API. Các chỉ số này chỉ áp dụng cho khoảng không quảng cáo được mua thông qua Google Ads, Mạng Hiển thị và Video 360 và khu vực dành riêng trên YouTube.

Lưu ý rằng các chỉ số chế độ xem lượt xem TrueView được MRC công nhận yêu cầu sử dụng API ADH vì không có truy vấn theo mẫu được liên kết. Ngoài ra, bạn không nên nhầm lẫn chỉ số lượt xem TrueView với chỉ số khả năng xem.

Chọn cửa mua mà bạn muốn truy vấn chỉ số khả năng xem:

Truy vấn chỉ số khả năng xem bằng giao diện người dùng

Truy vấn về 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 có tính chất nhị phân (kết quả của bạn có thể được công nhận hoặc không được công nhận) và áp dụng cho toàn bộ bảng kết quả của bạn. Trong BigQuery, nhãn adh-mrc-accredited được áp dụng cho tất cả những kết quả được MRC công nhận. Bạn phải chạy truy vấn thông qua mẫu để chỉ số của bạn được MRC công nhận.

Để chạy truy vấn được MRC công nhận thông qua mẫu:

  1. Làm theo hướng dẫn về cách tạo truy vấn, đảm bảo rằng bạn chọn YouTube Reserve làm cửa mua và Khả năng xem video làm mẫu truy vấn.
  2. Nhấp vào nút Run (Chạy) bên cạnh Use mẫu (Sử dụng mẫu).

Truy vấn chỉ số khả năng xem và lưu lượng truy cập không hợp lệ 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ách sử dụng các điểm cuối generateIvtReportstartAnalysis. Đối với lưu lượng truy cập không hợp lệ, bạn phải truy xuất chỉ số 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ự, truy vấn chung được chỉ định bên dưới phải được sử dụng cho các chỉ số về khả năng xem thông qua ADH API để được MRC công nhận. 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 API.

Sau khi thay thế các trường sau bằng thông tin liên quan đến tài khoản, 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 các chiến dịch của mình:

  • Tệp bí mật ứ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ố 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 toán 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

Hãy sử dụng các công thức sau để lấy chỉ số khả năng xem được Hội đồng xếp hạng truyền thông công nhận, 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 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 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 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 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ể đ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)