function main() {
// Performance Metrics
var targetCPA = 30; // Your desired cost per acquisition
var minConversions = 10; // Minimum conversions for reliable data
// Timeframe: Analyze recent performance with flexibility
var dateRange = "LAST_30_DAYS";
// Campaign Selection
var campaignName = "Campaign Name";
// Get relevant keywords
var keywordIterator = AdsApp.campaigns()
.withCondition("Name = '" + campaignName + "'")
.get()
.keywords();
while (keywordIterator.hasNext()) {
var keyword = keywordIterator.next();
// Gather keyword performance data
var stats = keyword.getStatsFor(dateRange);
var conversions = stats.getConversions();
var cost = stats.getCost();
var currentCPA = cost / conversions;
// Apply Bid Adjustments Only If Data is Sufficient
if (conversions >= minConversions) {
if (currentCPA > targetCPA) {
// Decrease bid if CPA is higher than target
var newBid = keyword.getMaxCpc() * 0.9; // Example: Reduce by 10%
keyword.setMaxCpc(newBid);
} else if (currentCPA < targetCPA) {
// Increase bid if CPA is lower than target
var newBid = keyword.getMaxCpc() * 1.1; // Example: Increase by 10%
keyword.setMaxCpc(newBid);
}
}
}
}