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 belirterekwithCondition
'ü ç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.