You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WhatsApp部署的聊天机器人外部链接点击追踪方案咨询(AWS优先)

基于AWS的链接点击追踪方案实现建议

核心方案:API Gateway + Lambda + DynamoDB(无服务器架构)

这是最贴合你需求的AWS原生方案,无需维护服务器,按需付费,适配聊天机器人的流量规模。

步骤1:创建DynamoDB日志表

  • 新建DynamoDB表,表名设为LinkClicks
  • 主键使用ClickID(字符串类型,用UUID生成唯一值)
  • 定义以下属性列:
    • UserID:字符串,存储用户标识(如alice)
    • TargetURL:字符串,记录最终跳转的目标地址
    • Timestamp:字符串/数字,记录点击时间(可用ISO格式或时间戳)
    • SourceIP:字符串(可选),记录用户点击时的IP地址
    • UserAgent:字符串(可选),记录用户的设备/浏览器信息

步骤2:编写Lambda处理函数

选择Python或Node.js编写函数,核心逻辑如下:

  1. 解析请求参数:从API Gateway的请求中提取user查询参数(用户标识)和路径参数page(目标页面标识,如page01)
  2. 拼接目标URL:根据page参数生成最终跳转地址,如https://www.other-domain.com/{page}
  3. 记录点击日志:向DynamoDB表插入一条包含用户信息、目标URL、时间戳的记录
  4. 返回重定向响应:返回HTTP 302状态码,在响应头Location中填入目标URL

示例Python代码片段:

import boto3
import uuid
from datetime import datetime

dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('LinkClicks')

def lambda_handler(event, context):
    # 解析参数
    user_id = event['queryStringParameters'].get('user')
    page = event['pathParameters'].get('page')
    target_url = f"https://www.other-domain.com/{page}"
    
    # 生成唯一点击ID和时间戳
    click_id = str(uuid.uuid4())
    timestamp = datetime.utcnow().isoformat()
    
    # 插入日志到DynamoDB
    table.put_item(
        Item={
            'ClickID': click_id,
            'UserID': user_id,
            'TargetURL': target_url,
            'Timestamp': timestamp,
            'SourceIP': event['requestContext']['identity']['sourceIp'],
            'UserAgent': event['requestContext']['identity']['userAgent']
        }
    )
    
    # 返回302重定向
    return {
        'statusCode': 302,
        'headers': {
            'Location': target_url
        }
    }

步骤3:配置API Gateway

  • 创建REST API,添加资源路径/shorter/{page},绑定GET方法
  • 将GET方法集成到上述Lambda函数,开启Lambda代理集成模式
  • 配置自定义域名(如shorter.url),将API Gateway映射到该域名,生成友好的短链地址

步骤4:生成用户专属链接

聊天机器人根据用户ID和目标页面,生成类似https://shorter.url/shorter/page01?user=alice的链接,发送给WhatsApp用户。用户点击后会触发Lambda记录日志,再自动跳转到目标页面。

高流量场景优化方案:CloudFront + Lambda@Edge + S3

如果预期点击量较大,可使用CDN边缘处理降低延迟:

  • 用CloudFront作为入口,绑定自定义域名
  • 创建Lambda@Edge函数(部署在CloudFront边缘节点),在请求到达时记录点击日志到S3存储桶
  • 直接从边缘节点返回302重定向响应,无需回源到AWS区域
  • 后续可通过Athena分析S3中的日志文件,统计用户点击数据

其他可行方案

  • 自定义短链服务:如果不想自建,可调研支持自定义追踪参数的短链工具,但需确保能获取到带用户标识的点击数据;不过基于AWS的自建方案更可控,更适配你的场景。

内容的提问来源于stack exchange,提问作者han-tyumi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 20:05:23