Budowniczowie

Kreatory to standardowy sposób tworzenia elementów w skryptach Google Ads. Kreatory umożliwiają tworzenie jednostek Google Ads synchronicznie lub asynchronicznie. Możesz też sprawdzić, czy operacja się udała, i podjąć odpowiednie działania w zależności od wyniku. Poniższy fragment kodu pokazuje, jak utworzyć słowo kluczowe za pomocą kreatora.

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

Każdy element, który można utworzyć za pomocą skryptów Google Ads, robi to z użyciem tego wzorca kreatora.

Możliwe spowolnienie działania witryny

Domyślnie skrypty Google Ads wykonują swoje działania asynchronicznie. Dzięki temu skrypty będą mogły grupować operacje w ramach wsadów i osiągnąć wysoką wydajność. Wywołanie metod operacji takich jak isSuccessful() czy getResult() wymusza jednak usunięcie przez skrypty Google Ads listy oczekujących operacji, co może obniżyć skuteczność. Zamiast tego utwórz tablicę do przechowywania operacji, a następnie powtórz ją, aby pobrać wyniki.

Słaba wydajność Dobra wydajność
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”);
}