इटरेटर

Iterators एक सामान्य प्रोग्रामिंग पैटर्न है. इसका इस्तेमाल, ऑब्जेक्ट की सूची को तब ट्रैवर्स करने के लिए किया जाता है, जब

  • हो सकता है कि सूची का साइज़ शुरू से पता न हो.
  • पूरी सूची को एक साथ मेमोरी में लोड करने पर, ज़्यादा संसाधनों की ज़रूरत पड़ सकती है.

Iterators दो तरीके दिखाते हैं: boolean hasNext() और Object next(). Google Ads स्क्रिप्ट, Google Ads इकाइयों को फ़ेच करने के लिए, Iterator पैटर्न का इस्तेमाल करती हैं.

काम के हिसाब से, सामान्य ऐरे और इटरेटर्स में काफ़ी अंतर नहीं होता. साथ ही, इटरेटर्स से आपके कोड को छोटा बनाया जा सकता है. ऐरे को ट्रैवर्स करने वाले कोड की तुलना करें:

for (var i = 0; i < myArray.length; i++) {
  let myObject = myArray[i];
}

कोड में, किसी इटरेटटर को ट्रैवर्स करने के लिए:

while (myIterator.hasNext()) {
  let myObject = myIterator.next();
}

नीचे दिया गया कोड, आपके खाते के सभी कैंपेन में इटरेटर के इस्तेमाल के बारे में बताता है:

var campaignIterator = AdsApp.campaigns().get();

while (campaignIterator.hasNext()) {
  let campaign = campaignIterator.next();
  console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
      `budget=${campaign.getBudget().getAmount()}`);
}

पहले से मौजूद JavaScript के दोहराव का भी इस्तेमाल किया जा सकता है:

for (const campaign of AdsApp.campaigns()) {
  console.log(`${campaign.getName()}; active? ${campaign.isEnabled()}; ` +
      `budget=${campaign.getBudget().getAmount()}`);
}

किसी सिलेक्टर पर withLimit() लागू करने से, totalNumEntities() की वैल्यू नहीं बदलती. नीचे दिए गए स्निपेट में x और y की वैल्यू एक ही होगी:

var x = AdsApp.keywords().get().totalNumEntities();
var y = AdsApp.keywords().withLimit(5).get().totalNumEntities();

Google Ads इकाइयों का Iterator पाने के लिए, आपको पहले एक सिलेक्टर बनाना होगा.