I've been trying to create a script that would not only check my Destination URLs for error, but to import all Keywords, Ad Groups, and Campaigns into a Google Spreadsheet daily so I know which URLs I need to switch out. Here is where it gets a little complicated: my invalid URLs do not have a 404 error, but a simple text appears on the page that says 'not available'. I feel like I've written my script over and over without success. Can you take a look and help me identify where the errors are?
function main() {
var keywordsIterator = AdWordsApp.keywords()
.orderBy("Impressions DESC")
.forDateRange("YESTERDAY")
.withCondition(“Status = ENABLED”)
.get();
while (keywordsIterator.hasNext()) {
var keyword = keywordsIterator.next ();
var urlToTest = keywords.getDestinationURL();
var responseText = response.getContentText ().withCondition(“Text CONTAINS_IGNORE_CASE ‘not available’”);
var now = new Date();
var reportName = "DestinationURLDailyReport-" + Utilities.formatDate(now, "EST", "yyyyMMdd");
var spreadsheet = SpreadsheetApp.create(reportName);
var sheet = spreadsheet.getActiveSheet();
sheet.getRange("A1").setValue("Keyword");
sheet.getRange("B1").setValue("Campaign");
sheet.getRange("C1").setValue("AdGroup");
sheet.getRange("D1").setValue("Impressions");
sheet.getRange("E1").setValue("DestinationURL");
for (var row = 2; keywordsIterator.hasNext(); row ++) {
var keyword = keywordsIterator.next();
var stats = keyword.getStatsFor("YESTERDAY");
sheet.getRange("A" + row).setValue(keyword.getText());
sheet.getRange("B" + row).setValue(keyword.getCampaign());
sheet.getRange("C" + row).setValue(stats.getAdGroup());
sheet.getRange("D" + row).setValue(stats.getImpressions());
sheet.getRange("E" + row).setValue(stats.getDestinationURL());
}
Logger.log("Report ready! Visit the following URL to see it:");
}