نظرة عامة
تقدِّم التعليمات أدناه أمثلة عن كيفية استخدام واجهة برمجة التطبيقات لطلب البحث عن زيارات إمكانية العرض الصالحة والزيارات غير الصالحة. تقتصر هذه المقاييس على المستودع الذي يتم شراؤه باستخدام "إعلانات Google" و"الشبكة الإعلانية" فيديو 360 وYouTube Reserve.
تجدر الإشارة إلى أنّ مقاييس المشاهدات المعتمَدة من مجلس تقييم الوسائط (MRC) تتطلب استخدام واجهة برمجة تطبيقات Ads Data Hub، لأنّه لا يتوفّر طلب بحث مصمَّم وفقًا لنموذج. إضافةً إلى ذلك، يجب عدم الخلط بين مقاييس مشاهدات إعلانات TrueView ومقاييس إمكانية العرض.
اختَر بوابة الشراء التي تريد طلب مقاييس إمكانية العرض لها:
مقاييس إمكانية عرض طلبات البحث باستخدام واجهة المستخدم
يوفّر طلب البحث عن إمكانية العرض المستند إلى نموذج مقاييس معتمَدة من مجلس تقييم الوسائط (MRC).
يُعد اعتماد MRC ثنائيًا - يمكن أن تكون نتائجك إما معتمدة أو لا يتم اعتمادها - وينطبق هذا على جدول النتائج بالكامل. في BigQuery، يتم تطبيق التصنيف adh-mrc-accredited
على جميع النتائج المعتمَدة من مجلس تقييم الوسائط (MRC). يجب تشغيل الاستعلام من خلال النموذج حتى تكون المقاييس معتمدة من مجلس تقييم الوسائط (MRC).
لتشغيل طلب البحث المعتمد من مجلس تقييم الوسائط (MRC) من خلال النموذج:
- اتّبِع التعليمات حول كيفية إنشاء طلب بحث، مع التأكّد من اختيار YouTube Reserve كبوابة الشراء وإمكانية عرض الفيديو كنموذج طلب البحث.
- انقر على الزر تشغيل بجانب استخدام نموذج.
طلب البحث ومقاييس إمكانية العرض والزيارات غير الصالحة باستخدام واجهة برمجة التطبيقات
يمكن استرداد مقاييس إمكانية العرض والزيارات غير الصالحة من واجهة برمجة التطبيقات Ads Data Hub باستخدام نقاط النهاية generateIvtReport
وstartAnalysis
. بالنسبة إلى الزيارات غير الصالحة، يجب استرداد مقاييسك من خلال generateIvtReport
لكي يتم تطبيق adh-mrc-accredited
التصنيف وتصبح مقاييسك معتمَدة من مجلس تقييم الوسائط (MRC). وبالمثل، يجب استخدام طلب البحث العام المحدّد أدناه لمقاييس إمكانية العرض من خلال اعتماد Ads Data Hub API للحصول على اعتماد مجلس تقييم الوسائط (MRC). يتناول هذا القسم كيفية إرسال طلب إلى نقطة النهاية هذه باستخدام مكتبة برامج Python.
اتّبِع تعليمات الإعداد والترخيص/المصادقة في التشغيل السريع لواجهة برمجة التطبيقات.
بعد استبدال الحقول التالية بمعلومات ذات صلة بحسابك، يمكنك تنفيذ طلب البحث أدناه لاسترداد تقرير YouTube Reserve الزيارات غير الصالحة لحملاتك:
- ملف أسرار العميل
- الرقم التعريفي للعميل
- مفتاح واجهة برمجة التطبيقات
- 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))
احتساب مقاييس إمكانية العرض، بدون احتساب الزيارات غير الصالحة الناشئة عن تقنيات معروفة
استخدم الصيغ التالية للحصول على مقاييس إمكانية العرض المعتمدة من مجلس تقييم الوسائط (MRC) خالية من الزيارات غير الصالحة الناشئة عن تقنيات معروفة (GIVT):
- إجمالي مرات الظهور (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة): إجمالي مرات الظهور - مرات الظهور العامة غير الصالحة
- مرات الظهور القابلة للعرض (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة): مرات الظهور القابلة للعرض + مرات الظهور القابلة للعرض غير الصالحة - مرات الظهور القابلة للعرض التي أدت إلى زيارات غير صالحة ناشئة عن تقنيات معروفة (GIVT)
- مرات الظهور القابلة للقياس (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة): مرات الظهور القابلة للقياس + مرات الظهور القابلة للقياس غير الصالحة - مرات الظهور القابلة للقياس التي أدت إلى زيارات غير صالحة ناشئة عن تقنيات معروفة (GIVT)
- مرات الظهور المؤهَّلة (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة): مرات الظهور المؤهَّلة + مرات الظهور المؤهَّلة غير الصالحة - مرات الظهور المؤهَّلة التي أدت إلى زيارات غير صالحة ناشئة عن تقنيات معروفة (GIVT)
- الظهور غير القابل للعرض (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة) : مرات الظهور القابلة للقياس (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة) - مرات الظهور القابلة للعرض (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة)
- مرات الظهور غير القابلة للقياس (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة): مرات الظهور المؤهَّلة (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة) - مرات الظهور القابلة للقياس (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة)
- النسبة المئوية لمرات الظهور القابلة للقياس (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة): مرات الظهور القابلة للقياس (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة) / مرات الظهور المؤهَّلة (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة)
- النسبة المئوية لمرات الظهور القابلة للعرض (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة): مرات الظهور القابلة للعرض (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة) / مرات الظهور القابلة للقياس (صافي الزيارات غير الصالحة الناشئة عن تقنيات معروفة)