Page Summary
-
The examples demonstrate how to perform common keyword management tasks within a specific ad group using Google Ads scripts.
-
Code snippets are provided for creating a new broad match keyword, pausing an existing keyword, retrieving all keywords, and logging statistical data for keywords.
-
The scripts utilize iterators to find the specified ad group and then interact with its keywords based on the desired action.
-
Error handling is included to address cases where the specified ad group is not found or where multiple ad groups share the same name.
Create a keyword in an existing ad group
function createHatsKeyword () { // This example snippet creates a broad match keyword for "hats" . Keywords // can be created with many optional settings , such as a max CPC bid , tracking // URL templates , and more . Please customize this example for your specific // use case . For more details about keyword builder options , see // https : // developers . google . com / google - ads / scripts / docs / reference / adsapp / adsapp_keywordbuilder . const adGroupName = 'Ad group 1' ; const adGroupIterator = AdsApp . adGroups () . withCondition ( ` ad_group . name = "${adGroupName}" ` ) . get (); if ( ! adGroupIterator . hasNext ()) { throw new Error ( ` No ad group found with name "${adGroupName}" ` ); } const adGroup = adGroupIterator . next (); if ( adGroupIterator . totalNumEntities () > 1 ) { console . warn ( ` Multiple ad groups named "${adGroupName}" found . Using the one from campaign "${adGroup.getCampaign().getName()}" . ` ); } const keywordOperation = adGroup . newKeywordBuilder () . withText ( 'hats' ) . withCpc ( 1.25 ) . withFinalUrl ( 'https://www.example.com' ) . build (); return keywordOperation ; }
Pause an existing keyword in an ad group
function pauseKeywordInAdGroup ( keywordText , adGroupName ) { const adGroupIterator = AdsApp . adGroups () . withCondition ( ` ad_group . name = "${adGroupName}" ` ) . get (); if ( ! adGroupIterator . hasNext ()) { throw new Error ( ` No ad group found with name "${adGroupName}" ` ); } const adGroup = adGroupIterator . next (); if ( adGroupIterator . totalNumEntities () > 1 ) { console . warn ( ` Multiple ad groups named "${adGroupName}" found . Using the one from campaign "${adGroup.getCampaign().getName()}" . ` ); } for ( const keyword of adGroup . keywords () . withCondition ( ` ad_group_criterion . keyword . text = "${keywordText}" ` )) { keyword . pause (); } }
Get all keywords in an ad group
function getKeywordsInAdGroup ( adGroupName ) { const keywordIterator = AdsApp . keywords () . withCondition (` ad_group . name = "${adGroupName}" `) . get (); console . log (` Ad Group "${adGroupName}" has ${ keywordIterator . totalNumEntities ()} keywords `); return keywordIterator ; }
Log stats for all keywords in an ad group
function logKeywordStatsForAdGroup () { // This example snippet prints click and impression statistics to the script // execution log . Please customize this example for your specific use case . // For all the kinds of statistics that can be logged , see // https : // developers . google . com / google - ads / scripts / docs / reference / adsapp / adsapp_stats . const adGroupName = 'Ad group 1' ; const adGroupIterator = AdsApp . adGroups () . withCondition ( ` ad_group . name = "${adGroupName}" ` ) . get (); if ( ! adGroupIterator . hasNext ()) { throw new Error ( ` No ad group found with name "${adGroupName}" ` ); } const adGroup = adGroupIterator . next (); if ( adGroupIterator . totalNumEntities () > 1 ) { console . warn ( ` Multiple ad groups named "${adGroupName}" found . Using the one from campaign "${adGroup.getCampaign().getName()}" . ` ); } for ( const keyword of adGroup . keywords ()) { let stats = keyword . getStatsFor ( 'LAST_MONTH' ); console . log ( ` Ad Group : "${adGroup.getName()}" ` ); console . log ( ` Keyword : "${keyword.getText()}" ` ); console . log ( ` Clicks : $ { stats . getClicks ()} ` ); console . log ( ` Impressions : $ { stats . getImpressions ()} ` ); console . log ( '--------------------' ); } }

