BingAdsAccountSelector

Contains the methods for filtering and ordering the list of accounts the user has access to. For information about selectors, see Selectors.

Example usage:

    var accounts = AccountsApp.accounts()
        .withCondition("Name CONTAINS_IGNORE_CASE 'PARTIAL ACCOUNT NAME GOES HERE'")
        .get();

    while (accounts.hasNext()) {
        var account = accounts.next();
    }

Methods

Method Name Return Type Description
executeInParallel(string functionName, string optionalCallbackFunctionName) void Executes the function for each account that the selector returns.
executeInParallel(string functionName, string optionalCallbackFunctionName, string optionalInput) void Executes the function for each account that the selector returns.
forDateRange(Object dateFrom, Object dateTo) BingAdsAccountSelector Applies the start and end dates for selecting performance metrics.
forDateRange(string dateRange) BingAdsAccountSelector Applies the predefined date range for selecting performance metrics.
get BingAdsAccountIterator Gets an iterator used to iterate through the list of accounts.
orderBy(string orderBy) BingAdsAccountSelector Applies the specified ordering to the selected accounts.
withAccountNumbers(string[] accountNumbers) BingAdsAccountSelector Gets accounts with the specified account numbers.
withCondition(string condition) BingAdsAccountSelector Applies filter criteria to the accounts.
withIds(string[] ids) BingAdsAccountSelector Gets accounts with the specified IDs.
withLimit(int limit) BingAdsAccountSelector Gets the top n accounts that match the selection criteria.

executeInParallel(string functionName, string optionalCallbackFunctionName)

Executes the function for each account that the selector returns. After the function is executed for all selected accounts, Scripts calls the optional callback function.

Note

The script may execute a maximum of 50 accounts in parallel each time the script runs. You may call this method once or multiple times but the total number of accounts all calls process must not exceed 50. If a call exceeds the 50 account maximum for the script, none of the accounts in the call are executed. To limit the number of accounts the selector returns, consider using the withLimit or withIds method.

The functionName function may return a value as a string. To return a complex object, use the JSON.stringify method to convert the object to a string. You can then use the JSON.parse method to convert the string back into an object. If your function returns a value, you must specify a callback function to capture the return values. The following shows the callback function's signature. The returned values are passed as an array of ExecutionResult objects.

function myCallback(ExecutionResult[] results)

The following example shows how to process the returned values in the callback function.

function myCallback(results) {
    for (var result of results) {
        var object = JSON.parse(result.getReturnValue());
    }
}

Because this method does not return a BingAdsAccountSelector object, make sure this method is the last selector method in the call chain.

For an example, see Discovering disapproved ads.

Arguments

Name Type Description
functionName string The name of the function to execute for each account that the selector returns. The currentAccount method identifies the account the function is processing.
optionalCallbackFunctionName string Optional. The name of the function to execute after all accounts finish executing the functionName function. This function executes only one time.

Returns

Type Description
void Returns nothing.

executeInParallel(string functionName, string optionalCallbackFunctionName, string optionalInput)

Executes the function for each account that the selector returns. After the function executes for all selected accounts, Scripts calls the optional callback function.

Note

The script may execute a maximum of 50 accounts in parallel each time the script runs. You may call this method once or multiple times but the total number of accounts all calls process must not exceed 50. If a call exceeds the 50 account maximum for the script, none of the accounts in the call are executed. To limit the number of accounts the selector returns, consider using the withLimit or withIds method.

The functionName function may return a value as a string. To return a complex object, use the JSON.stringify method to convert the object to a string. You can then use the JSON.parse method to convert the string back into an object. If your function returns a value, you must specify a callback function to capture the return values. The following shows the callback function's signature. The returned values are passed as an array of ExecutionResult objects.

function myCallback(ExecutionResult[] results)

The following example shows how to process the returned values in the callback function.

function myCallback(results) {
    for (var result of results) {
        var object = JSON.parse(result.getReturnValue());
    }
}

If you pass the optional input parameter, the following shows the signature of the functionName function.

function myFunction(string optionalInput)

Because this method does not return a BingAdsAccountSelector object, make sure this method is the last selector method in the call chain.

For an example, see Discovering disapproved ads.

Arguments

Name Type Description
functionName string The name of the function to execute for each account that the selector returns. The currentAccount method identifies the account the function is processing.
optionalCallbackFunctionName string Optional. The name of the function to execute after all accounts finish executing the functionName function. This function executes only one time.
optionalInput string Optional. Input to pass to the functionName function.

Returns

Type Description
void Returns nothing.

forDateRange(Object dateFrom, Object dateTo)

Applies the start and end dates for selecting performance metrics.

Specify a date range only if:

  • You apply conditions or ordering that reference performance metric fields.
  • You want to get performance data for the objects you're selecting. For example, if you plan to call the getStats() method.

You may specify the date parameters using strings or objects. To use strings, specify the date in the form, YYYYMMDD. If you use objects, create an object with the following fields:

  • year
  • month
  • day

For example:

var date = {year: 2018, month: 5, day: 13};

The month is one-based where 1 is January and 12 is December.

The date range is inclusive. If you specify multiple date ranges, only the last date range is used.

Arguments

