Page Summary
-
AdsApp.campaigns() can be used to retrieve all Display and Search campaigns that are not removed by default.
-
Campaigns can be retrieved by name using
withCondition("campaign.name = \"${name}\"). -
Campaign statistics like clicks and impressions can be retrieved using
getStatsFor('LAST_MONTH')for a specific date range. -
A campaign can be paused using the
pause()method. -
Device bid modifiers for a campaign can be accessed through the
targeting().platforms()method.
Get campaigns
function getCampaigns () { // AdsApp . campaigns () will return all Display and Search campaigns // that are not removed by default . Other campaign types can be retrieved // by using their respective campaign selector methods . const campaignIterator = AdsApp . campaigns () . get (); console . log ( ` Total campaigns found : $ { campaignIterator . totalNumEntities ()} ` ); return campaignIterator ; }
Get a campaign by name
function getCampaignByName ( name ) { const campaignIterator = AdsApp . campaigns () . withCondition ( ` campaign . name = "${name}" ` ) . get (); if ( campaignIterator . hasNext ()) { const campaign = campaignIterator . next (); console . log ( ` Campaign Name : $ { campaign . getName ()} ` ); console . log ( ` Enabled : $ { campaign . isEnabled ()} ` ); console . log ( ` Bidding strategy : $ { campaign . getBiddingStrategyType ()} ` ); console . log ( ` Ad rotation : $ { campaign . getAdRotationType ()} ` ); console . log ( ` Start date : $ { formatDate ( campaign . getStartDate ())} ` ); console . log ( ` End date : $ { formatDate ( campaign . getEndDate ())} ` ); return campaign ; } else { throw new Error ( ` No campaign named "${name}" found ` ); } } function formatDate ( date ) { function zeroPad ( number ) { return Utilities . formatString ( ' %02d ' , number ); } return ( date == null ) ? 'None' : zeroPad ( date . year ) + zeroPad ( date . month ) + zeroPad ( date . day ); }
Get a campaign's stats
function getCampaignStats ( name ) { const campaignIterator = AdsApp . campaigns () . withCondition ( ` campaign . name = "${name}" ` ) . get (); if ( campaignIterator . hasNext ()) { const campaign = campaignIterator . next (); // You can also request reports for pre - defined date ranges . See // https : // developers . google . com / google - ads / scripts / docs / reference / adsapp / adsapp_campaign #getStatsFor_1, // DateRangeLiteral section for possible values . const stats = campaign . getStatsFor ( 'LAST_MONTH' ); console . log ( ` $ { campaign . getName ()}: $ { stats . getClicks ()} clicks , $ { stats . getImpressions ()} impressions ` ); return stats ; } else { throw new Error ( ` No campaign named "${name}" found ` ); } }
Pause a campaign
function pauseCampaign ( name ) { const campaignIterator = AdsApp . campaigns () . withCondition ( ` campaign . name = "${name}" ` ) . get (); if ( campaignIterator . hasNext ()) { const campaign = campaignIterator . next (); campaign . pause (); } else { throw new Error ( ` No campaign named "${name}" found ` ); } }
Get a campaign's device bid modifiers
function getCampaignBidModifiers ( name ) { const campaignIterator = AdsApp . campaigns () . withCondition ( ` campaign . name = "${name}" ` ) . get (); if ( campaignIterator . hasNext ()) { const campaign = campaignIterator . next (); console . log ( 'Campaign name: ' + campaign . getName ()); const platforms = {}; for ( const platform of campaign . targeting () . platforms ()) { console . log ( ` $ { platform . getName ()} bid modifier : $ { platform . getBidModifier ()} ` ); platforms [ platform . getName ()] = platform . getBidModifier (); } return platforms ; } else { throw new Error ( ` No campaign named "${name}" found ` ); } }

