Page Summary
-
The provided content offers functions to manage search audiences within Google Ads campaigns and ad groups using AdsApp scripts.
-
You can add a search audience to a specific ad group with an optional bid modifier.
-
Functions are included to retrieve search audiences by name or filter them based on performance statistics.
-
It's possible to exclude a search audience from an entire campaign.
-
You can also get a list of all excluded search audiences for a campaign.
-
The content shows how to update the bid modifier for an existing audience within an ad group.
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 ); } } }

