Google Ads API में, एट्रिब्यूट को वापस पाने और मेट्रिक की रिपोर्टिंग के लिए एक जैसा तरीका इस्तेमाल किया जाता है. इसकी मदद से, Google Ads क्वेरी लैंग्वेज का इस्तेमाल करके क्वेरी बनाई जा सकती हैं. इससे ऐसी जटिल क्वेरी बनाई जा सकती हैं जिनसे, अलग-अलग Google Ads खातों के बारे में ज़्यादा डेटा वापस मिल सकता है.
Search या SearchStream में से किसी भी तरीके का इस्तेमाल करके क्वेरी बनाई जा सकती हैं.
दोनों तरीकों से एक ही क्वेरी की जा सकती है और दोनों से एक जैसे नतीजे मिलते हैं. Search तरीके से, 10,000 पंक्तियों वाले तय साइज़ के पेजों में डेटा मिलता है. इससे, पेज नंबर के हिसाब से नतीजों के सेट को देखा जा सकता है. कम बैंडविथ या भरोसेमंद न होने वाले नेटवर्क की स्थितियों में यह तरीका फ़ायदेमंद हो सकता है. उदाहरण के लिए, नतीजों के बड़े सेट को छोटे-छोटे रिस्पॉन्स में बांटने के लिए. अगर कनेक्शन टूट जाता है, तो इन रिस्पॉन्स को फिर से फ़ेच किया जा सकता है. वहीं, SearchStream तरीके से, नतीजों का पूरा सेट एक ही रिस्पॉन्स में स्ट्रीम किया जाता है. इससे, बल्क में डेटा वापस पाने में ज़्यादा मदद मिल सकती है.
Search और SearchStream, दोनों के लिए एक ही बेस यूआरएल इस्तेमाल किया जाता है:
https://googleads.googleapis.com/v25/customers/CUSTOMER_ID/googleAds
POST /v25/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 /v25/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 तरीके का इस्तेमाल करने के लिए, यूआरएल में मौजूद सर्विस के तरीके को searchStream में बदलें. इस तरीके से, सभी नतीजे एक ही स्ट्रीम किए गए रिस्पॉन्स में मिलते हैं. SearchStream के लिए pageToken की ज़रूरत नहीं होती:
POST /v25/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'" }
SearchStream एपीआई कॉल के नतीजे, JSON कलेक्शन में रैप किए जाते हैं,
वहीं, ज़्यादातर अन्य एपीआई कॉल के रिस्पॉन्स
मैसेज के तौर पर, एक JSON ऑब्जेक्ट मिलता है. ज़्यादा जानकारी के लिए, JSON मैपिंग
सेक्शन देखें.