zoukankan      html  css  js  c++  java
  • PHP对接淘宝客api完成APP引流优惠券

    淘宝客现在对多数人来说已经耳熟能详了,属于CPS(Cost Per Sale),一种网络广告收费标准,以实际销售产品数量来换算广告刊登金额。其他收费标准还有常见的CPC(Cost Per Click 按点击次数收费),和按周期展示收费,周期过后下架等。以前接触这方面也比较少,这里就不详细介绍了,下面开始进入如何从懵圈到把接口对接到APP通过应用的流量实现佣金收入。

    注册账号

           首先在没有对接api前需要去注册一个阿里几个平台的账号,也可以直接用个人/企业 淘宝账号直接登录。

          1.淘宝联盟: https://pub.alimama.com/

          2.淘宝开放平台: http://open.taobao.com/

    申请推广位

           登录进淘宝联盟,点击“活动推广”,然后选择“推广管理”,这里看你要做的是什么,是web就选择网站管理,app就选择APP管理。不过不管是网站还是APP都是要有雏形已经上线,网站需要内容足够丰富且有备案,APP需要在某应用市场上架,最后就是新建推广填写表单提交审核即可。

    记录key和Secret和下载SDK

           提交完成大概一到三个工作日会有结果,成功后点击“查看权限”这时候就可以把App key记录下来,安卓和苹果是分开的,也就是后面调用接口要按系统传入不同的key和secret了。然后点击“查看”就会进入到淘宝开放平台指定的应用详情,一般是展示key和secret和接口使用的权限等信息。最后就选择下载SDK,按自己使用的服务器语言。

    编码前准备

    编码前,需要先创建推广位,安卓和苹果最好分开建立推广位,后面的一些商品推广在是在对应的推广位上,能很好统计点击率和佣金等信息

    创建推广位方法:

    1. 进入联盟产品,随便点击栏目,任意找一件商品,点击“立即推广”。

    2.推广类型选择“app推广”,投放推广位选择新建推广位

    但是,一般我们看别人的优惠券应用都有一些9块9,20元封顶或者一些新品优惠之类的类目。这里我们可以使用淘宝客的选品库接口,因为淘宝联盟一般会专门开一些9块9,20元封顶之类的栏目,我们就需要在自己的账号下创建几个选品库

    创建选品库方法:

    1.淘宝联盟首页左上角退出右边的"我的联盟"->我的选品库

    2.https://pub.alimama.com/manage/selection/list.htm?spm=a219t.7900221/1.a214tr8.5.649075a5NMye6j 进入选品库管理页面点击“新建分组”。

    文档查看和接口测试

    文档地址: http://open.taobao.com/api.htm?docId=24515&docType=2

    测试工具: http://open.taobao.com/doc.htm?spm=a219a.7386653.0.0.7c29669aKwHQ9X&docId=1&docType=15&apiName=taobao.tbk.item.get

    前面已经建好了推广位和选品库,这里就既可以测试一些淘宝联盟自动推广的商品接口,还可以测试选品库内自己选择收集的商品。选择商品可以按高佣金或者高销售量采集。

    避坑注意事项: 

    1.获取淘宝联盟选品库列表需要注意的就是请求这个接口时需要传adzone_id(推广位id),所以前面就做好准备建好了推广位,进入推广管理->推广资源管理->推广位管理,下面列表的pid中类似是mm_260870060_224000411_63877050230的字符串,adzone_id就是在_最后的那个,260870060淘宝联盟账户id,224000411推广媒体id(是网站还是app,是安卓亦是苹果),63877050230推广位id。

    2.选品库id除了在获取选品库列表接口返回的favorites_id,另一种方法就是进入淘宝联盟的我的选品库选择其中一个库,查看地址栏上的链接,get方法拼接的groupId就是选品库id了。

    其他的一些接口就要主要用户授权和收费标准了。

    开始编码

    1. 在tp5框架的vendor中放入淘宝客的sdk

    2. 参数配置

     'tbk' => [
            'android' => [
                'app_key'    => '253x9410',
                'app_secret' => '4a0d9xxxxxx1068fc46e33dce56a76c8',                 // 淘宝开放平台获取
                'adzone_id'  => '6387xx50230',       // 推广位
            ],
            'ios' => [
                'app_key'    => '253xx617',
                'app_secret' => 'fe8472xxxxxxx6e8d041513beca3b9f',                 // 淘宝开放平台获取
                'adzone_id'  => '643092xx050',       // 推广位
            ],
        ],

    3. 封装请求类

    <?php
    
    /**
     * Taobaoke.php
     * @author : 小谜弟
     * @date : 2018.11.28
     * @desc:淘宝客API
     * @version : v1.0.0.0
    */
    namespace appv1serviceEbusiness;
    
    use 	hinkSession as Session;
    use thinkRequest;
    use 	hinkDb;
    use 	hinkLog;
    
    class Taobaoke
    {
        public $term_id = "";
        public $top_client = null;
        function __construct($term_id) {
            $this->term_id = $term_id;
            $this->init();
        }
    
        /**
         * 初始化服务类,添加公共请求参数
        */
        public function init() {
            vendor("taobaoSdk.TopSdk");
    
            //请求淘宝客API,实例化类 **注意使用命名空间**
            $this->top_client = new TopClient;
            $term_id = $this->term_id;
            ($this->top_client)->appkey = config("tbk.$term_id")['app_key'];
            ($this->top_client)->secretKey = config("tbk.$term_id")['app_secret'];
        }
    
        /**
         * 获取我的选品库列表
         * @param [string] $[term_id] [无线端标识: android,ios]
         * @param [string] $[base_url] [H5跳转基本地址]
         * @return [选品库类表]
        */
        public function TbkUatmFavoritesGetRequest($page=1,$pagesize=20) {
            $req = new TbkUatmFavoritesGetRequest;
            // 选择需要查询的字段信息
            $req->setPageNo($page);
            $req->setPageSize($pagesize);
            $req->setFields("favorites_title,favorites_id,type");
            $req->setType("-1");// 默认值-1;选品库类型,1:普通选品组,2:高佣选品组,-1,同时输出所有类型的选品组
            $resp = ($this->top_client)->execute($req);
            $json_str = json_encode($resp);
            $json_arr = json_decode($json_str,true);
    
            if(empty($json_arr['results'])) {
                return [];
            }else {
                return $json_arr['results'];    
            }
        }
    
        /**
         * 获取指定选品库的商品列表
         * @param [int] $[favoritesId] [选品库id]
         * @param [int] $[page] [页码]
         * @param [int] $[pagesize] [页数]
         * @return [选品库类表]
        */
        public function TbkUatmFavoritesItemGetRequest($favoritesId,$page=1,$pagesize=20) {
            if(empty($favoritesId)) {
                return false;
            }
    
            $adzone_id = config("tbk.$this->term_id")['adzone_id'];// APP设备对应的广告推广位pid
    
            $req = new TbkUatmFavoritesItemGetRequest;
            $req->setPlatform("2");              // 1.PC   2.无线
            $req->setPageSize($pagesize);                    
            $req->setAdzoneId($adzone_id);
            $req->setUnid("3456");                        // 
            $req->setFavoritesId($favoritesId);
            $req->setPageNo($page);
            $req->setFields("num_iid,title,pict_url,small_images,reserve_price,zk_final_price,user_type,provcity,item_url,seller_id,click_url,volume,nick,shop_title,zk_final_price_wap,event_start_time,event_end_time,tk_rate,status,type,category,coupon_click_url,coupon_end_time,coupon_info,coupon_start_time,coupon_total_count,coupon_remain_count");
            $resp = ($this->top_client)->execute($req);
    
            $json_str = json_encode($resp);
            $json_arr = json_decode($json_str,true);
    
            if(empty($json_arr['results'])) {
                return [];
            }else {
                return $json_arr['results'];    
            }
        }
    
        /**
         * 根据商品id获取商品详情【精简,无宝贝详情】
         * @param [int] $[num_iid] [淘宝商品唯一id]
         * @param [string] $[ip] [客户端ip]
         * @return [商品详情数组]
        */
        public function TbkItemInfoGetRequest($num_iid,$ip) {
            if(empty($num_iid)) {
                return false;
            }
    
            $req = new TbkItemInfoGetRequest;
            $req->setNumIids($num_iid);
            $req->setPlatform("2");                 // 1.pc   2.无线      
            $req->setIp($ip);                       // 客户端请求ip
            $resp = ($this->top_client)->execute($req);
    
            $json_str = json_encode($resp);
            $json_arr = json_decode($json_str,true);
    
            if(empty($json_arr['results'])) {
                return [];
            }else {
                return $json_arr['results'];    
            }
        }
    
        /**
         * 好券清单列表数据
         * @param [string] $[query_str] [好券搜索]
         * @param [int] $[page] [页码]
         * @param [int] $[pagesize] [页数]
         * @return [好券清单数据列表]
        */
        public function TbkDgItemCouponGetRequest($query_str,$page=1,$pagesize=20) {
            $adzone_id = config("tbk.$this->term_id")['adzone_id']; // APP设备对应的广告推广位pid
    
            $req = new TbkDgItemCouponGetRequest;
            $req->setAdzoneId($adzone_id);
            $req->setPlatform("2");             // 1.pc  2.无线
            //$req->setCat("11");
            $req->setPageSize($pagesize);
            if(!empty($query_str)) {
                $req->setQ($query_str);
            }
            
            $req->setPageNo($page);
            $resp = ($this->top_client)->execute($req);
    
            $json_str = json_encode($resp);
            $json_arr = json_decode($json_str,true);
    
            if(empty($json_arr['results'])) {
                return [];
            }else {
                return $json_arr['results'];    
            }
        }
    
    }
    
    

    小结: 淘宝客接口的请求限制是100,000次/天,所以看你应用的流量,小的可以直接通过客户端请求接口,服务器只使用SDK做一个桥接即可,大的话可以通过定时请求淘宝客接口保存到数据库,客户端在请求自己的接口。其他的拼多多,京东,唯品会也都有推广联盟平台,对接方式也类似,后面就不做演示了,不过拼多多有提供h5的推广方式,只需要建好推广位就可以生成一个推广h5,然后把链接放到app上就可以了,如果有遇到什么问题可以关注下面公众号提问。

  • 相关阅读:
    文档01_基础
    文档07_JavaScript_ajax
    文档02_JavaScript
    文档06_JavaScript_面相对象
    文档05_JavaScript_节点
    文档06_Asp.net2.0_01
    文档04_JavaScript_事件
    文档05_多线程
    文档03_JavaScript_函数
    根据日期计算星座
  • 原文地址:https://www.cnblogs.com/zerofc/p/10335411.html
Copyright © 2011-2022 走看看