From 184b9ca4a5156f1bb5e22393039680ef997543f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Manuel=20G=C3=B3mez?= Date: Sat, 13 Jun 2026 23:25:45 +0200 Subject: [PATCH] Fix click-to-call conversion counting for Vodafone/Lowi campaigns Meta API uses click_to_call_call_confirm (not call_confirm) for llamadas campaigns. Vodafone had 32 and Lowi had 3 confirmed calls not being counted. Co-Authored-By: Claude Sonnet 4.6 --- meta_ads_client.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meta_ads_client.py b/meta_ads_client.py index e0243cb..7391b38 100644 --- a/meta_ads_client.py +++ b/meta_ads_client.py @@ -24,12 +24,17 @@ class MetaAdsClient: @staticmethod def _count_conversions(actions: list) -> float: - """Prioritize 'lead' to avoid double-counting with lead_grouped; include call_confirm.""" + """Prioritize 'lead' to avoid double-counting with lead_grouped; include click-to-call.""" by_type = {a["action_type"]: float(a["value"]) for a in actions} if "lead" in by_type: return by_type["lead"] if "onsite_conversion.lead_grouped" in by_type: return by_type["onsite_conversion.lead_grouped"] + # Click-to-call campaigns (Llamadas): click_to_call_call_confirm o call_confirm_grouped + if "click_to_call_call_confirm" in by_type: + return by_type["click_to_call_call_confirm"] + if "call_confirm_grouped" in by_type: + return by_type["call_confirm_grouped"] return by_type.get("call_confirm", by_type.get("contact", 0.0)) def _parse_insights_row(self, row: dict) -> dict: