【数坊人群计算 v1.0】单一逻辑实现自动人群计算

前言

从前数坊很慢,等待很久,一天只能取一批数,现在数坊新增了人群计算功能,每天取数取到手软,神说要自动化,因此就有了人群计算工具1.0

数坊人群计算逻辑拆解

运行人群计算会提交一个名为“predictAudienceSize”的请求
在这里插入图片描述
点进去就可以看到是使用POST的方式请求人群计算API(https://4a.jd.com/datamill/api/audienceManagement/predictAudienceSize),请求头需声明内容类型,设置用户代理,添加账号cookie,上传人群逻辑即可返回人群大小
在这里插入图片描述

模拟请求验证猜想

成功得到人群大小
在这里插入图片描述

定制人群逻辑表格

当前版本仅支持一个卡片逻辑的人群计算

举例数据,请勿当真

cardTitle 固定维度 品牌 类目 startDate endDate 频次 价格 人群大小
浏览行为 类目 - 手机通讯 > 手机 > 手机 2021/11/1 2021/11/30 - -
浏览行为 类目 - 手机通讯 > 手机 > 手机 2021/11/1 2021/11/30 10-500 -
购买行为 类目 - 手机通讯 > 手机 > 手机 2021/11/1 2021/11/30 - 1000-2000
购买行为 品牌+类目 京东 礼品> 礼品 > PLUS会员 2021/11/1 2021/11/30 - 1000-2000
购买行为 品牌 京东 - 2021/11/1 2021/11/30 - 1000-2000

实现自动人群计算

读取表格文件
cards = pd.read_excel(r'C:\Users\41809\Desktop\test1.xlsx').to_dict('records')
创建数坊规则匹配字典

每种行为分别有对应的code值,行为不多,手抄下就行了

JD_dict = {
   
    '浏览行为' : {
   
        'cardType' : "view",
        'title' : "浏览行为",
        'code' : "300658",
        'categoryPath' : "用户行为>核心行为>浏览行为",
        'key' : "view"
    },
        '购买行为' : {
   
            'cardType' : "order",
            'title' : "购买行为",
            'code' : "300662",
            'categoryPath' : "用户行为>核心行为>购买行为",
            'key' : "order"
        }
}
判断是否需要使用频次&价格段

因为有价格和不限价格上传信息结构不同,需要判断是否有使用频次或价格段

if card['价格'] == '-':
            price = {
   "operator": "nolimit"}
        else:
            price = {
   
                "operator": "between",
                "value": re.sub('-', ',', card['价格'])
            }
 if card['频次'] == '-':
            frequency = {
   "operator": "nolimit"}
        else:
            frequency = {
   
                "operator": "between",
                "value": re.sub('-', ',', card['频次'])
            }
整个人群计算需要上传的完整信息

品牌/品牌+类目/类目的上传结构同样略有差异,后续仍需要根据card[“固定维度”]判断进行选择

body = {
   
            "audienceDefinition": {
   
                "type": "intersection",
                "children": [
                    {
   
                        "cardType": self.JD_dict[card["cardTitle"]]['cardType'],
                        "categoryPath": self.JD_dict[card["cardTitle"]]['categoryPath'],
                        "cardTitle": card["cardTitle"],
                        "cardCode": self.JD_dict[card["cardTitle"]]['code'],
                        "type": "behaviorV2",
                        "key": self.JD_dict[card["cardTitle"]]['key'],
                        "screen": "all",
                        "dimension"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值