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