业务向——基于多多进宝平台的CPS

业务向——基于多多进宝平台的CPS

  • 导读
  • 小试牛刀
  • 商品活动推广
  • 商品详情获取
  • 频道推广
  • 订单获取及和用户绑定
  • 小结

导读

多多进宝是拼多多的开放平台,为广大商家和推广者提供了一个机会,通过推广拼多多的商品来实现收益。多多进宝的CPS(按效果付费)模式让推广者可以根据自己的努力和效果来获取相应的佣金,成为了许多人赚取额外收入的途径。在本文中,我们也将从0到1,深入了解及实践如何玩转拼多多CPS,为自己的副业拓宽一下路子。

小试牛刀

在开始之前,我们可能去管网注册一下账号,链接如下,在注册后,在“我要推广”下选择想要推广的商品或者榜单,如图1。以“单品推广”为例子,点击进入某个商品的详情后,点击我要推广,填写对应的推广位,即可生成推广链接,如图2。接着,当用户通过你的链接点击下单,即可获得分佣。

  • 多多进宝
  • 拼多多开放平台文档
  • 拼多多开放平台账号注册文档
  • 除了手动创建推广位,PDD也提供了接口的方式创建推广位。

推广位:在相应媒体登记下创建推广位,每个推广位是唯一的“pid”,是推广识别、跟踪和结算依据
根据推广位,获取商品的多多客推广链接,即可引导消费者购买。该属性在后续接口调用中,经常需要携带的参数

图1
图2
在上面的例子中,我们介绍了手动操作生成推广链接的方式,接着我们将围绕如下几方面,展开描述通过接口的方式,如何玩转多多进宝。

  1. 商品活动推广
  2. 商品调整获取
  3. 拼多多充值
  4. 拼多多订单获取及和用户绑定

在开始之前,我们还需要下载服务端SDK**,**方面我们开发调用。

商品活动推广

pdd.ddk.goods.recommend.get:该接口可以获取PDD各个活动的商品列表,通过传入activity_tags参数,可以获取不同活动页。

