Ad Manager SOAP API یک API قدیمی برای خواندن و نوشتن دادههای Ad Manager و اجرای گزارشها است. اگر میتوانید مهاجرت کنید، توصیه میکنیم از Ad Manager API (بتا) استفاده کنید. با این حال، نسخههای Ad Manager SOAP API برای چرخه عمر معمولی خود پشتیبانی میشوند. برای اطلاعات بیشتر، Ad Manager SOAP API Deprecation Schedule را ببینید.
راهنمای زیر تفاوتهای بین Ad Manager SOAP API و Ad Manager API (بتا) را بیان میکند.
یاد بگیرید
روشهای استاندارد سرویس Ad Manager SOAP API مفاهیمی معادل در Ad Manager API دارند. Ad Manager API همچنین روش هایی برای خواندن موجودیت های منفرد دارد. جدول زیر یک نمونه نقشه برداری برای روش های Order
را نشان می دهد:
روش SOAP | روش های REST |
---|---|
getOrdersByStatement | networks.orders.get networks.orders.list |
احراز هویت
برای احراز هویت با Ad Manager API (بتا)، میتوانید از اعتبارنامههای Ad Manager SOAP API موجود خود استفاده کنید یا موارد جدیدی ایجاد کنید. با هر دو گزینه، ابتدا باید Ad Manager API را در پروژه Google Cloud خود فعال کنید. برای جزئیات بیشتر، احراز هویت را ببینید.
اگر از کتابخانه سرویس گیرنده استفاده می کنید، اعتبار پیش فرض برنامه را با تنظیم متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS
در مسیر فایل کلید حساب سرویس خود تنظیم کنید. برای جزئیات بیشتر، نحوه عملکرد اعتبارنامه پیش فرض برنامه را ببینید.
اگر از اعتبارنامه های برنامه نصب شده استفاده می کنید، یک فایل JSON با فرمت زیر ایجاد کنید و به جای آن متغیر محیط را در مسیر آن قرار دهید:
{
"client_id": "CLIENT_ID",
"client_secret": "CLIENT_SECRET",
"refresh_token": "REFRESH_TOKEN",
"type": "authorized_user"
}
مقادیر زیر را جایگزین کنید:
-
CLIENT_ID
: شناسه مشتری جدید یا موجود شما. -
CLIENT_SECRET
: راز مشتری جدید یا موجود شما. REFRESH_TOKEN
: رمز بهروزرسانی جدید یا موجود شما.
لینوکس یا macOS
export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
ویندوز
set GOOGLE_APPLICATION_CREDENTIALS=KEY_FILE_PATH
تفاوت فیلترها را درک کنید
زبان جستجوی Ad Manager API (بتا) از همه ویژگیهای زبان پرس و جو ناشر (PQL) پشتیبانی میکند، اما تفاوتهای نحوی قابل توجهی وجود دارد.
این مثال برای فهرست کردن اشیاء Order
تغییرات عمده مانند حذف متغیرهای bind، عملگرهای حساس به حروف کوچک و بزرگ و جایگزینی بندهای ORDER BY
و LIMIT
با فیلدهای جداگانه را نشان می دهد:
Ad Manager SOAP API
<filterStatement>
<query>WHERE name like "PG_%" and lastModifiedDateTime >= :lastModifiedDateTime ORDER BY id ASC LIMIT 500</query>
<values>
<key>lastModifiedDateTime</key>
<value xmlns:ns2="https://www.google.com/apis/ads/publisher/v202502" xsi:type="ns2:DateTimeValue">
<value>
<date>
<year>2024</year>
<month>1</month>
<day>1</day>
</date>
<hour>0</hour>
<minute>0</minute>
<second>0</second>
<timeZoneId>America/New_York</timeZoneId>
</value>
</value>
</values>
</filterStatement>
Ad Manager API (بتا)
فرمت JSON
{
"filter": "displayName = \"PG_*\" AND updateTime > \"2024-01-01T00:00:00-5:00\"",
"pageSize": 500,
"orderBy": "name"
}
URL کدگذاری شده است
GET https://admanager.googleapis.com/v1/networks/123/orders?filter=displayName+%3D+\"PG_*\"+AND+updateTime+%3E+\"2024-01-01T00%3A00%3A00-5%3A00\"
Ad Manager API (بتا) از همه قابلیتهای PQL با تفاوتهای نحوی زیر با Ad Manager SOAP API پشتیبانی میکند:
اپراتورهای
AND
وOR
در Ad Manager API (بتا) به حروف بزرگ و کوچک حساس هستند. حروف کوچکand
or
بهعنوان رشتههای جستجوی واقعی در نظر گرفته میشوند، یک ویژگی در Ad Manager API (بتا) برای جستجو در فیلدها.از عملگرهای بزرگ استفاده کنید
// Matches unarchived Orders where order.notes has the value 'lorem ipsum'. notes = "lorem ipsum" AND archived = false
با حروف کوچک به صورت تحت اللفظی رفتار می شود
// Matches unarchived Orders where order.notes has the value 'lorem ipsum' // and any field in the order has the literal value 'and'. notes = "lorem ipsum" and archived = false
کاراکتر
*
یک علامت عام برای تطبیق رشته است. Ad Manager API (بتا) از اپراتورlike
پشتیبانی نمی کند.Ad Manager SOAP API PQL
// Matches orders where displayName starts with the string 'PG_' displayName like "PG_%"
Ad Manager API (بتا)
// Matches orders where displayName starts with the string 'PG_' displayName = "PG_*"
نام فیلدها باید در سمت چپ عملگر مقایسه ظاهر شوند:
فیلتر معتبر
updateTime > "2024-01-01T00:00:00Z"
فیلتر نامعتبر است
"2024-01-01T00:00:00Z" < updateTime
Ad Manager API (بتا) از متغیرهای bind پشتیبانی نمی کند. همه مقادیر باید خطی شوند.
حروف رشتهای حاوی فاصله باید در گیومههای دوتایی پیچیده شوند، به عنوان مثال،
"Foo bar"
. شما نمی توانید از نقل قول های تک برای بسته بندی حرف های رشته ای استفاده کنید.
حذف ترتیب توسط بندها
تعیین ترتیب مرتب سازی در Ad Manager API (بتا) اختیاری است. اگر میخواهید ترتیب مرتبسازی را برای مجموعه نتایج خود مشخص کنید، عبارت PQL ORDER BY
را حذف کنید و به جای آن قسمت orderBy
را تنظیم کنید:
GET networks/${NETWORK_CODE}/orders?orderBy=updateTime+desc
مهاجرت از افست به توکن های صفحه بندی
Ad Manager API (بتا) از نشانه های صفحه بندی به جای بندهای LIMIT
و OFFSET
برای صفحه بندی در مجموعه نتایج بزرگ استفاده می کند.
Ad Manager API (بتا) از پارامتر pageSize
برای کنترل اندازه صفحه استفاده می کند. برخلاف عبارت LIMIT
در Ad Manager SOAP API، حذف اندازه صفحه کل مجموعه نتایج را برمیگرداند . در عوض، روش لیست از اندازه صفحه پیش فرض 50
استفاده می کند. مثال زیر pageSize
و pageToken
به عنوان پارامترهای URL تنظیم می کند:
# Initial request
GET networks/${NETWORK_CODE}/orders?pageSize=50
# Next page
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
برخلاف Ad Manager SOAP API، Ad Manager API (بتا) ممکن است نتایج کمتری نسبت به اندازه صفحه درخواستی نشان دهد، حتی اگر صفحات اضافی وجود داشته باشد. از فیلد nextPageToken
برای تعیین اینکه آیا نتایج اضافی وجود دارد استفاده کنید.
اگرچه برای صفحه بندی نیازی به افست نیست، می توانید از فیلد skip
برای چند رشته ای استفاده کنید. هنگام چند رشته ای، از نشانه صفحه بندی از صفحه اول استفاده کنید تا مطمئن شوید که از همان مجموعه نتایج مطالعه می کنید:
# First thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}
# Second thread
GET networks/${NETWORK_CODE}/orders?pageSize=50&pageToken=${TOKEN_FROM_INITIAL_REQUEST}&skip=50