Conversion Cliente: Para Campañas Efectivas

  • 23 Sep, 2023
  • read

El contenido presentado en este artículo está destinado únicamente para fines académicos. Las opiniones expresadas se basan en mi comprensión e investigación personal. Es importante tener en cuenta que el campo de los grandes datos y los lenguajes de programación discutidos, como Python, R, Power BI, Tableau y SQL, son dinámicos y están en constante evolución. Este artículo tiene como objetivo fomentar el aprendizaje, la exploración y la discusión dentro del campo en lugar de proporcionar respuestas definitivas. Se recomienda la discreción del lector.

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from statsmodels.formula.api import ols

campaing = pd.read_csv(r'D:\helen\Documents\PythonScripts\datasets\marketing\campaing4.csv')

campaing.head()

OUTPUT

image


campaing.describe()

OUTPUT

image


Ahora, este código lee un archivo CSV que contiene datos de campañas de marketing, convierte ciertas columnas de fecha al formato de fecha y hora, agrega una nueva columna que representa el día de la semana en que se realizaron las suscripciones y proporciona una matriz de valores únicos para los días de la semana.
campaing = pd.read_csv(r'D:\helen\Documents\PythonScripts\datasets\marketing\campaing4.csv',
parse_dates = ['date_served', 'date_subscribed', 'date_canceled'])

campaing['daysubsc_week'] = campaing['date_subscribed'].dt.dayofweek

campaing.daysubsc_week.unique()

array([1, 4, 2, 0, 3, 6, 5])
Cuántos usuarios están viendo los activos de marketing cada día qué tan efectivos han sido nuestros esfuerzos de marketing durante el último mes.
daily_users = campaing.groupby(['date_served'])['user_id'].nunique()
print(daily_users.head())
date_served
2014-01-01    20
2014-01-21    22
2014-02-12    67
2014-03-12     7
2014-04-27     4
Name: user_id, dtype: int64
Ahora, cree un gráfico de líneas para visualizar las tendencias diarias de los usuarios. El gráfico incluye un título, etiquetas para el eje x y el eje y, y etiquetas de marca del eje x rotadas para mejorar la legibilidad..
#Para que sea más fácil para y a para los accionistas de su negocio note las tendencias de los suscriptores, se visualizará sus resultados usando un gráfico de líneas.
daily_users.plot()
plt.title('Daily users')
plt.ylabel('Number of users')
plt.xticks(rotation = 45)
plt.show()

OUTPUT

image


Cálculo de la tasa de conversión Cómo se realizó una campaña de marketing, qué tan efectivo fue un equipo de marketing para ganar nuevos clientes
total_marketed = campaing['user_id'].nunique()
Who_subscrib = campaing[campaing['converted']==True]['user_id'].nunique()
conversion_rate = Who_subscrib/total_marketed
La tasa de conversión es el porcentaje de usuarios que vieron nuestros activos de marketing y posteriormente se convirtieron en suscriptores.
print(round(conversion_rate*100, 2), "%")
Output
70.21 %

print(total_marketed)

OUTPUT
2447

print(Who_subscrib)

1718
Crear una nueva columna en el DataFrame de la campaña que agrupe las edades según los rangos de edad especificados, usando la función pd.cut()
campaing.Age.unique()

OUTPUT

array([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, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68],
dtype=int64)
Definir los rangos de edad y sus etiquetas correspondientes
age_dict = {"18-24": "18-24", "25-30": "25-30", "31-36": "31-36", "37-42": "37-42", "43-47": "43-47",
"48-52": "48-52", "53-57": "53-57", "58-62": "58-62", "63-68": "63-68"}
Crear la nueva variable ‘age_group’ columna usando pd.cut()
campaing['age_group'] = pd.cut(campaing['Age'], bins=[18, 24, 30, 36, 42, 47, 52, 57, 62, 68], labels=list(age_dict.keys()))
Veamos el resultado y su visualizacion
channel_age = campaing.groupby(['Camp_MarkDigChanel', 'age_group'])\
                                ['user_id'].count()

# Unstack channel_age and transform it into a DataFrame
channel_age_df = pd.DataFrame(channel_age.unstack(level = 1))

# Plot channel_age
channel_age_df.plot(kind = 'bar')
plt.title('Marketing channels by age group')
plt.xlabel('Age Group')
plt.ylabel('Users')
# Add a legend to the plot
plt.legend(loc = 'upper right',
           labels = channel_age_df.columns.values)
plt.show()

OUTPUT

image