activity_tagsINTEGER[]非必填活动商品标记数组,例:[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_typeINTEGER非必填频道来源: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_parametersSTRING自定义参数

关于订单获取,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玩转,搭建相关服务是其次,重点还是落地及推广,一般只靠个人还是很难玩得动的,如果小伙伴们有什么其他想法,欢迎留言或者私信探讨~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615877.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[JAVA数据结构] 认识 Iterable、Collection、List 的常见方法签名以及含义

目录 (一)Iterable 1. 介绍 2. 常见方法 (二)Collection 1. 介绍 2. 常见方法 (三) List 1. 介绍 2. 常见方法 总结 (一) Iterable 1. 介绍 Iterable接口是Java中的一个接口&#xff0c;它是集合框架中的根接口之一。Iterable接口表示实现了迭代功能&#xff0c;即可以通过迭…

鸿蒙HarmonyOS兼容JS的类Web开发

鸿蒙HarmonyOS兼容JS的类Web开发 文章目录 鸿蒙HarmonyOS兼容JS的类Web开发文件组织目录结构文件访问规则媒体文件格式 js标签配置pageswindow示例 app.js应用生命周期应用对象6 HML语法参考页面结构数据绑定普通事件绑定冒泡事件绑定5捕获事件绑定5列表渲染条件渲染逻辑控制块…

HTML5 画布绘制海报

需求&#xff1a; 1、根据用户填写的联系人信息&#xff1a;姓名、手机号及微信二维码&#xff0c;生成海报&#xff0c;并下载保存到本地&#xff1b; 2、可多个海报切换供用户选择 实现&#xff1a;使用html5实现&#xff0c;为方便用户&#xff0c;做的手机网站的样式&am…

图形化编程:下一代的创新教育工具

在科技日新月异的今天&#xff0c;编程已经成为了一项必备的技能。然而&#xff0c;传统的编程语言对于许多人来说仍然是一项挑战&#xff0c;尤其是对于年轻的学习者。为了解决这个问题&#xff0c;图形化编程应运而生&#xff0c;它以其直观、易理解和易操作的特点&#xff0…

【2023开发组二等奖】地震数据管理及评估系统

作品介绍 1 作品背景与需求分析 1.1 项目背景 随着全球气候的变化和人类活动的不断扩大,各种自然灾害的发生频率和严重程度都在不断增加。其中,地震作为一种常见的自然灾害,给人们的生命和财产带来了极大的威胁。 “十四五”国家防震减灾规划通知提出:“防震减灾是防灾减…

【MySQL】本地创建MySQL数据库详解

文章目录 下载MySQL安装重置密码本地连接 下载MySQL 下载网址&#xff1a;https://dev.mysql.com/downloads/mysql/ 安装 将下载好的压缩包解压到D盘。 在解压好的文件夹中创建my.ini文件。 将以下代码复制粘贴到创建好的my.ini文件中。注意修改文件路径。 [mysqld] #设置…

PHP留言板实现

完整教程PHP留言板 登陆界面 一个初学者的留言板&#xff08;登录和注册&#xff09;_php留言板登录注册-CSDN博客 留言板功能介绍 百度网盘 请输入提取码 进入百度网盘后&#xff0c;输入提取码&#xff1a;knxt&#xff0c;即可下载项目素材和游客访问页面的模板文件。 &…

LeetCode 0383. 赎金信:计数

【LetMeFly】383.赎金信&#xff1a;计数 力扣题目链接&#xff1a;https://leetcode.cn/problems/ransom-note/ 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#…

谈谈你对 Spring AOP 的理解

Java面试目录 谈谈你对 Spring AOP 的理解 Spring AOP是面向切面编程&#xff0c;通过代理模式来实现。 我们将与业务逻辑无关&#xff0c;同时又需要在业务执行前后调用的逻辑封装起来&#xff0c;利用代理来进行统一调度。可以减少系统的重复代码&#xff0c;降低耦合度&…

讯飞医疗“单飞”上市,科大讯飞的“AI算盘”还灵吗?

近年来&#xff0c;人工智能的各种应用呈现出爆炸式的增长态势&#xff0c;“AI”模式在众多领域中不断展现出其多元化的潜力。就在最近&#xff0c;国内的人工智能技术领军企业也迈出了重要的一步。一直被誉为国内“AI之光”的科大讯飞在1月9日晚间发布了一份公告&#xff0c;…

jmeter--常用插件及服务器监控(14)

一.jmeter插件管理器 下载jmeter插件管理器&#xff1a;plugins-manager.jar 下载plugins-manager.jar并将其放入lib/ext目录&#xff0c;然后重启JMeter。 插件管理界面 打开选项->Plugins Manager&#xff08;界面见下图&#xff09;&#xff0c;“Installed Plugns”…

kettle配置提升读写性能

一、使用场景 在多个数据库之间进行数据的抽取&#xff0c;转换&#xff0c;处理等 二、数据库配置 1.增加批量写的速度 useServerPrepStmtsfalse (关闭服务器端编译&#xff0c;sql语句在客户端编译好再发送给服务器端&#xff0c;发送语句如上。如果为true,sql会采用占位符…

Windows pip install -r requirement.txt 太慢

解决方案一&#xff1a; 1、在虚拟环境中切换下载的源&#xff1a; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 2、当出现有pip.txt文件写入时&#xff0c;再执行pip安装 pip install -r requirement.txt 解决方案二&#xff1a; 1、在…

使用Openssl生成Https免费证书以及Nginx配置

1 证书和私钥的生成 1.创建服务器证书密钥文件 server.key&#xff1a; openssl genrsa -des3 -out server.key 2048 输入密码&#xff0c;确认密码&#xff0c;自己随便定义&#xff0c;但是要记住&#xff0c;后面会用到。 2.创建服务器证书的申请文件 server.csr openssl r…

jmeter接口自动化测试如何部署jenkins

首先&#xff0c;保证本地安装并部署了jenkins&#xff0c;jmeter&#xff0c;xslproc 我搭建的自动化测试框架是jmeterjenkinsxslproc ---注意&#xff1a;原理是&#xff0c;jmeter自生成的报告jtl文件&#xff0c;通过xslproc工具&#xff0c;再结合jmeter自带的模板修改&…

React Native 环境安装

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases. 搭建开发环境 React Native 中文网 Homebrew&#xff08;包管理器&#xff09; → rvm&#xff08;ruby版本管理&#xff09; → ruby → cocoapods 安装 Homebrew Homebrew /bin/ba…

网安入门14-文件包含(file:// )

​ 什么是文件包含漏洞——来自ChatGPT4 文件包含漏洞是指应用程序在加载文件时&#xff0c;允许用户控制被加载文件的名称&#xff0c;从而导致恶意代码的执行或敏感信息的泄露。文件包含漏洞主要分为两种&#xff1a; 本地文件包含漏洞&#xff08;LFI&#xff09; &#…

jmeter和meterSphere如何使用第三方jar包

工具引用jar包语言都是beanshell 问题起因&#xff1a;metersphere 接口自动化实现过程中&#xff0c;如何实现字符串加密且加密方法依赖第三方库&#xff1b; 使用语言&#xff1a;beanshell脚本语言&#xff0c;java语言 使用工具&#xff1a;idea jmeter metersphere 1.首…

docker图形化工具portainer

记录一个swarm部署portainer的方式 官网&#xff1a;https://www.portainer.io/ 编写yml version: 3.2services:agent:image: portainer/agent:2.0.0volumes:- /var/run/docker.sock:/var/run/docker.sock # 替换为自己docker的sock文件路径- /applications/docker/volumes:/v…

54.Spring的AOP是在哪里创建的动态代理?

54.Spring的AOP是在哪里创建的动态代理? 正常的Bean会在Bean的生命周期的‘初始化’后, 通过BeanPostProcessor.postProcessAfterInitialization创建aop的动态代理还有一种特殊情况: 循环依赖的Bean会在Bean的生命周期‘属性注入’时存在的循环依赖的情况下, 也会为循环依赖…