AI-generated Key Takeaways
- 
          Use Type = MULTI_ASSET_RESPONSIVE_DISPLAY_ADto iterate over responsive display ads that support multiple assets.
- 
          The condition Type = RESPONSIVE_DISPLAY_ADis deprecated and only iterates over legacy ads.
- 
          Update existing code to explicitly use Type = LEGACY_RESPONSIVE_DISPLAY_ADfor legacy responsive display ads.
- 
          Modern responsive display ads use getHeadlines()for multiple short headline assets, while legacy ads usegetShortHeadline().
- 
          The .isLegacy()method can differentiate between legacy and modern responsive display ads within a combined iterator.
Create an ad iterator over ads that support multiple text, image, and video
assets by using the condition Type = MULTI_ASSET_RESPONSIVE_DISPLAY_AD. An ad
iterator with condition Type = RESPONSIVE_DISPLAY_AD will only iterate
over legacy ads because this condition is deprecated. Update existing code to
explicitly use Type = LEGACY_RESPONSIVE_DISPLAY_AD.
The following snippet illustrates some of the API differences and similarities between the two types of responsive display ads. Read the Responsive Display Ad reference for more details.
    // let legacyRdaIterator = AdsApp.ads().withCondition("Type = RESPONSIVE_DISPLAY_AD").get();
    let legacyRdaIterator = AdsApp.ads().withCondition("Type = LEGACY_RESPONSIVE_DISPLAY_AD").get();
    while (legacyRdaIterator.hasNext()) {
      let responsiveDisplayAd = legacyRdaIterator.next().asType().responsiveDisplayAd();
      // Legacy responsive display ads have just one long headline.
      let longHeadline = responsiveDisplayAd.getLongHeadline();
      // And they have one short headline, too.
      let shortHeadline = responsiveDisplayAd.getShortHeadline();
      // This call to .getHeadlines() returns null, because the method is not
      // meaningful when called on a legacy responsive display ad.
      assert(responsiveDisplayAd.getHeadlines() === null);
      // ... etc. ...
    }
    let rdaIterator = AdsApp.ads().withCondition("Type = MULTI_ASSET_RESPONSIVE_DISPLAY_AD").get();
    while (rdaIterator.hasNext()) {
      let responsiveDisplayAd = rdaIterator.next().asType().responsiveDisplayAd();
      // Responsive display ads have just one long headline.
      let longHeadline = responsiveDisplayAd.getLongHeadline();
      // But they can have multiple short headline text assets.
      let shortHeadlineAssets = responsiveDisplayAd.getHeadlines();
      // This call to .getShortHeadline() returns null, because the method is only
      // meaningful when called on a legacy responsive display ad.
      assert(responsiveDisplayAd.getShortHeadline() === null);
      // ... etc. ...
    }
    let rdaAndLegacyIterator = AdsApp.ads().withCondition("Type IN [LEGACY_RESPONSIVE_DISPLAY_AD, MULTI_ASSET_RESPONSIVE_DISPLAY_AD]").get();
    while (rdaAndLegacyIterator.hasNext()) {
      let responsiveDisplayAd = legacyRdaIterator.next().asType().responsiveDisplayAd();
      let longHeadline = responsiveDisplayAd.getLongHeadline();
      // The .isLegacy() method can be used to differentiate between responsive
      // display ad types within an iterator over both.
      if (responsiveDisplayAd.isLegacy()) {
        let shortHeadline = responsiveDisplayAd.getShortHeadline();
        // ... etc. ...
      } else {
        let shortHeadlineAssets = responsiveDisplayAd.getHeadlines();
        // ... etc. ...
      }
    }