Lớp
AdsManagerApp
trong tập lệnh Google Ads cho phép bạn quản lý các tài khoản được liên kết trong
Tài khoản người quản lý của bạn. Bạn có thể quản lý
tất cả tài khoản nhà quảng cáo thông qua một tập lệnh duy nhất thay vì tạo
tập lệnh riêng cho từng tài khoản.
Truy xuất danh sách tài khoản
Bạn có thể truy xuất các tài khoản trong tài khoản người quản lý bằng phương thức accounts
, ví dụ:
const accountSelector = AdsManagerApp.accounts()
.withCondition('customer_client.descriptive_name = "My Account"');
const accountIterator = accountSelector.get();
Có một số hạn chế đối với các tài khoản có thể truy xuất:
- Bạn không thể truy xuất tài khoản người quản lý nếu có hệ phân cấp nhiều cấp. Bạn chỉ có thể chọn tài khoản khách hàng.
- Theo mặc định, những tài khoản đã đóng, bị huỷ và bị tạm ngưng sẽ không được trả về. Bạn có thể ghi đè hành vi này bằng cách gọi
withCondition
chỉ định một bộ lọc khác chocustomer_client.status
.
Lệnh gọi accounts
truy xuất danh sách tất cả tài khoản khách hàng trong
hệ phân cấp tài khoản người quản lý theo mặc định. Bạn có thể sử dụng phương thức withLimit
của lớp ManagedAccountSelector
để hạn chế số lượng tài khoản mà tập lệnh của bạn truy xuất. Một cách khác là chọn tài khoản theo mã khách hàng bằng phương thức withIds
:
// Hyphens in the account ID are optional.
const accountSelector = AdsManagerApp.accounts()
.withIds(['123-456-7890', '234-567-8901', '345-678-9012']);
Làm việc trên tài khoản khách hàng
Sau khi truy xuất các tài khoản khách hàng, bạn có thể lặp lại qua các tài khoản đó bằng các phương thức hasNext
và next
của trình lặp. Bạn cần sử dụng phương thức select
để chuyển ngữ cảnh thực thi sang tài khoản khách hàng. Sau khi bạn chọn một tài khoản khách hàng, mọi lệnh gọi API khác sẽ áp dụng cho tài khoản khách hàng cho đến khi bạn chọn rõ ràng một tài khoản khác:
// 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
...
}
Làm việc trên các tài khoản song song
Tập lệnh Google Ads cho phép bạn vận hành song song trên nhiều tài khoản khách hàng bằng phương thức
executeInParallel
của lớp
ManagedAccountSelector
. Phương thức executeInParallel
có chữ ký sau:
function executeInParallel(functionName, optionalCallbackFunctionName, optionalInput);
Phương thức executeInParallel
thực thi một hàm do functionName
chỉ định trên mỗi ManagedAccount
mà ManagedAccountSelector
khớp. Sau khi tất cả tài khoản đã được xử lý, hàm callback (nếu do optionalCallbackFunctionName
chỉ định) sẽ được thực thi một lần và truyền một danh sách các đối tượng ExecutionResult
làm đối số để tiếp tục xử lý. Cách sử dụng thông thường như sau:
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
...
}
}
Hàm do functionName
chỉ định có thể tuỳ ý chấp nhận một đối số chuỗi (optionalInput
). Bạn có thể dùng tham số này để truyền một tham số bổ sung đến tất cả các phương thức song song do executeInParallel
gọi:
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.
...
}
Nếu muốn chuyển một đối tượng cấu hình JavaScript chứa các chế độ cài đặt dành riêng cho tài khoản, trước tiên, bạn có thể chuyển đổi đối tượng đó thành một chuỗi bằng phương thức JSON.stringify
:
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.
...
}
Hàm do functionName
chỉ định cũng có thể trả về một chuỗi thay vì một đối tượng thông qua JSON.stringify
:
function processClientAccount() {
...
const jsonObj = {value: 10, list: [1,2,3,4,5,6], name: "Joe Smith"};
return JSON.stringify(jsonObj);
}
Các giá trị trả về được chuyển vào hàm callback trong danh sách các đối tượng ExecutionResult
. Nếu trả về một chuỗi JSON qua hàm, bạn có thể chuyển đổi chuỗi đó trở lại thành đối tượng JavaScript bằng phương thức JSON.parse
:
function callbackFunctionName(results) {
for (var i = 0; i < results.length; i++) {
var resultObj = JSON.parse(results[i].getReturnValue());
}
}
Phương thức executeInParallel
hoạt động trên tối đa 50 accounts
, vì vậy, bạn sẽ phải triển khai các hạn chế của riêng mình để giới hạn số lượng tài khoản mà tập lệnh của bạn truy xuất. Bạn có thể sử dụng phương thức withLimit
hoặc withIds
của lớp ManagedAccountSelector
để hạn chế số lượng tài khoản mà tập lệnh của bạn truy xuất.
Giới hạn thời gian thực thi
Hãy xem trang này để biết thông tin chi tiết về giới hạn thời gian thực thi tập lệnh trong Trình quản lý Google Ads.