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

Tổng quan

Hướng dẫn sau đây cung cấp các 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 và Display & Video 360.

Xin lưu ý rằng các chỉ số lượt xem theo 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 liên quan. Ngoài ra, bạn không nên nhầm lẫn chỉ số lượt xem theo TrueView với chỉ số khả năng xem.

Chọn nguồn 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 (kết quả của bạ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ả của bạn. Bạn phải chạy truy vấn thông qua mẫu mà không sửa đổi mẫu và ở quy trình kiểm tra sự khác biệt để 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ứng nhận của MRC cho Ads Data Hub không áp dụng cho các truy vấn chạy ở chế độ nhiễu.

Cách 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 Google Ads làm nguồn mua và Khả năng xem video theo loại thiết bị làm mẫu truy vấn.
  2. Nhấp vào nút Chạy bên cạnh mục 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 không hợp lệ và khả năng xem từ API ADH bằng cách sử dụ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ố 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 Hội đồng xếp hạng truyền thông 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 hướng dẫ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 bạ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 các chiến dịch Google Ads của mình:

  • Tệp khoá bí mật của ứng dụng khách
  • Mã khách hàng
  • Khóa API
  • Campaign IDs
  • Múi giờ

Mã mẫu

Lưu lượng truy cập không hợp lệ

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', static_discovery=False)

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',
    # Optional. Defaults to 'DAY' (one set of rows per day). Use
    # 'ENTIRE_DATE_RANGE' for a single set of rows covering the whole range.
    'date_dimension_granularity': 'DAY',
    'google_ads_dimensions': {
        'campaign_ids': [YOUR_CAMPAIGN_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))

Các chỉ số về khả năng xem

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', static_discovery=False)

name = 'customers/global/analysisQueries/f41320e7296d49158e572aba662f35b1'
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': {
      'campaign_ids': {
        'array_value': {
          'values': [
            {
              'value': 'YOUR_CAMPAIGN_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 sau khi loại trừ 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 các chỉ số về khả năng xem được MRC công nhận sau khi loại trừ 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ị (Sau khi trừ 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 (Sau khi trừ 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 (Sau khi trừ 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 (đã loại trừ 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 của GIVT
  • Số lượt hiển thị không thể xem (đã loại trừ GIVT) : Số lượt hiển thị có thể đo lường (đã loại trừ GIVT) – Số lượt hiển thị có thể xem (đã loại trừ GIVT)
  • Số lượt hiển thị không thể đo lường (đã loại trừ GIVT): Số lượt hiển thị đủ điều kiện (đã loại trừ GIVT) – Số lượt hiển thị có thể đo lường (đã loại trừ GIVT)
  • % Số lượt hiển thị có thể đo lường (đã loại trừ GIVT): Số lượt hiển thị có thể đo lường (đã loại trừ GIVT) / Số lượt hiển thị đủ điều kiện (đã loại trừ GIVT)
  • % Số lượt hiển thị có thể xem (đã loại trừ GIVT): Số lượt hiển thị có thể xem (đã loại trừ GIVT) / Số lượt hiển thị có thể đo lường (đã loại trừ GIVT)