Ads Manager Komut Dosyaları

Google Ads komut dosyalarındaki AdsManagerApp sınıfı, Yönetici Hesabınız altında bağlı hesapları yönetmenizi sağlar. Her hesap için ayrı bir komut dosyası oluşturmak yerine tüm reklamveren hesaplarınızı tek bir komut dosyası üzerinden yönetebilirsiniz.

Hesap listesini alma

Bir yönetici hesabının altındaki hesapları almak için accounts yöntemini kullanabilirsiniz, örneğin:

const accountSelector = AdsManagerApp.accounts()
    .withCondition('customer_client.descriptive_name = "My Account"');

const accountIterator = accountSelector.get();

Alınabilen hesaplarla ilgili bazı kısıtlamalar vardır:

  • Çok düzeyli bir hesabınız varsa yönetici hesapları alınamaz hiyerarşik olarak düzenlenmiştir. Yalnızca müşteri hesapları seçilebilir.
  • Varsayılan olarak, kapatılan, iptal edilen ve askıya alınan hesaplar döndürülmez. customer_client.status için farklı bir filtre belirterek withCondition'ü çağırarak bu davranışı geçersiz kılabilirsiniz.

accounts çağrısı, varsayılan olarak yönetici hesabı hiyerarşisini kullanmanız gerekir. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için withLimit yöntemindeki ManagedAccountSelector sınıfını kullanın. Diğer seçenek, hesapları müşteri kimliklerine göre seçmektir. withIds yöntem:

// Hyphens in the account ID are optional.
const accountSelector = AdsManagerApp.accounts()
    .withIds(['123-456-7890', '234-567-8901', '345-678-9012']);

Müşteri hesaplarında çalışma

Müşteri hesaplarını aldıktan sonra iteratörlerin hasNext ve next yöntemlerini kullanarak bu hesapları iteratif olarak inceleyebilirsiniz. Bunun için select yöntemini kullanmayı deneyin. Bir müşteri hesabınıza erişemezseniz siz gelene kadar açıkça başka bir hesap seçmek:

// Keep track of the manager account for future reference.
const managerAccount = AdsApp.currentAccount();

// Select your accounts
const accountIterator = AdsManagerApp.accounts()
// ... Write some logic here to select the accounts you want using
// withCondition or withIds

// Iterate through the list of accounts
for (const account of accountIterator) {
  // Select the client account.
  AdsManagerApp.select(account);

  // Select campaigns under the client account
  const campaignIterator = AdsApp.campaigns().get();

  // Operate on client account
  ...
}

Hesaplar üzerinde paralel çalışma

Google Ads komut dosyaları, executeInParallel yöntemindeki ManagedAccountSelector sınıfını kullanır. executeInParallel yönteminin imzası aşağıdaki gibidir:

function executeInParallel(functionName, optionalCallbackFunctionName, optionalInput);

executeInParallel yöntemi, functionName tarafından belirtilen bir işlevi, ManagedAccountSelector ile eşleşen her ManagedAccount üzerinde yürütür. Tüm hesaplar işlendikten sonra, optionalCallbackFunctionName tarafından belirtilir, bir kez yürütülür ve bir liste aktarılır / ExecutionResult nesneleri bağımsız değişkeni olarak kullanabilir. Tipik kullanım aşağıda gösterilmiştir:

function main() {
  const accountSelector = AdsManagerApp.accounts()
      .withLimit(50)
      .withCondition('customer_client.currency_code = "USD"');

  accountSelector.executeInParallel("processClientAccount", "afterProcessAllClientAccounts");
}

function processClientAccount() {
  const clientAccount = AdsApp.currentAccount();

  // Process your client account here.
  ...

  // optionally, return a result, as text.
  return "";
}

function afterProcessAllClientAccounts(results) {
  for (const result of results) {
    // Process the result further
    ...
  }
}

functionName tarafından belirtilen işlev isteğe bağlı olarak bir dize kabul edebilir bağımsız değişken (optionalInput). Bu parametre, ek bir veri aktarmak için kullanılabilir parametresini executeInParallel tarafından çağrılan tüm paralel yöntemlere

function main() {
  const accountSelector = AdsManagerApp.accounts().withIds([1234567890, 3456787890]);
  const sharedParameter = "INSERT_SHARED_PARAMETER_HERE";
  accountSelector.executeInParallel("processClientAccount", null, sharedParameter);
}

function processClientAccount(sharedParameter) {
  // Process your client account here.
  ...
}

JavaScript yapılandırma nesnesi iletmek isterseniz hesaba özgü ayarları kullanmak isterseniz, bunu önce JSON.stringify yöntem:

function main() {
  ...
  const accountFlags = {
    '1234567890': {
       'label': 'Brand 1 campaigns',
     },
    '3456787890': {
       'label': 'Brand 2 campaigns',
     }
  };
  accountSelector.executeInParallel("processClientAccount", null,
      JSON.stringify(accountFlags));
  ...
}

function processClientAccount(sharedParameter) {
  const accountFlags = JSON.parse(sharedParameter);
  // Process your client account here.
  ...
}

functionName tarafından belirtilen işlev, JSON.stringify aracılığıyla nesne yerine dize de döndürebilir:

function processClientAccount() {
  ...
  const jsonObj = {value: 10, list: [1,2,3,4,5,6], name: "Joe Smith"};
  return JSON.stringify(jsonObj);
}

Döndürülen değerler, geri çağırma işlevine ExecutionResult objelerinin listesinde iletilir. İşlevden bir JSON dizesi döndürdüyseniz bu dizeyi kullanarak JavaScript nesnesine JSON.parse yöntem:

function callbackFunctionName(results) {
  for (var i = 0; i < results.length; i++) {
    var resultObj = JSON.parse(results[i].getReturnValue());
  }
}

İlgili içeriği oluşturmak için kullanılan executeInParallel yöntemi, maksimum 50 accounts, Bu nedenle, olası satışların sayısını sınırlamak için kendi kısıtlamalarınızı aldığı tüm hesaplar. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için withLimit veya withIds yöntemi ManagedAccountSelector sınıfını kullanın.

Yürütme süresi sınırları

Aşağıdakiler için bu sayfaya bakın: hakkında daha fazla bilgi edinin.