Control de errores y advertencias en el script
La única vez que Scripts devuelve errores es cuando se agrega una entidad con valores no válidos. Por ejemplo, si intenta agregar una entidad de palabra clave con un importe de puja que no es válido, se produce un error en la operación de compilación y devuelve uno o varios errores.
var operation = adGroup.newKeywordBuilder()
.withText(keywordText)
.withCpc(-5)
.build();
if (operation.isSuccessful()) {
var keyword = operation.getResult();
Logger.log(`Added keyword, ${keyword.getText()}.`);
}
else {
// The bid amount is not valid, so this path executes
for (var error of operation.getErrors()) {
Logger.log(error);
}
}
Sin embargo, si intenta actualizar las propiedades de una entidad con un valor no válido, Scripts no devuelve un error. En su lugar, Scripts escribe un mensaje de error en el registro de cambios y el código continúa ejecutándose. Por ejemplo, el código siguiente intenta establecer la oferta de CPC del grupo de anuncios. Dado que la cantidad no es válida, se produce un error en la llamada silenciosamente, el script continúa ejecutándose y se escribe un mensaje de error en el registro de cambios.
function main() {
var adGroup = AdsApp.adGroups().get().next();
adGroup.bidding().setCpc(-5);
}
Nota:
Aunque es posible que tenga la tentación de llamar getCpc
al método después de establecer su valor para comprobar que la actualización se realizó correctamente, no lo haga. Llamar al método get después de llamar al método set degrada el rendimiento mediante la eliminación de la característica de actualización por lotes. Para obtener más información, vea Batching updates in Best practices ( Actualizaciones por lotes en procedimientos recomendados).
Otros errores, como errores en tiempo de ejecución o errores de recuperación de entidades, hacen que la ejecución del script se detenga. Cuando esto sucede, el mensaje de error se escribe en el registro de texto. El código siguiente intenta llamar a la foo()
función pero, dado que la función no está definida, el script finaliza la ejecución.
function main() {
foo(); // The script stops because foo() is undefined and generates a reference error
Logger.log('This line is never logged!');
}
Siempre debe revisar todos los mensajes registrados en el registro de cambios y el registro de texto.