Metrik visibilitas kueri dan traffic tidak valid

Ringkasan

Petunjuk berikut memberikan contoh cara mengkueri traffic visibilitas yang valid, dan traffic tidak valid menggunakan API. Metrik ini terbatas pada inventaris yang dibeli menggunakan Google Ads dan Display & Video 360.

Perhatikan bahwa metrik penayangan TrueView yang diakreditasi MRC memerlukan penggunaan ADH API, karena tidak ada kueri template terkait. Selain itu, metrik penayangan TrueView tidak boleh disamakan dengan metrik visibilitas.

Pilih saluran pembelian yang ingin Anda kueri metrik visibilitasnya:

Membuat kueri metrik visibilitas menggunakan UI

Kueri visibilitas yang menggunakan template menyediakan metrik terakreditasi MRC.

Akreditasi MRC bersifat biner—hasil Anda dapat diakreditasi atau tidak—dan berlaku untuk seluruh tabel hasil Anda. Anda harus menjalankan kueri melalui template, tanpa mengubahnya, dan dalam mode pemeriksaan perbedaan agar metrik Anda diakreditasi oleh MRC. Akreditasi MRC Ads Data Hub tidak berlaku untuk kueri yang dijalankan dalam mode derau.

Untuk menjalankan kueri terakreditasi MRC melalui template:

  1. Ikuti petunjuk tentang cara membuat kueri, pastikan Anda memilih Google Ads sebagai saluran pembelian dan Visibilitas video menurut jenis perangkat sebagai template kueri.
  2. Klik tombol Run di samping Use template.

Membuat kueri metrik visibilitas dan traffic tidak valid menggunakan API

Metrik traffic tidak valid dan visibilitas dapat diambil dari ADH API menggunakan endpoint generateIvtReport , dan startAnalysis. Untuk traffic tidak valid, metrik Anda harus diambil melalui generateIvtReport agar label adh-mrc-accredited dapat diterapkan dan metrik Anda diakreditasi MRC. Demikian pula, kueri global yang ditentukan di bawah harus digunakan untuk metrik visibilitas melalui ADH API untuk akreditasi MRC. Bagian ini membahas cara mengirim permintaan ke endpoint ini menggunakan library klien Python.

Ikuti petunjuk penyiapan dan otorisasi/autentikasi di panduan memulai API.

Setelah mengganti kolom berikut dengan informasi yang relevan dengan akun Anda, Anda dapat menjalankan kueri di bawah untuk mengambil laporan traffic tidak valid untuk kampanye Google Ads Anda:

  • File rahasia klien
  • ID Pelanggan
  • Kunci API
  • Campaign IDs
  • Zona waktu

Kode contoh

Traffic tidak valid

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))

Metrik visibilitas

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))

Menghitung metrik visibilitas setelah dikurangi traffic tidak valid umum

Gunakan formula berikut untuk mendapatkan metrik visibilitas terakreditasi MRC setelah dikurangi traffic tidak valid umum (GIVT):

  • Total Tayangan Iklan (Setelah Dikurangi GIVT): Total Tayangan Iklan - Tayangan Iklan Tidak Valid Umum
  • Tayangan Iklan Terlihat (Setelah Dikurangi GIVT): Tayangan Iklan Terlihat + Tayangan Iklan Terlihat Tidak Valid - Tayangan Iklan Terlihat GIVT
  • Tayangan Iklan Terukur (Setelah Dikurangi GIVT): Tayangan Iklan Terukur + Tayangan Iklan Terukur Tidak Valid - Tayangan Iklan Terukur GIVT
  • Tayangan Iklan Valid (Nilai Bersih GIVT) = Tayangan Iklan Valid + Tayangan Iklan Valid Tidak Valid - Tayangan Iklan Valid GIVT
  • Tayangan Iklan Tidak Terlihat (Nilai Bersih GIVT) : Tayangan Iklan Terukur (Nilai Bersih GIVT) - Tayangan Iklan Terlihat (Nilai Bersih GIVT)
  • Tayangan Iklan Tidak Terukur (Nilai Bersih GIVT): Tayangan Iklan Valid (Nilai Bersih GIVT) - Tayangan Iklan Terukur (Nilai Bersih GIVT)
  • % Tayangan Iklan Terukur (Nilai Bersih GIVT) = Tayangan Iklan Terukur (Nilai Bersih GIVT) / Tayangan Iklan Valid (Nilai Bersih GIVT)
  • % Tayangan Iklan Terlihat (Nilai Bersih GIVT) = Tayangan Iklan Terlihat (Nilai Bersih GIVT) / Tayangan Iklan Terukur (Nilai Bersih GIVT)