Добавить группу объявлений
function addAdGroup(campaignName, adGroupName, defaultCpc = 1.2) { const campaignIterator = AdsApp.campaigns() .withCondition(`campaign.name = "${campaignName}"`) .get(); if (!campaignIterator.hasNext()) { throw new Error(`No campaign with name "${campaignName} found`); } const campaign = campaignIterator.next(); return campaign.newAdGroupBuilder() .withName(adGroupName) .withCpc(defaultCpc) .build(); }
Получить все группы объявлений
function getAllAdGroups() { // AdsApp.adGroups() will return all ad groups that are not removed by // default. const adGroupIterator = AdsApp.adGroups().get(); console.log('Total adGroups found : ' + adGroupIterator.totalNumEntities()); return adGroupIterator; }
Получить группу объявлений по названию
function getAdGroupByName(name) { const adGroupIterator = AdsApp.adGroups() .withCondition(`ad_group.name = "${name}"`) .get(); if (!adGroupIterator.hasNext()) { throw new Error(`No ad group with name "${name}" found`); } const adGroup = adGroupIterator.next(); if (adGroupIterator.totalNumEntities() > 1) { console.warn(`Multiple ad groups named "${name}" found. Using the one from campaign "${adGroup.getCampaign().getName()}".`); } return adGroup; }
Обновить ставку CPC по умолчанию для группы объявлений.
function setAdGroupCpc(name, cpc) { const adGroupIterator = AdsApp.adGroups() .withCondition(`ad_group.name = "${name}"`) .get(); if (!adGroupIterator.hasNext()) { throw new Error(`No ad group with name "${name}" found`); } const adGroup = adGroupIterator.next(); if (adGroupIterator.totalNumEntities() > 1) { console.warn(`Multiple ad groups named "${name}" found. Using the one from campaign "${adGroup.getCampaign().getName()}".`); } adGroup.bidding().setCpc(cpc); }
Получить статистику по группе объявлений
function getAdGroupStats(name, dateRange = 'LAST_MONTH') { const adGroupIterator = AdsApp.adGroups() .withCondition(`ad_group.name = "${name}"`) .get(); if (!adGroupIterator.hasNext()) { throw new Error(`No ad group with name "${name}" found`); } const adGroup = adGroupIterator.next(); if (adGroupIterator.totalNumEntities() > 1) { console.warn(`Multiple ad groups named "${name}" found. Using the one from campaign "${adGroup.getCampaign().getName()}".`); } // You can get stats for a custom date range, or, as in this example, a predefined date range. // A list of valid predefined date ranges is available at // https://developers.google.com/google-ads/api/docs/query/date-ranges#predefined_date_range const stats = adGroup.getStatsFor(dateRange); console.log(`${adGroup.getName()}, ${stats.getClicks()}, ${stats.getImpressions()}`); return stats; }
Приостановить группу объявлений
function pauseAdGroup(name) { const adGroupIterator = AdsApp.adGroups() .withCondition(`ad_group.name = "${name}"`) .get(); if (!adGroupIterator.hasNext()) { throw new Error(`No ad group with name "${name}" found`); } const adGroup = adGroupIterator.next(); if (adGroupIterator.totalNumEntities() > 1) { console.warn(`Multiple ad groups named "${name}" found. Using the one from campaign "${adGroup.getCampaign().getName()}".`); } adGroup.pause(); }
Получите модификаторы ставок для устройств в группе объявлений.
function getAdGroupBidModifiers(name) { const adGroupIterator = AdsApp.adGroups() .withCondition(`ad_group.name = "${name}"`) .get(); if (!adGroupIterator.hasNext()) { throw new Error(`No ad group with name "${name}" found`); } const adGroup = adGroupIterator.next(); if (adGroupIterator.totalNumEntities() > 1) { console.warn(`Multiple ad groups named "${name}" found. Using the one from campaign "${adGroup.getCampaign().getName()}".`); } return { HighEndMobile: adGroup.devices().getMobileBidModifier(), Tablet: adGroup.devices().getTabletBidModifier(), Desktop: adGroup.devices().getDesktopBidModifier(), }; }