-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdemo_publicidad.py
More file actions
55 lines (47 loc) · 2.05 KB
/
Copy pathdemo_publicidad.py
File metadata and controls
55 lines (47 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import pandas as pd
import numpy as np
import random
from datetime import datetime, timedelta
class GeneradorDatosDemo:
def __init__(self):
self.campañas = [
'Facebook_Verano_2025', 'Google_Search_Navidad',
'Instagram_Reels_Promo', 'Google_Display_Remarketing',
'Facebook_Lead_Gen', 'TikTok_Video_Campaña'
]
def generar_datos_publicidad(self):
"""Genera datos de publicidad realistas para el demo"""
datos = []
for campaña in self.campañas:
gasto = random.randint(2000, 15000)
impresiones = gasto * random.randint(15, 40)
clics = int(impresiones * random.uniform(0.01, 0.05))
conversiones = int(clics * random.uniform(0.02, 0.08))
datos.append({
'campaña': campaña,
'gasto': gasto,
'impresiones': impresiones,
'clics': clics,
'conversiones': conversiones,
'fecha_inicio': (datetime.now() - timedelta(days=random.randint(1, 30))).strftime('%Y-%m-%d')
})
return pd.DataFrame(datos)
def generar_datos_ventas(self, df_ads):
"""Genera datos de ventas correlacionados con publicidad"""
datos_ventas = []
for _, row in df_ads.iterrows():
if 'Facebook' in row['campaña']:
multiplicador = random.uniform(2.5, 4.0)
elif 'Google' in row['campaña']:
multiplicador = random.uniform(1.8, 3.0)
else:
multiplicador = random.uniform(1.5, 2.5)
monto_ventas = row['gasto'] * multiplicador
clientes = int(row['conversiones'] * random.uniform(0.8, 1.2))
datos_ventas.append({
'campaña': row['campaña'],
'monto_ventas': monto_ventas,
'clientes_nuevos': clientes,
'ticket_promedio': monto_ventas / max(1, clientes)
})
return pd.DataFrame(datos_ventas)