Page Summary
-
Learn how to create a mobile app extension using the
AdsApp.extensions().newMobileAppBuilder()method, specifying details like app ID, store, link text, and final URL. -
Discover how to add the created mobile app extension to a campaign, ad group, or account using the
addMobileApp()method. -
See how to retrieve and log details for mobile app extensions associated with a campaign, including app ID, link text, final URL, clicks, and impressions.
-
Understand how to set a custom schedule for a specific mobile app extension within a campaign using the
setSchedules()method.
Create a mobile app extension
function createMobileApp () { // For full details on creating a new mobile app extension , see : // https : // developers . google . com / google - ads / scripts / docs / reference / adsapp / adsapp_mobileappbuilder const newMobileApp = AdsApp . extensions () . newMobileAppBuilder () // See https : // support . google . com / google - ads / answer / 2402582 for details // on how to obtain applications specific store id . withAppId ( 'INSERT_STORE_SPECIFIC_APP_ID_HERE' ) // required // For iOS apps , use 'iOS' here . withStore ( 'Android' ) // required // Replace the values below with your link text , final url , and start date . withLinkText ( 'Download App Here' ) // required . withFinalUrl ( 'http://www.example.com/androidApp' ) // required . withStartDate ({ day : 29 , month : 2 , year : 2024 }) // optional . build () . getResult (); // Add mobile app to a campaign const campaignIterator = AdsApp . campaigns () . withCondition ( 'campaign.name = "INSERT_CAMPAIGN_NAME_HERE"' ) . get (); if ( campaignIterator . hasNext ()) { const campaign = campaignIterator . next (); campaign . addMobileApp ( newMobileApp ); } // Add mobile app to an ad group const adGroupIterator = AdsApp . adGroups () . withCondition ( 'campaign.name = "INSERT_CAMPAIGN_NAME_HERE"' ) . withCondition ( 'ad_group.name = "INSERT_AD_GROUP_NAME_HERE"' ) . get (); if ( adGroupIterator . hasNext ()) { const adGroup = adGroupIterator . next (); adGroup . addMobileApp ( newMobileApp ); } // Add mobile app to an account const account = AdsApp . currentAccount (); account . addMobileApp ( newMobileApp ); }
Log mobile app extensions details for a campaign
function logMobileAppDetails () { // Get a campaign . const campaignIterator = AdsApp . campaigns () . withCondition ( 'campaign.name = "INSERT_CAMPAIGN_NAME_HERE"' ) . get (); if ( ! campaignIterator . hasNext ()) { throw new Error ( 'Campaign not found.' ); } const campaign = campaignIterator . next (); // Retrieve the campaign 's mobile apps. Retrieving an ad group' s and // account 's mobile apps is similar. const mobileAppIterator = campaign . extensions () . mobileApps () . get (); for ( const mobileApp of mobileAppIterator ) { // You can also request reports for pre - defined date ranges . See // https : // developers . google . com / adwords / api / docs / guides / awql , // DateRangeLiteral section for possible values . const stats = mobileApp . getStatsFor ( 'LAST_MONTH' ); console . log ( ` Mobile app id : $ { mobileApp . getAppId () } ` ); console . log ( ` link text : $ { mobileApp . getLinkText () } ` ); console . log ( ` final URL : $ { mobileApp . urls () . getFinalUrl () } ` ); console . log ( ` clicks : $ { stats . getClicks () } ` ); console . log ( ` impressions : $ { stats . getImpressions () } ` ); console . log ( '=======' ); } console . log ( ` $ { mobileAppIterator . totalNumEntities ()} mobile apps in the campaign ` ); }
Set schedule for mobile apps in a campaign
function setMobileAppSchedule () { // Get a campaign . const campaignIterator = AdsApp . campaigns () . withCondition ( 'campaign.name = "INSERT_CAMPAIGN_NAME_HERE"' ) . get (); if ( ! campaignIterator . hasNext ()) { throw new Error ( 'Campaign not found.' ); } const campaign = campaignIterator . next (); // Retrieve the campaign 's mobile apps. Retrieving an ad group' s and // account 's mobile apps is similar. const mobileAppIterator = campaign . extensions () . mobileApps () . get (); for ( const mobileApp of mobileAppIterator ) { if ( mobileApp . getAppId () === 'INSERT_STORE_SPECIFIC_APP_ID_HERE' ) { // Set mobile app schedule to run only on Mondays and Tuesdays , 9 AM to // 6 PM . const monday = { dayOfWeek : 'MONDAY' , startHour : 9 , startMinute : 0 , endHour : 18 , endMinute : 0 }; const tuesday = { dayOfWeek : 'TUESDAY' , startHour : 9 , startMinute : 0 , endHour : 18 , endMinute : 0 }; mobileApp . setSchedules ([ monday , tuesday ]); break ; } } }

