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); } } } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter