Создайте расширение для мобильного приложения
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); }
Записывать сведения о расширениях мобильных приложений для кампании.
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`); }
Настройка расписания для мобильных приложений в кампании
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; } } }