XML

  • The provided content shows two functions: parseXml and createXml.

  • The parseXml function demonstrates how to parse a string containing XML into a document and extract campaign id and name.

  • The createXml function shows how to create an XML representation of campaigns retrieved from AdsApp.

  • Both examples utilize the XmlService to handle XML parsing and creation within a script.

Parse XML

function parseXml() {
  // Load an XML representation of your campaigns.
  const xml = [
      '<?xml version="1.0" encoding="UTF-8"?>',
      '<campaigns>',
        '<campaign id="28632346">Placement Campaign 1</campaign>',
        '<campaign id="28780216">Campaign #14</campaign>',
        '<campaign id="29606506">LotsOfExclusion</campaign>',
      '</campaigns>'
  ].join('');

  const document = XmlService.parse(xml);
  const root = document.getRootElement();

  const entries = document.getRootElement().getChildren('campaign');
  for (let i = 0; i < entries.length; i++) {
    const id = entries[i].getAttribute('id').getValue();
    const name = entries[i].getText();
    console.log('%s) %s (%s)', (i + 1).toFixed(), name, id);
  }
}

Create XML

function createXml() {
  // Create and log an XML representation of your campaigns.
  const root = XmlService.createElement('campaigns');
  const campaignIterator = AdsApp.campaigns().get();

  while (campaignIterator.hasNext()) {
    const campaign = campaignIterator.next();

    const child = XmlService.createElement('campaign')
        .setAttribute('id', campaign.getId().toFixed(0))
        .setText(campaign.getName());
    root.addContent(child);
  }
  const document = XmlService.createDocument(root);
  const xml = XmlService.getPrettyFormat().format(document);
  console.log(xml);
}