Создать цену
function createPrice() { // For full details on creating a new price item, see: // https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_priceitembuilder const priceItem1 = AdsApp.extensions().newPriceItemBuilder() // Replace the values below with your preferred header, description, // amount, currency code, unit type, final url, and mobile final url. .withHeader('header1') // required .withDescription('description1') // required .withAmount(1000000) // required .withCurrencyCode('USD') // required // Unit type must be one of: 'PER_HOUR', 'PER_DAY', 'PER_WEEK', 'PER_MONTH', 'PER_YEAR', // or 'PER_NIGHT' .withUnitType('PER_DAY') // required .withFinalUrl('https://www.google.com') .withMobileFinalUrl('https://www.google.com') // required .build() .getResult(); const priceItem2 = AdsApp.extensions().newPriceItemBuilder() // Replace the values below with your preferred header, description, // amount, currency code, unit type, final url, and mobile final url. .withHeader('header2') // required .withDescription('description2') // required .withAmount(2000000) // required .withCurrencyCode('USD') // required // Unit type must be one of: 'PER_HOUR', 'PER_DAY', 'PER_WEEK', 'PER_MONTH', 'PER_YEAR', // or 'PER_NIGHT' .withUnitType('PER_HOUR') // required .withFinalUrl('https://www.google.com') // required .withMobileFinalUrl('https://www.google.com') // required .build() .getResult(); const priceItem3 = AdsApp.extensions().newPriceItemBuilder() // Replace the values below with your preferred header, description, // amount, currency code, unit type, final url, and mobile final url. .withHeader('header3') // required .withDescription('description3') // required .withAmount(3000000) // required .withCurrencyCode('USD') // required // Unit type must be one of: 'PER_HOUR', 'PER_DAY', 'PER_WEEK', 'PER_MONTH', 'PER_YEAR', // or 'PER_NIGHT' .withUnitType('PER_WEEK') // required .withFinalUrl('https://www.google.com') // required .withMobileFinalUrl('https://www.google.com') // required .build() .getResult(); // For full details on creating a new price extension, see: // https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_pricebuilder const newPrice = AdsApp.extensions().newPriceBuilder() // Replace the values below with your preferred price type, language // price qualifier, and tracking template .withPriceType('PRODUCT_CATEGORIES') // required .withLanguage('EN') // required // Price qualifier must be one of: 'FROM', 'UP_TO', 'AVERAGE' .withPriceQualifier('UP_TO') // optional .withTrackingTemplate('http://www.example.com/track') // optional .addPriceItem(priceItem1) .addPriceItem(priceItem2) .addPriceItem(priceItem3) .build() .getResult(); // Add price to a campaign const campaignIterator = AdsApp.campaigns() .withCondition('campaign.name = "INSERT_CAMPAIGN_NAME_HERE"') .get(); if (campaignIterator.hasNext()) { const campaign = campaignIterator.next(); campaign.addPrice(newPrice); } // Add price 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.addPrice(newPrice); } // Add price to an account const account = AdsApp.currentAccount(); account.addPrice(newPrice); }
Записывать сведения о ценах для кампании
function logPriceDetails() { // 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 prices. Retrieving an ad group's and // account's pricess is similar. const priceIterator = campaign.extensions().prices().get(); for (const price of priceIterator) { // 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 = price.getStatsFor('LAST_MONTH'); console.log(`Price extension price qualifier : ${ price.getPriceQualifier() }`); console.log(`Price extension price type : ${ price.getPriceType() }`); console.log(`mobile preferred : ${ price.isMobilePreferred() }`); console.log(`clicks : ${ stats.getClicks() }`); console.log(`impressions : ${ stats.getImpressions() }`); console.log('======='); } console.log(`${priceIterator.totalNumEntities()} prices in the campaign`); }
Установить график цен в кампании
function setPriceSchedule() { // 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 prices. Retrieving an ad group's and // account's saitelinks is similar. const priceIterator = campaign.extensions().prices().get(); for (const price of priceIterator) { if (price.getPriceType() == 'BRANDS') { // Set price extension schedule to run only on Mondays and Tuesdays, // 9 AM to 6 PM. You can follow a similar approach to set schedules for // other ad extension types. const monday = { dayOfWeek: 'MONDAY', startHour: 9, startMinute: 0, endHour: 18, endMinute: 0 }; const tuesday = { dayOfWeek: 'TUESDAY', startHour: 9, startMinute: 0, endHour: 18, endMinute: 0 }; price.setSchedules([monday, tuesday]); return; } } }