חיפוש & SearchStream

סרטון: דוחות

ל-Google Ads API יש שיטה מאוחדת לאחזור מאפיינים ולדיווח על מדדים, שמאפשרת ליצור שאילתות באמצעות שפת השאילתות של Google Ads. כך מתאפשרת שאילתות מורכבות שיכולות להחזיר כמויות גדולות של נתונים לגבי חשבונות Google Ads נפרדים.

ניתן ליצור שאילתות באמצעות השיטה Search או השיטה SearchStream. שתי השיטות תומכות באותן שאילתות ומחזירות תוצאות מקבילות. השיטה Search מחזירה נתונים בגודלי דפים שניתן להתאים אישית, וכך מאפשרת לבצע איטרציה על קבוצת תוצאות באמצעות עימוד. זה יכול להועיל ברוחב פס נמוך או בתנאי רשת לא אמינים, למשל, פילוח של תוצאה גדולה לתגובות קטנות יותר שאפשר לאחזר מחדש במקרה שהחיבור מתנתק. לעומת זאת, השיטה SearchStream מעבירה את כל התוצאות בחזרה בתגובה אחת, וכך אפשר לאחזר נתונים בכמות גדולה בצורה יעילה יותר.

גם Search וגם SearchStream משתמשים באותה כתובת URL בסיסית:

    https://googleads.googleapis.com/v16/customers/CUSTOMER_ID/googleAds

שיטת החיפוש מבוססת-הדף מקבלת פרמטר pageSize אופציונלי שמגביל את מספר התוצאות שמוחזרות בתגובת API אחת.

POST /v16/customers/CUSTOMER_ID/googleAds:search HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
"pageSize": 10000,
"query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'"
}

אם יש יותר שורות בתוצאות מאשר pageSize, יוחזר nextPageToken בתגובה:

{
  "results": [
    // ...
    // ...
    // ...
  ],
  "nextPageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B",
  "fieldMask": "adGroupCriterion.keyword.text,adGroupCriterion.status"
}

חזרה על אותה שאילתה עם pageToken נוסף עם הערך שלמעלה מאחזרת את דף התוצאות הבא:

POST /v16/customers/CUSTOMER_ID/googleAds:search HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
"pageSize": 10000,
"query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'",
"pageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B"
}

כדי להשתמש בשיטה SearchStream, שמחזירה את כל התוצאות בתגובה אחת בסטרימינג, פשוט משנים את שיטת השירות בכתובת ה-URL ל-searchStream (pageSize ו-pageToken לא נדרשים על ידי SearchStream):

POST /v16/customers/CUSTOMER_ID/googleAds:searchStream HTTP/1.1
Host: googleads.googleapis.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN
developer-token: DEVELOPER_TOKEN

{
    "query": "SELECT ad_group_criterion.keyword.text, ad_group_criterion.status FROM ad_group_criterion WHERE ad_group_criterion.type = 'KEYWORD' AND ad_group_criterion.status = 'ENABLED'"
}