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 intentas 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 se devuelven 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 puja de CPC del grupo de anuncios. Como la cantidad no es válida, se produce un error en la llamada sin mensajes, 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 puede caer en la tentación de llamar getCpc a method después de establecer su valor para comprobar que la actualización se ha realizado correctamente, no lo haga. Llamar al método get después de llamar al método set degrada el rendimiento al eliminar la función de actualización por lotes. Para obtener más información, consulte Actualizaciones por lotes en Prácticas recomendadas.

Otros errores, como errores en tiempo de ejecución o errores de recuperación de entidades, hacen que la ejecución de scripts se detenga. Cuando esto ocurre, el mensaje de error se escribe en el registro de texto. El código siguiente intenta llamar a la función, foo() pero debido a 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 en el registro de texto.