Построители – это стандартный способ создания объектов в скриптах Google Рекламы. Конструкторы позволяют создавать объекты Google Рекламы синхронно или асинхронно. Вы также можете проверить, прошла ли операция успешно или нет, и предпринять соответствующие действия в зависимости от результата операции. В следующем фрагменте кода показано, как создать ключевое слово с помощью компоновщика.
// Retrieve your ad group.
let adGroup = AdsApp.adGroups().get().next();
// Create a keyword operation.
let keywordOperation = adGroup.newKeywordBuilder()
.withCpc(1.2)
.withText("shoes")
.withFinalUrl("http://www.example.com/shoes")
.build();
// Optional: examine the outcome. The call to isSuccessful()
// will block until the operation completes.
if (keywordOperation.isSuccessful()) {
// Get the result.
let keyword = keywordOperation.getResult();
} else {
// Handle the errors.
let errors = keywordOperation.getErrors();
}
Любая сущность, которую можно создать с помощью скриптов Google Рекламы, делает это с использованием этого шаблона построителя.
Вопросы производительности
По умолчанию скрипты Google Рекламы выполняют свои операции асинхронно. Это позволяет сценариям группировать ваши операции в пакеты и достигать высокой производительности. Однако вызов методов операции , таких как isSuccessful()
и getResult()
заставляет сценарии Google Рекламы очищать список ожидающих операций и, таким образом, может привести к снижению производительности. Вместо этого создайте массив для хранения операций, а затем выполните итерацию по этому массиву для получения результатов.
Плохая производительность | Хорошая производительность |
---|---|
for (let i = 0; i < keywords.length; i++) let keywordOperation = adGroup .newKeywordBuilder() .withText(keywords[i]) .build(); // Bad: retrieving the result in the same // loop that creates the operation // leads to poor performance. let newKeyword = keywordOperation.getResult(); newKeyword.applyLabel("New keywords”); } | // Create an array to hold the operations let operations = []; for (let i = 0; i < keywords.length; i++) { let keywordOperation = adGroup .newKeywordBuilder() .withText(keywords[i]) .build(); operations.push(keywordOperation); } // Process the operations separately. Allows // Google Ads scripts to group operations into // batches. for (let i = 0; i < operations.length; i++) { let newKeyword = operations[i].getResult(); newKeyword.applyLabel("New keywords”); } |