PHP對接淘寶客api完成APP引流優惠券

    淘寶客如今對多數人來講已經耳熟能詳了,屬於CPS(Cost Per Sale),一種網絡廣告收費標準,以實際銷售產品數量來換算廣告刊登金額。其餘收費標準還有常見的CPC(Cost Per Click 按點擊次數收費),和按週期展現收費,週期事後下架等。之前接觸這方面也比較少,這裏就不詳細介紹了,下面開始進入如何從懵圈到把接口對接到APP經過應用的流量實現佣金收入。php

註冊帳號

       首先在沒有對接api前須要去註冊一個阿里幾個平臺的帳號,也能夠直接用我的/企業 淘寶帳號直接登陸。android

      1.淘寶聯盟: https://pub.alimama.com/ios

      2.淘寶開放平臺: http://open.taobao.com/web

申請推廣位

       登陸進淘寶聯盟,點擊「活動推廣」,而後選擇「推廣管理」,這裏看你要作的是什麼,是web就選擇網站管理,app就選擇APP管理。不過不論是網站仍是APP都是要有雛形已經上線,網站須要內容足夠豐富且有備案,APP須要在某應用市場上架,最後就是新建推廣填寫表單提交審覈便可。數據庫

 

記錄key和Secret和下載SDK

       提交完成大概一到三個工做日會有結果,成功後點擊「查看權限」這時候就能夠把App key記錄下來,安卓和蘋果是分開的,也就是後面調用接口要按系統傳入不一樣的key和secret了。而後點擊「查看」就會進入到淘寶開放平臺指定的應用詳情,通常是展現key和secret和接口使用的權限等信息。最後就選擇下載SDK,按本身使用的服務器語言。json

編碼前準備

編碼前,須要先建立推廣位,安卓和蘋果最好分開創建推廣位,後面的一些商品推廣在是在對應的推廣位上,能很好統計點擊率和佣金等信息api

建立推廣位方法:數組

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 app\v1\service\Ebusiness;

use \think\Session as Session;
use think\Request;
use \think\Db;
use \think\Log;

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上就能夠了,若是有遇到什麼問題能夠關注下面公衆號提問。

相關文章
相關標籤/搜索