业务向——基于多多进宝平台的CPS
- 导读
- 小试牛刀
- 商品活动推广
- 商品详情获取
- 频道推广
- 订单获取及和用户绑定
- 小结
导读
多多进宝是拼多多的开放平台,为广大商家和推广者提供了一个机会,通过推广拼多多的商品来实现收益。多多进宝的CPS(按效果付费)模式让推广者可以根据自己的努力和效果来获取相应的佣金,成为了许多人赚取额外收入的途径。在本文中,我们也将从0到1,深入了解及实践如何玩转拼多多CPS,为自己的副业拓宽一下路子。
小试牛刀
在开始之前,我们可能去管网注册一下账号,链接如下,在注册后,在“我要推广”下选择想要推广的商品或者榜单,如图1。以“单品推广”为例子,点击进入某个商品的详情后,点击我要推广,填写对应的推广位,即可生成推广链接,如图2。接着,当用户通过你的链接点击下单,即可获得分佣。
- 多多进宝
- 拼多多开放平台文档
- 拼多多开放平台账号注册文档
- 除了手动创建推广位,PDD也提供了接口的方式创建推广位。
推广位:在相应媒体登记下创建推广位,每个推广位是唯一的“pid”,是推广识别、跟踪和结算依据
根据推广位,获取商品的多多客推广链接,即可引导消费者购买。该属性在后续接口调用中,经常需要携带的参数
在上面的例子中,我们介绍了手动操作生成推广链接的方式,接着我们将围绕如下几方面,展开描述通过接口的方式,如何玩转多多进宝。
- 商品活动推广
- 商品调整获取
- 拼多多充值
- 拼多多订单获取及和用户绑定
在开始之前,我们还需要下载服务端SDK**,**方面我们开发调用。
商品活动推广
pdd.ddk.goods.recommend.get:该接口可以获取PDD各个活动的商品列表,通过传入activity_tags参数,可以获取不同活动页。
activity_tags | INTEGER[] | 非必填 | 活动商品标记数组,例:[4,7],4-秒杀,7-百亿补贴,10851-千万补贴,11879-千万神券,10913-招商礼金商品,31-品牌黑标,10564-精选爆品-官方直推爆款,10584-精选爆品-团长推荐,24-品牌高佣,其他的值请忽略 |
---|
示例代码如下,注意:
- activityTags参数为具体的活动参数,可以写成一个枚举,根据需要动态传参
- cat_id参数一般用于“猜你喜欢”的场景,当我们点击某个商品后,如果想在这个商品页的下方推荐类似商品,就可以用到这个参数了,此时传入这个商品ID就可以。
- pid参数即我们在多多进宝上创建的推广位id。
- limit、offset、listId参数为分页参数,listId参数为翻页时PDD在前页返回的list_id值
PddDdkGoodsRecommendGetRequest request = new PddDdkGoodsRecommendGetRequest();
request.setActivityTags(activityTags);
request.setCatId("");
request.setLimit(100);
request.setOffset((0);
request.setChannelType(5);
request.setListId("");
request.setPid("");
PopClient client = new PopHttpClient(config.pddClientId, config.pddClientSecret);
try {
PddDdkGoodsRecommendGetResponse response = client.syncInvoke(request);
} catch (Exception e) {
LOGGER.error("拼多多商品列表请求失败 : {}", JSONObject.toJSONString(request), e);
throw CommonExceptions.BIZ_INVALID.newWithErrMsg("拼多多商品列表请求失败");
}
商品详情获取
商品详情的展示有两种方式,一种是通过PDD的接口直接获取商品详情信息,然后我们在自己的页面上去做渲染,另外一种是通过生成推广链接,当用户点击时,跳转到PDD上去展示。
- pdd.ddk.goods.detail:获取商品详情
- pdd.ddk.goods.promotion.url.generate:生成推广链接
以生成推广链接方式为例子:
- custom_parameters:该参数是绑定用户订单的关键,甚至分销的场景也需要借助该参数,以下面代码为例子,这里传入uid的值为用户id,sid为邀请当前用户的上级用户id。
- goodsSignList:该参数为获取商品活动列表时,PDD返回的数据里,每个商品都有该参数,值为商品id加密后的结果。
- 生成链接方式:PDD对这块的功能支持还是挺丰富的,有h5链接也有小程序等,这里我是小程序,所以用的也是生成拼多多小程序跳转链接参数generate_we_app。
PddDdkGoodsPromotionUrlGenerateRequest request = new PddDdkGoodsPromotionUrlGenerateRequest();
CustomParameters customParameters = new CustomParameters().setSid(memberNo).
setUid(formatUid(memberNo));
request.setCustomParameters(JSONObject.toJSONString(customParameters));
List<String> goodsSignList = new ArrayList<String>();
goodsSignList.add(goods.getGoodsSign());
request.setGoodsSignList(goodsSignList);
// request.setMaterialId("str");
// request.setMultiGroup(false);
request.setSearchId(goods.getSearchId());
PopClient client = new PopHttpClient(config.pddClientId, config.pddClientSecret);
request.setGenerateAuthorityUrl(false);
request.setGenerateMallCollectCoupon(false);
request.setGenerateQqApp(false);
request.setGenerateSchemaUrl(false);
request.setGenerateShortUrl(false);
request.setGenerateWeApp(true);
request.setPId(config.pddClientId);
try {
PddDdkGoodsPromotionUrlGenerateResponse response = client.syncInvoke(request);
} catch (Exception e) {
LOGGER.error("拼多多商品跳转请求失败");
}
频道推广
除了商品的推广,PDD也推出了很多频道推广的活动,像我们日常经常充话费、火车票购买都有相应能力支持。
resource_type | INTEGER | 非必填 | 频道来源:4-限时秒杀,39997-充值中心, 39998-活动转链,39996-百亿补贴,39999-电器城,40000-领券中心,50005-火车票 |
---|
以话费充值为例子:
- custom_parameters:同样,这里的自定义参数也是绑定用户订单的关键。
- resource_type:该参数即为频道类型。
CustomParameters customParameters = new CustomParameters().setSid(vo.getMemberNo()).
setUid(formatUid(vo.getMemberNo()));
PddDdkResourceUrlGenRequest request = new PddDdkResourceUrlGenRequest();
request.setCustomParameters(JSONObject.toJSONString(customParameters));
request.setResourceType(39997);
request.setPid("11");
request.setGenerateWeApp(true);
PopClient client = new PopHttpClient(config.pddClientId, config.pddClientSecret);
try {
PddDdkResourceUrlGenResponse response = client.syncInvoke(request);
return new ActivityVo().setAppId(response.getResourceUrlResponse().getWeAppInfo().getAppId())
.setUrl(response.getResourceUrlResponse().getWeAppInfo().getPagePath());
} catch (Exception e) {
LOGGER.error("拼多多转链失败 : {}", JSONObject.toJSONString(request), e);
throw CommonExceptions.BIZ_INVALID.newWithErrMsg("拼多多商品列表请求失败");
}
订单获取及和用户绑定
当用户点击商品发生购买的时候,上面说到的自定义参数custom_parameters将被PDD记录下来,那么我们获取订单时,PDD会将该参数返回给我们,这时我们可以通过该参数解析出是哪位用户下的订单,从而实现和用户绑定。返参格式如下:
custom_parameters | STRING | 自定义参数 |
---|
关于订单获取,PDD提供了几种方式,下面介绍的是按照时间范围获取订单列表。在实际使用过程中,我们可以起一个定时任务定时获取对应的订单列表。
- pdd.ddk.order.list.range.get
PddDdkOrderListRangeGetRequest request = new PddDdkOrderListRangeGetRequest();
request.setStartTime(startTime);
request.setEndTime(endTime);
String lastOrderId = "";
do {
if (StringUtils.isNotBlank(lastOrderId)) {
request.setLastOrderId(lastOrderId);
}
PddDdkOrderListRangeGetResponse response = pddFetchOrderService.request(request);
LOGGER.info("pdd 订单请求的响应: {}", JSONObject.toJSONString(response));
if (response == null || response.getOrderListGetResponse() == null) {
break;
}
if (StringUtils.isBlank(response.getOrderListGetResponse().getLastOrderId()) ||
CollectionUtils.isEmpty(response.getOrderListGetResponse().getOrderList())) {
break;
}
saveOrUpdateOrder(response.getOrderListGetResponse().getOrderList());
lastOrderId = response.getOrderListGetResponse().getLastOrderId();
} while (true);
小结
通过上面的实践,相信我们对PDD开放平台有一个整体上的了解与认识,除了上面所述的功能外,PDD开放平台还有很多丰富的功能,像店铺API,卡劵API等。另外,关于CPS玩转,搭建相关服务是其次,重点还是落地及推广,一般只靠个人还是很难玩得动的,如果小伙伴们有什么其他想法,欢迎留言或者私信探讨~