This is the legacy documentation for Google Ads scripts. Go to the current docs.

Ad Params

Stay organized with collections Save and categorize content based on your preferences.

Create text ad with ad parameters for an ad group

function setupAdParamsInAdGroup() {
  // If you have multiple adGroups with the same name, this snippet will
  // pick an arbitrary matching ad group each time. In such cases, just
  // filter on the campaign name as well:
  //
  // AdsApp.adGroups()
  //     .withCondition('Name = "INSERT_ADGROUP_NAME_HERE"')
  //     .withCondition('CampaignName = "INSERT_CAMPAIGN_NAME_HERE"')
  var adGroupIterator = AdsApp.adGroups()
      .withCondition('Name = "INSERT_ADGROUP_NAME_HERE"')
      .get();
  if (adGroupIterator.hasNext()) {
    adGroup = adGroupIterator.next();

    adGroup.newAd().expandedTextAdBuilder()
        .withHeadlinePart1('Holiday sale')
        .withHeadlinePart2(
            'Starts in {param1: a few} days {param2: and} hours!')
        .withDescription('Everything must go!')
        .withFinalUrl('http://www.example.com/holidaysales')
        .build();

    var keywordIterator = adGroup.keywords().get();
    if (keywordIterator.hasNext()) {
      keyword = keywordIterator.next();
      // Setup Ad to show as 'Doors open in 5 days, 7 hours!' when searched
      // using this keyword. If the ad is triggered using a keyword
      // without ad param, the ad shows as
      // 'Doors open in a few days, and hours!'
      keyword.setAdParam(1, 5);
      keyword.setAdParam(2, 7);
    }
  }
}

Get ad parameters for a keyword

function getAdParamsForKeyword() {
  // If you have multiple adGroups with the same name, this snippet will
  // pick an arbitrary matching ad group each time. In such cases, just
  // filter on the campaign name as well:
  //
  // AdsApp.adGroups()
  //     .withCondition('Name = "INSERT_ADGROUP_NAME_HERE"')
  //     .withCondition('CampaignName = "INSERT_CAMPAIGN_NAME_HERE"')
  var adGroupIterator = AdsApp.adGroups()
      .withCondition('Name = "INSERT_ADGROUP_NAME_HERE"')
      .get();
  if (adGroupIterator.hasNext()) {
    adGroup = adGroupIterator.next();
    var keywordIterator = adGroup.keywords()
        .withCondition('Text = "Holiday sales"')
        .get();
    if (keywordIterator.hasNext()) {
      keyword = keywordIterator.next();
      var adParamIterator = keyword.adParams().get();
      while (adParamIterator.hasNext()) {
        var adParam = adParamIterator.next();
        logAdParam(adParam);
      }
    }
  }
}

function logAdParam(adParam) {
  Logger.log('Keyword : ' + adParam.getKeyword().getText());
  Logger.log('MatchType : ' + adParam.getKeyword().getMatchType());
  Logger.log('Index : ' + adParam.getIndex());
  Logger.log('Insertion Text : ' + adParam.getInsertionText());
}