חיפוש & SearchStream

סרטון: דיווח

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

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

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

    https://googleads.googleapis.com/v18/customers/CUSTOMER_ID/googleAds
POST /v18/customers/CUSTOMER_ID/googleAds:search 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'"
}

אם יש יותר מ-10,000 שורות בתוצאות, הערך nextPageToken מוחזר בתגובה:

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

אם חוזרים על אותה שאילתה עם pageToken שמתווספים אליו הערכים מהבקשה הקודמת, מקבלים את דף התוצאות הבא:

POST /v18/customers/CUSTOMER_ID/googleAds:search 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'",
"pageToken": "CPii5aS87vfFTBAKGJvk36qpLiIWUW5SZk8xa1JPaXJVdXdIR05JUUpxZyoCVjMwADjUBkD___________8B"
}

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

POST /v18/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'"
}