조회가능성 및 무효 트래픽 측정항목 쿼리

개요

아래의 안내 예에서는 API를 통해 유효한 조회 가능성 트래픽과 무효 트래픽을 쿼리하는 방법을 보여줍니다. 이 측정항목은 Google Ads, Display & Video 360, YouTube Reserve를 통해 구매한 인벤토리로 제한됩니다.

MRC 인증 TrueView 조회수 조회 측정항목에는 연결된 템플릿 형식 쿼리가 없으므로 ADH API를 사용해야 합니다. 또한 TrueView 조회수 조회 측정항목을 조회 가능성 측정항목과 혼동해서는 안 됩니다.

조회 가능성 측정항목을 쿼리할 구매 채널을 선택합니다.

UI를 사용하여 조회 가능성 측정항목 쿼리

템플릿 형식 조회 가능성 쿼리는 MRC 인증 측정항목을 제공합니다.

MRC 인증은 바이너리로, 결과가 인증되거나 인증되지 않을 수 있으며 전체 결과 테이블에 적용됩니다. BigQuery에서 adh-mrc-accredited 라벨은 모든 MRC 인증 결과에 적용됩니다. 측정항목에 대해 MRC 인증을 받으려면 템플릿을 통해 쿼리를 실행해야 합니다.

템플릿을 통해 MRC 인증 쿼리를 실행하는 방법은 다음과 같습니다.

  1. 쿼리를 만드는 방법의 안내에 따라 YouTube Reserve를 구매 채널로 선택하고 동영상 조회 가능성을 쿼리 템플릿으로 선택합니다.
  2. 템플릿 사용 옆의 실행 버튼을 클릭합니다.

API를 사용하여 무효 트래픽 및 조회 가능성 측정항목 쿼리

generateIvtReport , startAnalysis 엔드포인트를 사용하여 ADH API에서 무효 트래픽 및 조회 가능성 측정항목을 가져올 수 있습니다. 무효 트래픽의 경우 adh-mrc-accredited 라벨이 적용되고 측정항목이 MRC 인증을 받으려면 generateIvtReport 을 통해 측정항목을 가져와야 합니다. 마찬가지로 조회 가능성 측정항목의 경우 MRC 인증을 위한 ADH API를 통해 아래에 지정된 전역 쿼리를 사용해야 합니다. 이 섹션에서는 Python 클라이언트 라이브러리를 사용하여 엔드포인트에 요청을 전송하는 방법을 설명합니다.

API 빠른 시작의 설정 및 승인/인증 안내를 따릅니다.

다음 필드를 계정과 관련된 정보로 바꾼 후 아래 쿼리를 실행하여 YouTube Reserve 캠페인의 무효 트래픽 보고서를 가져올 수 있습니다.

  • 클라이언트 보안 비밀번호 파일
  • 고객 ID
  • API 키
  • Order IDs
  • 시간대

샘플 코드

무효 트래픽

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

조회 가능성 측정항목

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