title: Adwords scripts not writing to google sheet
body: <p>I recently made a script to get info from the Adwords API report <code>KEYWORDS_PERFORMANCE_REPORT</code> that outputed the information to a google sheet and it worked fine.</p>
  
  <p>I decided to make another report for extensions all i basically did was copy and past the old code changing the URL for the google sheet and which report it should use <code>PLACEHOLDER_REPORT</code> instead of the keyword one, as well as some of the metrics.</p>
  
  <p>The script runs without saying that anything is wrong but it doesn't output the values to where its supposed to, or at all for that matter.</p>
  
  <pre><code>function processAccount()
  {
  
    var report = AdWordsApp.report(
      "SELECT AccountDescriptiveName, CampaignName, ExtensionPlaceholderCreativeId, ExtensionPlaceholderType " +
      "FROM   PLACEHOLDER_REPORT " +
      "WHERE  CampaignStatus = ENABLED " +
      "DURING LAST_7_DAYS",
      {apiVersion: 'v201705'});
  
    var rows = report.rows();
  
    if (rows.hasNext()) 
    {
          writeReport(rows);
        }
      }    
  
  function writeReport(rows) 
  {
      var spreadsheet = validateAndGetSpreadsheet(URL);
  
        // Clear all rows in the Details tab of the spreadsheet below the header row.
        var clearRange = spreadsheet.getRangeByName('Headers')
          .offset(1, 0, spreadsheet.getSheetByName('Details')
              .getDataRange().getLastRow())
          .clearContent();
  
        // Build each row of output values in the order of the Report tab columns.
        var outputValues = [];
        while (rows.hasNext())
        {
          var row = rows.next();
  
      outputValues.push([
        row["AccountDescriptiveName"],  
        row["CampaignName"],
        row["ExtensionPlaceholderCreativeId"], 
        row["ExtensionPlaceholderType"],
        ]);
     }
    // Find the first open row on the Report tab below the headers and create a
    // range large enough to hold all of the failures, one per row.
    var lastRow = spreadsheet.getSheetByName('Details')
      .getDataRange().getLastRow();
    var headers = spreadsheet.getRangeByName('Headers');
    var outputRange = headers
      .offset(lastRow - headers.getRow() + 1, 0, outputValues.length);
  
    Logger.log("outputValue length is "+outputValues.length);
    outputRange.setValues(outputValues);
    Logger.log(outputValues[0]);
  
    spreadsheet.getRangeByName('Date').setValue(new Date());
  
  }
  </code></pre>
  
  <p>I know its finding the sheet because it clears the rows below the header like its supposed to and puts the date and time when it is run. </p>
  
  <p>The logger shows that outputValue has a length of 293 so its definitly getting stuff and also logs the stuff at <code>outputValue[0]</code> so i dont know why it wont write to the sheet.</p>
  
  <p>I called the adwords helpline but they said thearen't't trained in the api stuff so they don't know whats up, and i've googled it with no success</p>