fix: Ads Meta conv/CPL = Clientes potenciales (sin sumar acciones solapadas)
Las creatividades inflaban ~3× al sumar lead + lead_grouped + registration. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -123,12 +123,20 @@ function aggregate(rows: AdDailyRow[]): PlatformKpis {
|
||||
const impressions = active.reduce((a, r) => a + Number(r.impressions || 0), 0);
|
||||
const clicks = active.reduce((a, r) => a + Number(r.clicks || 0), 0);
|
||||
const conversions = active.reduce((a, r) => a + convOf(r), 0);
|
||||
// Round once after sum (Ads Manager style; Google stores fractional daily).
|
||||
const conversionsRounded = Math.round(conversions * 100) / 100;
|
||||
const ads = new Set(
|
||||
active
|
||||
.map((r) => String(r.ad_id || campaignName(r) || '').trim())
|
||||
.filter((n) => n && n !== 'Sin nombre')
|
||||
).size;
|
||||
return rates({ spend, impressions, clicks, conversions, ads });
|
||||
return rates({
|
||||
spend,
|
||||
impressions,
|
||||
clicks,
|
||||
conversions: Math.round(conversionsRounded),
|
||||
ads,
|
||||
});
|
||||
}
|
||||
|
||||
function byCampaign(rows: AdDailyRow[]): CampaignRow[] {
|
||||
@@ -161,6 +169,7 @@ function byCampaign(rows: AdDailyRow[]): CampaignRow[] {
|
||||
return [...map.values()]
|
||||
.map((c) => ({
|
||||
...c,
|
||||
conversions: Math.round(c.conversions * 100) / 100,
|
||||
cpl: c.conversions > 0 ? c.spend / c.conversions : null,
|
||||
}))
|
||||
.sort((a, b) => b.spend - a.spend);
|
||||
|
||||
Reference in New Issue
Block a user