0

최근에 Google 페이지에 정보를 출력 한 애드워즈 API 보고서 KEYWORDS_PERFORMANCE_REPORT에서 정보를 얻으려고 스크립트를 만들었습니다.애드워즈 스크립트가 Google 시트에 작성되지 않습니다.

확장 기능에 대한 또 다른 보고서를 작성하기로 결정한 것은 기본적으로 Google 시트의 URL을 복사하고 이전 코드를 복사하고 지나치는 것이 었으며 키워드 1 대신에 PLACEHOLDER_REPORT을 사용해야한다는 보고서와 일부 측정 항목 .

스크립트는 아무 문제가 없다는 말을하지 않고 실행되지만 값을 예상 한 위치로 또는 전혀 출력하지 않습니다.

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()); 

} 

나는 그것으로 가정 같은 머리글 아래의 행을 지우고가 실행될 때 날짜와 시간을두고 있기 때문에 그것의 시트를 찾는 알고있다.

로거는 outputValue의 길이가 293이므로 결과가 명확히 표시되고 outputValue[0]에 항목을 기록하므로 내가 시트에 쓰지 않는 이유는 알 수 없습니다.

나는 애드워즈 헬프 라인이라고하지만 그들은 뭐죠 모르는, 그래서 thearen't't이 API를 물건에서 훈련을했다, 그리고 난 성공하지 당신이 단지 원하는 실행

답변

0

밝혀 졌던 출력 범위를 엉망으로 만들었습니다. id가 방금 스크롤했을 때 예상했던 것보다 약 120 행을 출력하고있었습니다. 그것을 고쳤고 지금은 모두 괜찮습니다.

0

매번 그것을 봤했습니다 새 값은, 그래서, 마지막 인수는 당신이 당신의 경우는 4 년, 그래서 또한, 쓰고, 귀하의 코드의 로직을 변경 얼마나 많은 열입니다

spreadsheet.getRange(1, 1, data.length, 4).setValues(outputValues);

이 하나 마지막 라인을 교체 사용하는 것이 좋습니다 모든 반복이 아니라 마지막에 값을 씁니다!