Performance-Driven Bidding:
Wed Feb 21 2024 17:03:41 GMT+0000 (Coordinated Universal Time)
Saved by
@tchives
#javascript
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);
}
}
}
}
content_copyCOPY
Use code with caution.
Comments