电商促销活动效果评估与数据分析实战案例
一、前言
在电商运营中,促销活动是提升销量和用户活跃的重要手段。
然而,活动效果需量化分析,避免盲目投入。
通过数据分析,可以评估促销活动的效果、ROI,并优化未来策略。
本文将展示完整的促销活动数据分析流程。
二、数据准备
-
数据来源
-
用户行为日志(浏览、下单、支付)
-
订单数据(金额、时间、商品类别、促销类型)
-
用户属性表(性别、年龄、注册渠道)
-
导入数据
import pandas as pd logs = pd.read_csv('user_logs.csv') orders = pd.read_csv('orders.csv') users = pd.read_csv('user_info.csv')
-
初步探索
print(orders.head()) print(orders.info()) print(orders['promotion_type'].value_counts())
-
检查促销类型、订单数量、用户参与情况
-
了解数据完整性和异常值
三、促销活动效果指标
-
主要指标
-
参与用户数
-
订单数量
-
总销售额
-
平均订单金额
-
转化率
-
计算各促销效果
promo_summary = orders.groupby('promotion_type').agg({ 'user_id':'nunique', 'order_id':'count', 'amount':'sum' }).reset_index() promo_summary.rename(columns={'user_id':'unique_users','order_id':'order_count','amount':'total_revenue'}, inplace=True) promo_summary['avg_order_value'] = promo_summary['total_revenue'] / promo_summary['order_count'] print(promo_summary)
四、用户参与分析
-
新老用户参与情况
orders_users = orders.merge(users, on='user_id', how='left') orders_users['user_type'] = orders_users['first_order_date'].apply(lambda x: 'New' if x > '2025-01-01' else 'Existing') promo_user_type = orders_users.groupby(['promotion_type','user_type'])['user_id'].nunique().unstack() print(promo_user_type)
-
分析活动对新用户和老用户的吸引力
-
用户复购情况
repeat_users = orders_users.groupby('user_id')['order_id'].nunique().reset_index() repeat_users = repeat_users[repeat_users['order_id']>1] print(f"参与活动复购用户数: {repeat_users.shape[0]}")
五、转化率与ROI分析
-
转化率计算
# 假设曝光用户数据已存在 exposure = pd.read_csv('promotion_exposure.csv') promo_conversion = orders.groupby('promotion_type')['user_id'].nunique() / exposure.groupby('promotion_type')['user_id'].nunique() print(promo_conversion)
-
ROI计算
# 假设促销成本表已存在 promo_cost = pd.read_csv('promotion_cost.csv') promo_roi = promo_summary.merge(promo_cost, on='promotion_type') promo_roi['ROI'] = (promo_roi['total_revenue'] - promo_roi['cost']) / promo_roi['cost'] print(promo_roi[['promotion_type','ROI']])
-
评估各活动投入产出比,指导后续促销策略
六、可视化分析
import matplotlib.pyplot as plt import seaborn as sns # 各促销总销售额对比 sns.barplot(x='promotion_type', y='total_revenue', data=promo_summary, palette='Blues_d') plt.title('Total Revenue by Promotion Type') plt.show() # ROI对比 sns.barplot(x='promotion_type', y='ROI', data=promo_roi, palette='Greens_d') plt.title('ROI by Promotion Type') plt.show()
-
可视化展示效果差异,便于管理决策
更多推荐
所有评论(0)