多多进宝是拼多多的开放平台,为广大商家和推广者提供了一个机会,通过推广拼多多的商品来实现收益。多多进宝的CPS(按效果付费)模式让推广者可以根据自己的努力和效果来获取相应的佣金,成为了许多人赚取额外收入的途径。在本文中,我们也将从0到1,深入了解及实践如何玩转拼多多CPS,为自己的副业拓宽一下路子。
在开始之前,我们可能去管网注册一下账号,链接如下,在注册后,在“我要推广”下选择想要推广的商品或者榜单,如图1。以“单品推广”为例子,点击进入某个商品的详情后,点击我要推广,填写对应的推广位,即可生成推广链接,如图2。接着,当用户通过你的链接点击下单,即可获得分佣。
推广位:在相应媒体登记下创建推广位,每个推广位是唯一的“pid”,是推广识别、跟踪和结算依据
根据推广位,获取商品的多多客推广链接,即可引导消费者购买。该属性在后续接口调用中,经常需要携带的参数
在上面的例子中,我们介绍了手动操作生成推广链接的方式,接着我们将围绕如下几方面,展开描述通过接口的方式,如何玩转多多进宝。
在开始之前,我们还需要下载服务端SDK**,**方面我们开发调用。
pdd.ddk.goods.recommend.get:该接口可以获取PDD各个活动的商品列表,通过传入activity_tags参数,可以获取不同活动页。
activity_tags | INTEGER[] | 非必填 | 活动商品标记数组,例:[4,7],4-秒杀,7-百亿补贴,10851-千万补贴,11879-千万神券,10913-招商礼金商品,31-品牌黑标,10564-精选爆品-官方直推爆款,10584-精选爆品-团长推荐,24-品牌高佣,其他的值请忽略 |
---|
示例代码如下,注意:
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上去展示。
以生成推广链接方式为例子:
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-火车票 |
---|
以话费充值为例子:
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提供了几种方式,下面介绍的是按照时间范围获取订单列表。在实际使用过程中,我们可以起一个定时任务定时获取对应的订单列表。
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玩转,搭建相关服务是其次,重点还是落地及推广,一般只靠个人还是很难玩得动的,如果小伙伴们有什么其他想法,欢迎留言或者私信探讨~