The Hidden API Problem in Google’s LSA-to-PMax Migration
Google's LSA-to-PMax migration changes more than where agencies manage campaigns.
Google's migration of Local Services Ads into Google Ads is primarily seen as an advertiser-facing change. However, the more significant change lies beneath the interface, specifically in how Local Services campaigns are represented in the Google Ads API. This shift impacts various components of agencies' workflows, including budgets, reporting, bidding options, and campaign management.
For agencies using Google Ads API for reporting, budget automation, CRM synchronization, Looker Studio pipelines, data warehouses, or custom scripts, the migrated campaigns may not be recognized correctly. If an integration only searches for campaigns with advertising_channel_type = LOCAL_SERVICES, it could miss Local Services Performance Max campaigns, which have advertising_channel_type = PERFORMANCE_MAX and a separate pmax_campaign_settings.local_services_enabled field.
This discrepancy can lead to broken automation, as campaigns may no longer be classified as Local Services Ads (LSA), even though they still operate under the pay-per-lead model and serve on Google Search and Maps.
Reporting systems are particularly vulnerable to these changes. Daily reporting pipelines that retrieve campaign IDs, spend, leads, budgets, and status may misclassify migrated campaigns as Performance Max (PMax) instead of Local Services, leading to incorrect data placement in data warehouses. This misclassification can create reporting problems, such as sudden drops in LSA spend or leads, while the campaign is still active.
Budget automation also requires careful attention. Automation rules that rely on LOCAL_SERVICES as an identifying condition might fail to detect migrated campaigns. Additionally, Google's change in how LSA budget levels are converted to daily budgets necessitates a budget automation audit, ensuring that rules accounting for weekly LSA budgets are updated to accommodate daily budgets.
Data warehouse joins based on campaign IDs may also encounter issues post-migration, as historical and post-migration datasets may not join cleanly due to differences in campaign representation. Agencies should create a migration mapping table to bridge historical and new campaign datasets, ensuring accurate year-over-year reports and preventing misinterpretation of migrated campaigns as new entries.
Lastly, Google Ads API v24.2 introduced new Local Services-related fields in Performance Max, such as AssetGroup.google_local_services_info and AssetGroupSignal.local_services_id, which further complicates the migration process and requires agencies to adapt their integration logic accordingly.
Written by urgent.news from HackerNoon's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.