feat: columna ad_daily.link_clicks (Meta clics enlace reales)
Persistimos link_clicks en warehouse (con backfill desde __lc), sync escribe la columna y creatividades la leen sin romper si falta. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -76,23 +76,39 @@ export async function GET(req: NextRequest) {
|
||||
|
||||
const agency = isAgencyRole(userRole(user));
|
||||
let daily: AdDailyRow[] = [];
|
||||
const selectWithLc =
|
||||
'date,platform,campaign_name,ad_id,ad_name,impressions,clicks,link_clicks,spend,platform_leads';
|
||||
const selectNoLc =
|
||||
'date,platform,campaign_name,ad_id,ad_name,impressions,clicks,spend,platform_leads';
|
||||
if (agency && ctx.viaView) {
|
||||
const tid = encodeURIComponent(ctx.tenantId);
|
||||
const d = await restGet<AdDailyRow[]>(
|
||||
`/rest/v1/ad_daily?tenant_id=eq.${tid}&date=gte.${since}&date=lte.${until}&select=date,platform,campaign_name,ad_id,ad_name,impressions,clicks,spend,platform_leads&order=date.desc&limit=5000`
|
||||
let d = await restGet<AdDailyRow[]>(
|
||||
`/rest/v1/ad_daily?tenant_id=eq.${tid}&date=gte.${since}&date=lte.${until}&select=${selectWithLc}&order=date.desc&limit=5000`
|
||||
);
|
||||
if (!d.ok && /link_clicks/i.test(String(d.error || ''))) {
|
||||
d = await restGet<AdDailyRow[]>(
|
||||
`/rest/v1/ad_daily?tenant_id=eq.${tid}&date=gte.${since}&date=lte.${until}&select=${selectNoLc}&order=date.desc&limit=5000`
|
||||
);
|
||||
}
|
||||
daily = d.data || [];
|
||||
} else {
|
||||
const { data } = await supabase
|
||||
let q = await supabase
|
||||
.from('ad_daily')
|
||||
.select(
|
||||
'date,platform,campaign_name,ad_id,ad_name,impressions,clicks,spend,platform_leads'
|
||||
)
|
||||
.select(selectWithLc)
|
||||
.gte('date', since)
|
||||
.lte('date', until)
|
||||
.order('date', { ascending: false })
|
||||
.limit(5000);
|
||||
daily = (data as AdDailyRow[]) || [];
|
||||
if (q.error && /link_clicks/i.test(q.error.message || '')) {
|
||||
q = await supabase
|
||||
.from('ad_daily')
|
||||
.select(selectNoLc)
|
||||
.gte('date', since)
|
||||
.lte('date', until)
|
||||
.order('date', { ascending: false })
|
||||
.limit(5000);
|
||||
}
|
||||
daily = (q.data as AdDailyRow[]) || [];
|
||||
}
|
||||
|
||||
const warnings: string[] = [];
|
||||
|
||||
Reference in New Issue
Block a user