Search Audiences
Stay organized with collections
Save and categorize content based on your preferences.
Add search audience to an ad group
function addSearchAudienceToAdGroup(adGroupName, audienceId, bidModifier = 1.5) {
// Retrieve the ad group.
const adGroups = AdsApp.adGroups()
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
if (!adGroups.hasNext()) {
throw new Error(`Cannot find ad group with name "${adGroupName}"`);
}
const adGroup = adGroups.next();
if (adGroups.totalNumEntities() > 1) {
console.warn(`More than one ad group with name "${adGroupName}" was ` +
`found. Using the ad group in campaign ` +
`"${adGroup.getCampaign().getName()}"`);
}
// Create the search audience.
const operation = adGroup.targeting()
.newUserListBuilder()
.withAudienceId(audienceId)
.withBidModifier(bidModifier)
.build();
if (!operation.isSuccessful()) {
console.warn(`Failed to attach search audience. ` +
`Errors: ${operation.getErrors().join(', ')}'`);
}
const searchAudience = operation.getResult();
// Display the results.
console.log(`Search audience with name ${searchAudience.getName()} and ` +
`ID = ${searchAudience.getId().toFixed(0)} was added to ` +
`ad group "${adGroupName}".`);
}
Get ad group search audience by name
function getAdGroupSearchAudienceByName(campaignName, adGroupName, audienceName) {
// Retrieve the search audience.
const searchAudiences = AdsApp.adGroupTargeting().audiences()
.withCondition(`campaign.name = "${campaignName}"`)
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const audience of searchAudiences) {
if (audience.getName() == audienceName) {
return audience;
}
}
// Display the results.
console.warn(`Cannot find an audience "${audienceName}" in the ad group
"${adGroupName}" belonging to the campaign "${campaignName}".`);
}
Filter ad group search audience by stats
function filterAdGroupAudienceByStats() {
// Retrieve top performing search audiences.
const topPerformingAudiences = AdsApp.adGrouptargeting().audiences()
.withCondition(`campaign.name = "Campaign #1"`)
.withCondition(`ad_group.name = "Ad Group #1"`)
.withCondition("metrics.clicks > 34")
.forDateRange("LAST_MONTH")
.get();
for (const audience of topPerformingAudiences) {
const stats = audience.getStatsFor("LAST_MONTH");
console.log(`Search audience with ID = ${audience.getId().toFixed(0)}, ` +
`name = "${audience.getName()}" and audience list ID = ` +
`${audience.getAudienceId()} had ${stats.getClicks()} clicks last ` +
`month.`);
}
}
Exclude search audience from a campaign
function addExcludedAudienceToCampaign(campaignName, audienceId) {
// Retrieve the campaign.
const campaigns = AdsApp.campaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
if (!campaigns.hasNext()) {
throw new Error(`Cannot find campaign with name "${campaignName}"`);
}
const campaign = campaigns.next();
// Create the excluded audience.
const operation = campaign.targeting()
.newUserListBuilder()
.withAudienceId(`${audienceId}``)
.exclude();
if (!operation.isSuccessful()) {
console.warn(`Failed to exclude audience ${audienceId}. Errors: ${operation.getErrors().join(', ')}`);
}
const audience = operation.getResult();
console.log(`Excluded audience "${audience.getName()}" from campaign ` +
``"${campaignName}".`);
}
Get excluded search audiences for a campaign
function getExcludedAudiencesForCampaign(campaignName) {
// Retrieve the campaign.
const campaign = AdsApp.campaigns()
.withCondition(`campaign.name = "${campaignName}"`)
.get();
if (!campaigns.hasNext()) {
throw new Error(`Cannot find campaign with name "${campaignName}"`);
}
const campaign = campaigns.next();
return campaign.targeting().excludedAudiences().get();
}
Set AdGroup targeting setting
function setAdGroupTargetSetting(campaignName, adGroupName, group = "USER_INTEREST_AND_ALL", setting = "TARGET_ALL_TRUE") {
// Retrieve the ad group.
const adGroups = AdsApp.adGroups()
.withCondition(`campaign.name = "${campaignName}"`)
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
if (!adGroups.hasNext()) {
throw new Error(`Cannot find ad group with name "${adGroupName}" in ` +
`campaign "${campaignName}"`);
}
// Change the target setting.
adGroup.targeting().setTargetingSetting(group, setting);
}
Update audience bid modifier
function updateAudienceBidModifer(campaignName, adGroupName, audienceName, bidModifier = 1.5) {
// Create the search audience.
const audiences = AdsApp.adGrouptargeting().audiences()
.withCondition(`campaign.name = "${campaignName}"`)
.withCondition(`ad_group.name = "${adGroupName}"`)
.get();
for (const audience of audiences) {
if (audience.getName() == audienceName) {
audience.bidding().setBidModifier(bidModifier);
}
}
}
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-03-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2022-03-14 UTC."],[[["These Google Ads scripts provide functions to manage search audiences and targeting settings within ad groups and campaigns."],["You can add, retrieve, filter, and exclude search audiences, as well as adjust bid modifiers."],["Scripts enable you to target or exclude specific user lists based on criteria such as audience ID or name."],["Campaign-level targeting settings can be controlled, including the ability to add excluded audiences to an entire campaign."],["Automated audience management is streamlined by using conditional statements, loops, and specific Google Ads API functions."]]],[]]