หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ถ้าคุณมีบัญชีหลายบัญชีหรือจัดการบัญชีให้ผู้อื่น ทุกอย่างจะเริ่มต้นด้วยวัตถุ AccountsApp AccountsApp คือวัตถุระดับบนสุดที่คุณใช้เพื่อดูรายการบัญชีที่คุณมีสิทธิ์เข้าถึง และเพื่อเลือกบัญชีที่จะจัดการ หลังจากได้รับและเลือกบัญชีแล้ว คุณจะเปลี่ยนไปใช้วัตถุ AdsApp เพื่อเข้าถึงเอนทิตีของบัญชี
หมายเหตุ
สําหรับสคริปต์หลายบัญชี ให้ใช้ตัวแก้ไขสคริปต์ที่เข้าถึงได้จาก สรุปบัญชี ในแอปพลิเคชันบนเว็บ Microsoft Advertising หากคุณไม่เห็น สรุปบัญชี ใน UI คุณจะไม่ใช้ตัวแก้ไขสคริปต์แบบหลายบัญชี
เมื่อต้องการเข้าถึงตัวแก้ไขสคริปต์จาก สรุปบัญชี ให้คลิก การดําเนินการเป็นกลุ่มใน บานหน้าต่างด้านซ้าย จากนั้น ภายใต้สคริปต์ ให้คลิกสร้างและจัดการสคริปต์
แสดงรายการบัญชีที่คุณมีสิทธิ์เข้าถึง
เมื่อต้องการแสดงรายการบัญชีทั้งหมดที่คุณมีสิทธิ์เข้าถึง ให้เรียกวิธีบัญชี เมธอดส่งกลับวัตถุ BingAdsAccountSelector ที่คุณสามารถใช้เพื่อกรองรายการบัญชี สําหรับข้อมูลเกี่ยวกับการใช้ตัวเลือกเพื่อกรองรายการ ให้ดู การใช้ตัวเลือก
ตัวอย่างต่อไปนี้จะส่งกลับบัญชีทั้งหมดที่คุณมีสิทธิ์เข้าถึง
function main() {
var accounts = AccountsApp.accounts()
.get();
while (accounts.hasNext()) {
var account = accounts.next();
Logger.log(`Account ID: ${account.getAccountId()}
Account name: ${account.getName()}
Account number: ${account.getAccountNumber()}
Customer ID: ${account.getCustomerId()}
Currency code: ${account.getCurrencyCode()}
Time zone: ${account.getTimeZone()}\n\n`);
}
}
การดําเนินการฟังก์ชันสําหรับแต่ละบัญชีแบบคู่ขนาน
เมื่อต้องการทํางานบนหลายบัญชีพร้อมกัน คุณสามารถเรียกใช้วิธีการ ของexecuteInParallel() ตัวเลือก ต่อไปนี้คือ executeInParallel() วิธีการที่คุณสามารถเรียกใช้ได้
executeInParallel(string functionName, string optionalCallbackFunctionName)
ระบุชื่อของฟังก์ชันที่สคริปต์เรียกสําหรับแต่ละบัญชีที่ตัวเลือกส่งกลับ ฟังก์ชันอาจส่งกลับค่าเป็นสตริง เมื่อต้องการส่งกลับวัตถุที่ซับซ้อน ให้ใช้เมธอด JSON.stringify เพื่อแปลงวัตถุเป็นสตริง จากนั้นคุณสามารถใช้เมธอด JSON.parse เพื่อแปลงสตริงกลับเป็นวัตถุ
ถ้าฟังก์ชันของคุณส่งกลับค่า คุณต้องระบุฟังก์ชันเรียกกลับเพื่อจับค่าส่งกลับ หลังจากเรียกใช้ฟังก์ชันสําหรับบัญชีที่เลือกไว้ทั้งหมด สคริปต์จะเรียกใช้ฟังก์ชันการเรียกกลับเพิ่มเติม ค่าที่ส่งกลับจะถูกส่งผ่านเป็นอาร์เรย์ของวัตถุ ExecutionResult
executeInParallel(string functionName, string optionalCallbackFunctionName, string optionalInput)
ระบุชื่อของฟังก์ชันที่สคริปต์เรียกสําหรับแต่ละบัญชีที่ตัวเลือกส่งกลับ คุณอาจระบุสตริงป้อนค่าเพิ่มเติมที่ Scripts ส่งไปยังฟังก์ชัน เมื่อต้องการส่งผ่านวัตถุที่ซับซ้อน ให้ใช้เมธอด JSON.stringify เพื่อแปลงวัตถุเป็นสตริง จากนั้นคุณสามารถใช้เมธอด JSON.parse ภายในฟังก์ชันเพื่อแปลงสตริงกลับไปเป็นวัตถุ
ฟังก์ชันอาจส่งกลับค่าเป็นสตริง เมื่อต้องการส่งกลับวัตถุที่ซับซ้อน ให้ใช้เมธอด JSON.stringify เพื่อแปลงวัตถุเป็นสตริง จากนั้นคุณสามารถใช้เมธอด JSON.parse เพื่อแปลงสตริงกลับเป็นวัตถุ
ถ้าฟังก์ชันของคุณส่งกลับค่า คุณต้องระบุฟังก์ชันเรียกกลับเพื่อจับค่าส่งกลับ หลังจากเรียกใช้ฟังก์ชันสําหรับบัญชีที่เลือกไว้ทั้งหมด สคริปต์จะเรียกใช้ฟังก์ชันการเรียกกลับเพิ่มเติม ค่าที่ส่งกลับจะถูกส่งผ่านเป็นอาร์เรย์ของวัตถุ ExecutionResult
คุณต้องจํากัดจํานวนบัญชีไว้ที่ 50 มิฉะนั้น การโทรจะล้มเหลวหากตัวเลือกส่งคืนมากกว่า 50 เมื่อต้องการจํากัดจํานวนบัญชี คุณสามารถใช้เมwithLimit()ธอด , , withIds()และwithAccountNumbers()
ตัวอย่างต่อไปนี้แสดงตัวอย่างง่ายๆ ที่ดําเนินการฟังก์ชันสําหรับแต่ละบัญชีที่มีอัตราการคลิกผ่านน้อยกว่า 5% ในสัปดาห์ที่แล้ว ตัวอย่างนี้ใช้ withLimit() วิธีการเพื่อให้แน่ใจว่าการโทรจะไม่เกินขีดจํากัด 50 บัญชี
function main() {
// Select the accounts to process.
var accounts = AccountsApp.accounts()
.withLimit(50)
.withCondition('Ctr < 0.05')
.forDateRange('LAST_WEEK')
.executeInParallel('bump', 'resultsHandler');
}
function bump() {
var account = AdsApp.currentAccount();
// Do something with the entities in the account.
Logger.log(`Processing account: ${account.getAccountId()} (${account.getName()})`);
// Return a value that's processed by resultsHandler(). If
// the function returns a value, it must be a string. To return
// a complex object, use JSON.stringify(object) to return the
// object as a string.
return account.getAccountId();
}
// Handles all return values from the bump() function after the
// function completes for all accounts.
function resultsHandler(results) {
for (var result of results) {
if (result.getStatus() === 'OK') {
value = result.getReturnValue();
}
}
}
การเปลี่ยนบัญชีที่สคริปต์ประมวลผล
จนกว่าคุณจะเลือกบัญชีที่จะประมวลผล คุณจะไม่สามารถเรียกใช้วิธีการใดๆ ของ AdsApp เพื่อรับข้อมูลเอนทิตีของบัญชีได้ เมื่อต้องการเลือกบัญชี ให้ใช้วิธีการ เลือกของ AccountsApp
แต่ก่อนอื่นคุณต้องเรียกใช้วิธีการ บัญชีเพื่อเลือก บัญชีที่คุณต้องการประมวลผล สําหรับข้อมูลเกี่ยวกับการใช้เพื่อaccounts()กรองรายการบัญชี ให้ดูการแสดงรายการบัญชีที่คุณมีสิทธิ์เข้าถึง
หลังจากได้รับบัญชี ให้เรียกใช้ select() วิธีการเพื่อทําให้บัญชีเป็นบัญชีปัจจุบัน ตัวอย่างต่อไปนี้แสดงขั้นตอนนี้
function main() {
// This call logs null. Before using any
// of the AdsApp methods, you must first
// select an account to process.
Logger.log(AdsApp.currentAccount());
// Select the accounts to process
var accounts = AccountsApp.accounts()
.withIds(['123', '456', '789'])
.get();
while (accounts.hasNext()) {
AccountsApp.select(accounts.next());
// AdsApp is now set to the current account.
// Do something with the account's entities.
}
}