In digital advertising, maximizing return on investment (ROI) requires optimizing ad spend across different locations. Some regions consistently generate high conversions, while others underperform. Advertisers need a way to dynamically adjust their bids to ensure that high-performing locations receive more budget while underperforming locations do not consume unnecessary resources.
The Challenge of Efficient Budget Allocation
One of our portfolio companies, DreamClass, wanted to refine its Google Ads strategy by automating bid adjustments for different locations. Instead of manually analyzing performance data and adjusting bids, they needed an efficient system that would streamline the process while maintaining accuracy.
Manually optimizing bids across multiple campaigns and locations is time-consuming and prone to inconsistencies. Our goal was to create an automated solution that would:
- Evaluate key metrics such as impressions, click-through rate (CTR), and conversion rate (CR) for each location.
- Adjust bids separately for each campaign based on location performance.
- Automatically remove bid adjustments for locations with insufficient impressions.
- Log all bid adjustments in Google Sheets for tracking and analysis.
Difficulties Faced During Development
During the development of this script, we encountered several challenges that required iterative refinements:
- Handling Bid Removals: Initially, locations with insufficient impressions were still retaining their bid adjustments. We fixed this by ensuring that locations below the impression threshold (100 impressions) were reset to a neutral bid of 1.0.
- Campaign-Specific Adjustments: In earlier versions, the script aggregated CTR and CR across campaigns, leading to inaccurate adjustments. We corrected this by ensuring that each location’s performance was evaluated separately per campaign.
- Exact Location Name Logging: Initially, location names were simplified (e.g., “Florida” instead of “Florida, United States”), causing discrepancies in tracking. We adjusted the script to store the exact names as they appear in Google Ads.
- Automated Column Generation: The script originally logged bid adjustments into a single column, making it difficult to differentiate campaign-specific changes. We implemented an automated system to create separate columns for each campaign in Google Sheets.
These refinements led to a final version that ensures accurate, campaign-specific bid adjustments while maintaining transparency and scalability.
How the Script Works: A Step-by-Step Breakdown
1. Analyzing Performance Metrics
The script evaluates the performance of each location based on:
- Impressions: Locations with fewer than 100 impressions in the last 30 days are excluded from bid adjustments.
Click-Through Rate (CTR): Measured as (clicks / impressions) * 100. |
Conversion Rate (CR): Measured as (conversions / clicks) * 100. |
2. How the Weighted Score is Calculated
To ensure bid adjustments prioritize conversions over clicks, the script calculates a weighted score using the following formula:
Weighted Score = (CTR Score × 0.3) + (CR Score × 0.7)
This means that 30% of the final score is influenced by CTR, while 70% is influenced by CR, ensuring conversions have a greater impact on bid adjustments.
3. How Bid Adjustments Are Applied
Based on the weighted score, locations fall into one of the following categories:
- Excellent (4.5 and above) → Bid increased by +20% (1.20)
- Good (3.5 – 4.49) → Bid increased by +10% (1.10)
- Average (2.5 – 3.49) → No adjustment (1.0)
- Poor (Below 2.5) → Bid reduced by -10% (0.90)
If a location falls below the impression threshold (100 impressions), the script removes any existing bid adjustment and sets it to 1.0. This ensures that only relevant locations receive optimizations.
4. Tracking and Logging Adjustments in Google Sheets
To maintain transparency, the script logs all bid adjustments in Google Sheets:
- Each location is recorded with its exact name as it appears in Google Ads.
- Separate columns are created for each campaign, allowing independent tracking of bid adjustments.
- Default adjustments (1.0) are logged for locations with insufficient data.
5. Automation and Scalability
The script runs once per month, automatically recalculating bid adjustments based on the latest 30-day performance data. This automation ensures bid adjustments are consistently updated without manual intervention.
The Benefits of Automation
By implementing this script, we achieved several key benefits:
- Time Efficiency: Eliminates hours of manual bid analysis and updates.
- Accuracy and Consistency: Ensures bid adjustments follow objective, predefined criteria, reducing human error.
- Improved Campaign Performance: Focuses budget on high-performing locations to maximize ROI.
- Transparency and Tracking: Logs all adjustments in Google Sheets for easy review and reporting.
- Scalability: Handles large campaigns with multiple locations and campaigns efficiently.
Final Thoughts
Optimizing bid adjustments in Google Ads is critical for campaign success, but doing it manually is inefficient and error-prone. Our automated script provides a scalable and transparent solution, allowing advertisers to dynamically adjust bids based on real-time performance data. By prioritizing high-performing locations and removing unnecessary bid adjustments, this solution ensures an optimized ad spend distribution, ultimately improving campaign results.
This approach highlights the power of automation in digital marketing, allowing startups to make data-driven decisions without the burden of manual adjustments. For early-stage companies looking to optimize ad spend and scale efficiently, leveraging automation can provide a competitive edge. Whether managing a growing campaign or a complex multi-location strategy, automating bid adjustments ensures resources are allocated wisely, maximizing impact and return on investment.