Negative Keywords

  • This documentation provides Google Ads scripts for managing negative keywords at both the campaign and ad group levels.

  • It includes functions to add negative keywords and retrieve existing negative keywords for campaigns or ad groups using their respective names.

  • When searching for ad groups by name, if multiple ad groups share the same name, the script will use the first one it encounters and issue a warning.

  • These functions are built upon the Google Ads Scripts API, utilizing methods like createNegativeKeyword and iterators to interact with campaign and ad group entities.

  • Error handling is incorporated to notify users if the specified campaign or ad group is not found.

Add negative keyword to a campaign

function addNegativeKeywordToCampaign(keyword, campaignName) {
  const campaignIterator = AdsApp.campaigns()
        .withCondition(`campaign.name = "${campaignName}"`)
        .get();
  if (campaignIterator.hasNext()) {
    const campaign = campaignIterator.next();
    campaign.createNegativeKeyword(keyword);
  } else {
    throw new Error(`Cannot find campaign with the name '${campaignName}'`);
  }
}

Get negative keywords in a campaign

function getNegativeKeywordsForCampaign(campaignName) {
  const campaignIterator = AdsApp.campaigns()
      .withCondition(`campaign.name = "${campaignName}"`)
      .get();
  if (campaignIterator.hasNext()) {
    const campaign = campaignIterator.next();
    const negativeKeywordIterator = campaign.negativeKeywords().get();
    console.log(`Found ${negativeKeywordIterator.totalNumEntities()} negative keywords.`);
    return negativeKeywordIterator;
  } else {
    throw new Error(`Cannot find campaign with the name '${campaignName}'`);
  }
}

Add a negative keyword to an ad group

function addNegativeKeywordToAdGroup(keyword, adGroupName) {
  const adGroupIterator = AdsApp.adGroups()
      .withCondition(`ad_group.name = "${adGroupName}"`)
      .get();
  if (!adGroupIterator.hasNext()) {
    throw new Error(`Cannot find ad group with the name '${adGroupName}'`);
  }
  if (adGroupIterator.totalNumEntities() > 1) {
    console.warn(`Found more than one ad group named '${adGroupName}', using the first one.`);
  }
  const adGroup = adGroupIterator.next();
  adGroup.createNegativeKeyword(keyword);
}

Get negative keywords in an ad group

function getNegativeKeywordsForAdGroup(adGroupName) {
  const adGroupIterator = AdsApp.adGroups()
      .withCondition(`ad_group.name = "${adGroupName}"`)
      .get();
  if (!adGroupIterator.hasNext()) {
    throw new Error(`Cannot find ad group with the name '${adGroupName}'`);
  }
  if (adGroupIterator.totalNumEntities() > 1) {
    console.warn(`Found more than one ad group named '${adGroupName}', using the first one.`);
  }
  const adGroup = adGroupIterator.next();
  const negativeKeywordIterator = adGroup.negativeKeywords().get();
  if (negativeKeywordIterator.hasNext()) {
    const negativeKeyword = negativeKeywordIterator.next();
    console.log(`Found ${negativeKeywordIterator.totalNumEntities()} negative keywords.`);
    return negativeKeywordIterator;
  }
}