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 đưa ra 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 qua Google Ads, Display & Video 360 và YouTube Reserve.

Lưu ý rằng chỉ số lượt 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 lượt xem TrueView với chỉ số khả năng xem.

Chọn cửa hàng 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 Hội đồng xếp hạng truyền thông công nhận.

Sự công nhận của MRC là tệp 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ả. Trong BigQuery, nhãn adh-mrc-accredited được áp dụng cho tất cả kết quả được MRC công nhận. Bạn phải chạy truy vấn thông qua mẫu để các chỉ số của bạn được Hội đồng xếp hạng truyền thông 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 sample (Sử dụng mẫu).

Truy vấn các chỉ số về lưu lượng truy cập không hợp lệ 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ừ ADH API 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ệ, chỉ số của bạn phải được truy xuất thông qua generateIvtReport để áp dụng nhãn adh-mrc-accredited và 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 chỉ số 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 về API.

Sau khi thay thế các trường sau bằng thông tin có 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 chiến dịch của mình:

  • Tệp mật khẩu ứ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 toán chỉ số khả năng xem ròng của 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 ra chỉ số khả năng xem được MRC công nhận sau khi trừ đi lưu lượng truy cập không hợp lệ nói chung (GIVT):

  • Tổng số lượt hiển thị (Giá trị ròng của GIVT): Tổng số lượt hiển thị - Số lượt hiển thị không hợp lệ thông thường
  • Số lượt hiển thị có thể xem (Giá trị ròng của GIVT): 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 (Giá trị ròng của GIVT): 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 (Giá trị ròng của GIVT): 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 (Giá trị ròng của GIVT) : Số lượt hiển thị có thể đo lường (giá trị ròng của GIVT) - Số lượt hiển thị có thể xem (giá trị ròng của GIVT)
  • Số lượt hiển thị không thể đo lường (Giá trị ròng của GIVT): Số lượt hiển thị đủ điều kiện (Giá trị ròng của GIVT) - Số lượt hiển thị có thể đo lường (giá trị ròng của GIVT)
  • % số lượt hiển thị có thể đo lường (Giá trị ròng của GIVT): Số lượt hiển thị có thể đo lường (giá trị ròng của GIVT) / Số lượt hiển thị đủ điều kiện (giá trị ròng của GIVT)
  • % số lượt hiển thị có thể xem (Giá trị ròng của GIVT): Số lượt hiển thị có thể xem (giá trị ròng của GIVT) / Số lượt hiển thị có thể đo lường (giá trị ròng của GIVT)