Listas de palabras clave negativas

Obtener una lista de palabras clave negativas por nombre

function getNegativeKeywordList(name) {
  const negativeKeywordLists = AdsApp.negativeKeywordLists()
      .withCondition(`shared_set.name = "${name}"`)
      .get();
  if (!negativeKeywordLists.hasNext()) {
    throw new Error(`Cannot find negative keyword list with name "${name}"`);
  }

  return negativeKeywordLists.next();
}

Construir una nueva lista de palabras clave negativas y agregarla a una campaña

function addNegativeKeywordListToCampaign(campaignName, negativeKeywordListName) {
  const negativeKeywordLists = AdsApp.negativeKeywordLists()
      .withCondition(`shared_set.name = "${negativeKeywordListName}"`)
      .get();
  if (!negativeKeywordLists.hasNext()) {
    throw new Error(`Cannot find negative keyword list with name "${negativeKeywordListName}"`);
  }
  const negativeKeywordList = negativeKeywordLists.next();

  const campaigns = AdsApp.campaigns()
      .withCondition(`campaign.name = "${campaignName}"`)
      .get();
  if (!campaigns.hasNext()) {
    throw new Error(`Cannot find campaign with the name "${campaignName}"`);
  }
  const campaign = campaigns.next();
  campaign.addNegativeKeywordList(negativeKeywordList);
}

Quitar todas las palabras clave negativas compartidas en una lista de palabras clave negativas

function removeAllNegativeKeywordsFromList(name) {
  const negativeKeywordLists = AdsApp.negativeKeywordLists()
      .withCondition(`shared_set.name = "${name}"`)
      .get();
  if (!negativeKeywordLists.hasNext()) {
    throw new Error(`Cannot find negative keyword list with name "${name}"`);
  }
  const negativeKeywordList = negativeKeywordLists.next();

  for (const negativeKeyword of negativeKeywordList.negativeKeywords()) {
    negativeKeyword.remove();
  }
}