Get bidding strategies
function getBiddingStrategies() {
const bidStrategyIterator = AdsApp.biddingStrategies().get();
return bidStrategyIterator;
}
Get bidding strategies by name
function getBiddingStrategyIteratorByName(biddingStrategyName) {
const biddingStrategiesIterator = AdsApp.biddingStrategies()
.withCondition(`bidding_strategy.name = '${biddingStrategyName}'`)
.get();
return biddingStrategiesIterator;
}
Set campaign bidding strategy
function setVariousBiddingStrategies() {
// This example snippet assumes the user has a campaign named "Online Sales".
const campaignName = 'Online Sales';
const campaignIterator =
AdsApp.campaigns()
.withCondition(`campaign.name = '${campaignName}'`)
.get();
if (!campaignIterator.hasNext()) {
throw new Error(`No Campaign found with name "${campaignName}"`);
}
if (campaignIterator.totalNumEntities() > 1) {
console.warn(
`Found ${campaignIterator.totalNumEntities()} Campaigns with name "${
campaignName}", using just one of them`);
}
const campaign = campaignIterator.next();
// Set the campaign's bidding strategy to Manual CPC.
campaign.bidding().setStrategy('MANUAL_CPC');
// By default, the Manual CPC strategy enables Enhanced CPC bidding. The user
// can disable ECPC when setting the strategy by providing an extra argument.
campaign.bidding().setStrategy('MANUAL_CPC', {enhancedCpcEnabled: false});
// Some standard bidding strategies, such as Target Return on Ad Spend,
// require additional arguments when setting the strategy. Setting the
// strategy to Target Return on Ad Spend without providing the required
// additional arguments will fail.
campaign.bidding().setStrategy('TARGET_ROAS', {targetRoas: 1.3});
// Extra arguments can also be specified through the BiddingStrategyArgsBuilder.
const args =
campaign.bidding.argsBuilder().withTargetRoas(1.3).withCpcBidCeiling(2.5);
campaign.bidding().setStrategy('TARGET_ROAS', args);
// If the user has defined a flexible bidding strategy for the campaign, then
// this is also valid for `setStrategy`. For this example, assume the user
// has a flexible bidding strategy named "My Shared Bidding Strategy".
const strategyName = 'My Shared Bidding Strategy';
const strategy =
AdsApp.biddingStrategies()
.withCondition(`bidding_strategy.name = '${strategyName}'`)
.get()
.next();
campaign.bidding().setStrategy(strategy);
}
Set an ad group's default CPC bid
function setAdGroupDefaultCpcBid(campaignName, adGroupName){
const adGroup = AdsApp.adGroups()
.withCondition(`campaign.name = '${campaignName}'`)
.withCondition(`ad_group.name = '${adGroupName}'`)
.get()
.next();
// This bid will only be used for auction if a corresponding cpc
// bidding strategy is set to the ad group. E.g.
//
// adGroup.bidding().setStrategy('MANUAL_CPC');
adGroup.bidding().setCpc(3.0);
}
Set a keyword's CPC bid
function setKeywordCpcBid(campaignName, adGroupName, keywordText, keywordMaxCpcBid) {
const keyword = AdsApp.keywords()
.withCondition(`campaign.name = '${campaignName}'`)
.withCondition(`ad_group.name = '${adGroupName}'`)
.withCondition(`ad_group_criterion.keyword.text = '${keywordText}'`)
.get()
.next();
// This bid will only be used for auction if a corresponding cpc
// bidding strategy is set to the parent ad group. E.g.
//
// adGroup.bidding().setStrategy('MANUAL_CPC');
keyword.bidding().setCpc(keywordMaxCpcBid);
}