0

curl UTM参数检测报告按渠道分组统计脚本:3个实战方案让营销数据分析效率翻倍

2026.06.16 | youres | 3次围观

为什么需要按渠道分组统计UTM参数

做营销投放的人都知道,UTM参数是追踪流量来源的生命线。但很多人在实际工作中遇到一个问题:拿到了一堆URL的UTM参数检测结果,却不知道哪个渠道效果好

如果你用curl批量检测了1000个营销链接的UTM参数保留情况,输出是一个长长的CSV文件。里面混杂着微信、微博、抖音、百度、谷歌等各个渠道的链接。不按渠道分组,这些数据就是一团乱麻

本文分享3个实战Shell脚本方案,让你把curl UTM参数检测结果按渠道自动分组统计,直接输出可供决策使用的报告。

方案1:awk按UTM_SOURCE列分组统计(最简单)

假设你已经用curl批量检测并导出了CSV报告,格式如下:

URL,UTM_SOURCE,UTM_MEDIUM,UTM_CAMPAIGN,参数是否保留
https://example.com?utm_source=wechat, wechat,social,spring_sale,保留
https://example.com?utm_source=baidu,baidu,cpc,brand,丢失

脚本核心思路

  1. 用curl批量检测UTM参数,输出CSV
  2. 用awk按UTM_SOURCE字段分组
  3. 统计每个渠道的参数保留率

完整脚本

#!/bin/bash
# utm_channel_stats.sh
CSV_FILE="utm_check_result.csv"
echo "渠道,总链接数,参数保留数,保留率" > report.txt
awk -F',' 'NR>1 {source[$2]++; if($5=="保留") retained[$2]++} END {for(s in source) {rc=retained[s]+0; rate=(rc/source[s])*100; printf "%s,%d,%d,%.2f%%\n", s, source[s], rc, rate}}' "$CSV_FILE" >> report.txt
cat report.txt

这个方案的优势:脚本只有20行,awk处理大文件速度极快,依赖少。

方案2:Shell关联数组按渠道+媒介双维度分组(更精细)

方案1只按utm_source分组,但utm_medium同样重要。比如同样是微信渠道,朋友圈广告和公众号推文的参数保留情况可能完全不同。

脚本核心思路

  1. 用关联数组以"渠道+媒介"作为复合键
  2. 分别统计每个组合的总数和保留数
  3. 输出时按保留率排序

完整脚本

#!/bin/bash
declare -A total retained
while IFS=',' read -r url source medium campaign retained_status; do
    ((total["$source|$medium"]++))
    [[ "$retained_status" == "保留" ]] && ((retained["$source|$medium"]++))
done < <(tail -n +2 utm_check_result.csv)
for key in "${!total[@]}"; do
    s="${key%%|*}"; m="${key#*|}"
    t="${total[$key]}"; r="${retained[$key]:-0}"
    rate=$(awk "BEGIN {printf \"%.2f\", ($r/$t)*100}")
    printf "%-10s %-10s %6d %6d %7.2f%%\n" "$s" "$m" "$t" "$r" "$rate"
done | sort -k5 -t' ' -n

这个方案的优势:双维度分析能精准定位问题。

方案3:生成HTML可视化报告(可直接发给领导看)

前两个方案输出的是纯文本。如果要向领导汇报,最好的方式是生成HTML报告,带表格和颜色标注。

脚本核心思路

  1. 用Shell脚本生成HTML文件
  2. 参数保留率>90%显示绿色,<80%显示红色
  3. 嵌入简单CSS,让报告看起来专业

完整脚本

#!/bin/bash
echo "

UTM参数检测渠道分组报告

" > report.html awk -F',' 'NR>1 {t[$2]++; if($5=="保留") r[$2]++} END {for(s in t){rc=r[s]+0;rate=(rc/t[s])*100;c=(rate>=90)?"good":"bad";printf "\n",s,t[s],rc,c,rate}}' utm_check_result.csv >> report.html echo "
渠道总数保留数保留率
%s%d%d%.2f%%
" >> report.html echo "HTML报告已生成:report.html"

这个方案的优势:零额外依赖,纯Shell+awk生成,任何服务器都能运行。

3个方案的选型建议

场景推荐方案
快速自查方案1
精细分析方案2
汇报展示方案3

内链推荐(延伸阅读)

总结

UTM参数检测只是第一步,按渠道分组统计才是让数据产生价值的关键。本文分享的3个Shell脚本方案,分别适用于快速自查、精细分析和汇报展示三种场景。

版权声明

本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论