Name Type Description
dateFrom Object The start date of the date range that specifies the performance data to include in the selector.
dateTo Object The end date of the date range that specifies the performance data to include in the selector.

Returns

Type Description
BingAdsAccountSelector Selector with date range applied.

forDateRange(String dateRange)

Applies the predefined date range for selecting performance metrics.

Supported date range values:

  • TODAY
  • YESTERDAY
  • LAST_WEEK
  • LAST_BUSINESS_WEEK
  • LAST_7_DAYS
  • THIS_WEEK_SUN_TODAY
  • LAST_14_DAYS
  • LAST_30_DAYS
  • LAST_WEEK_SUN_SAT
  • THIS_MONTH
  • LAST_MONTH
  • ALL_TIME

Specify a date range only if:

  • You apply conditions or ordering that reference performance metric fields.
  • You want to get performance data for the objects you're selecting. For example, if you plan to call the getStats() method.

If you specify multiple date ranges, only the last date range is used.

Arguments

Name Type Description
dateRange String The predefined date range string that specifies the performance data to include in the selector. The predefined date range string is case sensitive.

Returns

Type Description
BingAdsAccountSelector Selector with date range applied.

get

Gets an iterator used to iterate through the list of accounts.

Returns

Type Description
BingAdsAccount An iterator used to iterate through the selected accounts.

orderBy(string orderBy)

Applies the specified ordering to the selected accounts.

Specify the orderBy parameter in the form, "columnName orderDirection" where:

  • columnName is one of the supported columns.
  • orderDirection is the order to sort the results in. Set to ASC to order the results in ascending order or DESC to order the results in descending order. The default is ASC.

For example, the following call returns results in ascending order by Clicks.

selector = selector.orderBy("Clicks");

Selectors support ordering entities by one field only. You may not order the list of entities by field x, and within x by field y, and so on. If you specify more than one orderBy() call in a chain or in separate selector calls, Scripts orders the list of entities using the field specified in the last orderBy() call. 

Arguments

Name Type Description
orderBy string The ordering to apply.

Returns

Type Description
BingAdsAccountSelector Selector with ordering applied.

withAccountNumbers(string[] accountNumbers)

Gets accounts with the specified account numbers.

Arguments

Name Type Description
accountNumbers string[] An array of account numbers. For limits, see Script execution limits.

Returns

Type Description
BingAdsAccountSelector Selector with the account numbers applied.

withCondition(String condition)

Applies filter criteria to the accounts.

Specify the condition parameter in the form, "columnName operator value" where:

Operators

The operator that you use depends on the column's type. Operators are case-sensitive. For example, use STARTS_WITH instead of starts_with.

Operators for columns that contain integers and long values:

<
<=
>
>=
=
!=

Operators for columns that contain double values:

<
>

Operators for columns that contain string values:

=
!=
STARTS_WITH
STARTS_WITH_IGNORE_CASE
CONTAINS
CONTAINS_IGNORE_CASE
DOES_NOT_CONTAIN
DOES_NOT_CONTAIN_IGNORE_CASE

Operators for columns that contain enumeration values:

=
!=
IN []
NOT_IN []

Operators for columns that contain an array of strings:

CONTAINS_ALL
CONTAINS_ANY
CONTAINS_NONE

Supported columns for account filtering. The column names are case sensitive.

The following are the performance metrics columns you may specify.

Column Type Example Microsoft Advertising web UI filter
ClickConversionRate double withCondition("ClickConversionRate > 0.25") Conv. Rate
Clicks long withCondition("Clicks >= 33") Clicks
ConvertedClicks long withCondition("ConvertedClicks >= 10") Conv.
Cost double withCondition("Cost > 3.25")

The cost is in the account's currency.
Spend
Ctr double withCondition("Ctr > 0.05")

The CTR is in the range 0..1, so use 0.05 for a 5% CTR.
CTR
Impressions long withCondition("Impressions > 10") Impr.

The following are the account properties you may specify.

Column Type Example Microsoft Advertising web UI filter
CurrencyCode string The currency code of the currency used by the account. For example, USD for United States dollar.

withCondition("CurrencyCode = USD")
ManagerCustomerId string The customer ID of the user managing the accounts.

withCondition("ManagerCustomerId = '123456789'")
Name string The name of a managed account.

withCondition("Name CONTAINS_IGNORE_CASE 'foo'")

Arguments

Name Type Description
condition string The condition to add to the selector.

Returns

Type Description
BingAdsAccountSelector Selector with the condition applied.

withIds(string[] ids)

Gets accounts with the specified IDs.

You may apply one or more conditions to a selector. A chain of conditions is considered an AND operation. For example, the entity is selected only if condition A is true AND condition B is true. For example, the following call selects only account 33333.

AccountsApp.accounts()
    .withIds(['11111', '22222', '33333'])
    .withIds(['33333', '44444', '55555']);
    .get();

Arguments

Name Type Description
ids string[] An array of account IDs. For limits, see Script execution limits.

Returns

Type Description
BingAdsAccountSelector Selector with the IDs applied.

withLimit(int limit)

Gets the top n accounts that match the selection criteria.

Arguments

Name Type Description
limit int The number of accounts to return. The actual number may be less.

Returns

Type Description
BingAdsAccountSelector Selector with limit applied.

See also