สคริปต์ Ads Manager
    
    
      
    
    
      
      จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
    
    
      
      บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
    
  
    
  
      
    
  
  
  
  
  
    
    
    
  
  
    
    
    
เรียกบัญชีทั้งหมด
function getAllAccounts() {
  const accountIterator = AdsManagerApp.accounts().get();
  for (const account of accountIterator) {
    const accountName = account.getName() ? account.getName() : '--';
    console.log('%s,%s,%s,%s', account.getCustomerId(), accountName,
        account.getTimeZone(), account.getCurrencyCode());
  }
}
เรียกบัญชีจากรหัสลูกค้า
function getAccountsFromCustomerIds() {
  // This is useful when you are reading customer IDs from an external data
  // source, such as a Google Spreadsheet.
  // You can also use the condition "CustomerId in ['123-456-7890',
  // '345-678-9000', '890-123-6000']".
  const accountIterator = AdsManagerApp.accounts()
      .withIds(['123-456-7890', '345-678-9000', '890-123-6000'])
      .get();
  for (const account of accountIterator) {
    const accountName = account.getName() ? account.getName() : '--';
    console.log('%s,%s,%s,%s', account.getCustomerId(), accountName,
        account.getTimeZone(), account.getCurrencyCode());
  }
}
เรียกบัญชีตามป้ายกำกับ
function getAccountsByLabel() {
  // Only CONTAINS and DOES_NOT_CONTAIN operators are supported.
  const accountIterator = AdsManagerApp.accounts()
      .withCondition("LabelNames CONTAINS 'High spend accounts'")
      .get();
  for (const account of accountIterator) {
    const accountName = account.getName() ? account.getName() : '--';
    console.log('%s,%s,%s,%s', account.getCustomerId(), accountName,
        account.getTimeZone(), account.getCurrencyCode());
  }
}
ทยอยอัปเดตบัญชี
function updateAccountsInSeries() {
  // You can use this approach when you have only minimal processing to
  // perform in each of your client accounts.
  // Select the accounts to be processed.
  const accountIterator = AdsManagerApp.accounts()
      .withCondition("LabelNames CONTAINS 'Cars'")
      .get();
  for (const account of accountIterator) {
    // Switch to the account you want to process.
    AdsManagerApp.select(account);
    // Retrieve all Search and Display campaigns to be paused.
    const campaignIterator = AdsApp.campaigns()
        .withCondition("LabelNames = 'Christmas promotion'")
        .get();
    for (const campaign of campaignIterator) {
      console.log(`Pausing campaign ${campaign.getName()} in ` +
          `account ${account.getCustomerId()}`);
      campaign.pause();
    }
  }
}
อัปเดตหลายบัญชีไปพร้อมกัน
function updateAccountsInParallel() {
  // You can use this approach when you have a large amount of processing
  // to do in each of your client accounts.
  // Select the accounts to be processed. You can process up to 50 accounts.
  const accountSelector = AdsManagerApp.accounts()
      .withCondition("LabelNames CONTAINS 'High spend accounts'")
      .withLimit(50);
  // Process the account in parallel. The 'processAccount' function will
  // be called in the context of each account in the selector. The 'allFinished' function
  // will be called in this script once processing is complete, and is optional.
  accountSelector.executeInParallel('processAccount', 'allFinished');
}
/**
 * Process one account at a time. This method is called by the executeInParallel
 * method call in updateAccountsInParallel function for every account that
 * it processes.
 *
 * @return {Number} the number of campaigns paused by this method.
 */
function processAccount() {
  // executeInParallel will automatically switch context to the account being
  // processed, so all calls to AdsApp will apply to the selected account.
  const campaignIterator = AdsApp.campaigns()
      .withCondition("LabelNames = 'Christmas promotion'")
      .get();
  for (const campaign of campaignIterator) {
    console.log(`Pausing campaign ${campaign.getName()} in ` +
        `account ${account.getCustomerId()}`);
    campaign.pause();
  }
  // Optional: return a string value. If you have a more complex JavaScript
  // object to return from this method, use JSON.stringify(value). This value
  // will be passed on to the callback method, if specified, in the
  // executeInParallel method call.
  return campaignIterator.totalNumEntities().toFixed(0);
}
/**
 * Post-process the results from processAccount. This method will be called
 * once all the accounts have been processed by the executeInParallel method
 * call.
 *
 * @param {Array.<ExecutionResult>} results An array of ExecutionResult objects,
 * one for each account that was processed by the executeInParallel method.
 */
function allFinished(results) {
  for (const result of results) {
    console.log(`Customer ID: ${result.getCustomerId}; ` +
        `status = ${result.getStatus}.`);
    // Check the execution status. This can be one of ERROR, OK, or TIMEOUT.
    if (result.getStatus() == 'ERROR') {
      console.log(`-- Failed with error: '${result.getError()}'.`);
    } else if (result.getStatus() == 'OK') {
      // This is the value you returned from processAccount method. If you
      // used JSON.stringify(value) in processAccount, you can use
      // JSON.parse(text) to reconstruct the JavaScript object.
      const retval = result.getReturnValue();
      console.log(`--Processed ${retval} campaigns.`);
    } else {
      // Handle timeouts here.
    }
  }
}
  
  
  
  
    
  
 
  
    
      
      
    
    
      
    
    
  
       
    
    
      
    
  
  
  เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
  อัปเดตล่าสุด 2025-08-21 UTC
  
  
  
    
      [[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-08-21 UTC"],[],[]]