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