巨量千川M-API开端:账户下的短视频计划数据获取(二)

在短视频计划(一)中我们已经获取到了账户的信息,那么接下来就需要获取账户下的计划详细数据了!这也是我们目前主要想要拿到的数据。那么接下来正式开始我们最最重要的步骤!

首先是基于(一)中获取到的账户ID信息列表进行循环获取对应下的计划ID。

首先先讲解一下具体的函数方法编译,然后再进行主函数的流程规划。接下来第一步是获取账户下的计划ID,完成这一步其实就可以获取到对应计划的大部分的数据了。除去商品信息、抖音达人信息没有之外,其他的具体数据都是在这一步获取到的。具体的API接口参考文档网址如下:API接口 - 商业开放平台

#获取千川PC广告计划数据
#固定需要传入的参数,起止时间
def get_ad_report(access_token,advertiser_id,start_date,end_date):
    #固定API接口
    open_api_url_prefix = 'https://ad.oceanengine.com/open_api/'
    url_params = 'v1.0/qianchuan/report/ad/get/'
    url = open_api_url_prefix + url_params
    #需要返回的参数,可以根据开发文档中的返回值参数进行设置自己需要的
    params = {
        'advertiser_id':advertiser_id,
        'fields':['stat_cost','ctr','click_cnt','pay_order_amount','prepay_and_pay_order_roi','pay_order_count','qianchuan_first_order_cnt'],
        #设置每次返回的条数,一般一个账户下是不会超过500条计划的,但是如果超过了,就要与page参数进行配合重复获取,根据返回参数中的page_info['total_page']判断总页数,直至获取到所有的数据
        'page_size':500,
        #'page':1,
        'start_date':start_date,
        'end_date':end_date,
        #根据消耗进行降序,方便后续将那些没有消耗的计划屏蔽掉
        'order_type':'DESC',
        #统计周期:天
        'time_granularity':'TIME_GRANULARITY_DAILY', 
        #过滤条件
        'filtering': {
            #推商品——与直播需要分开处理
            'marketing_goal':'VIDEO_PROM_GOODS',
            #平台——与推商品分开处理
            'order_platform':'QIANCHUAN',
        }
    }
    headers = {'Access-Token': access_token}
    try:
        #timeout=(10,20)
        rsp = requests.get(url,json=params, headers=headers)
        rsp_data=rsp.json()
        #根据请求返回编码进行判断是否返回成功
        if rsp_data['code'] == 0:
            rsp_data=rsp_data['data']['list']
        else:
            rsp_data = 'fail'
    except:
        rsp_data = 'fail'
    return rsp_data

此时调用函数方法返回的数据就是计划对应的数据内容了,具体的返回参数可以根据开发文档中的返回参数进行设置。

有些同学还想要计划对应的商品信息和抖音达人信息,以及对应的账户名信息等其他与计划相关但不归属于计划的数据,那么就需要进行其他的接口调用进行获取。比如想要获取计划对应绑定的商品和抖音号信息,那么就需要去【投放管理】-【广告计划管理】-【获取计划详情】接口下进行请求。API接口 - 商业开放平台

正确发送此请求后返回的数据字典【aweme_info】中包含的是抖音信息,【product_info】中包含的是商品信息,直接插入原有的数据中即可。需要确定的是,此接口目前已经发布公告会在短期内更新至v2版本,因此我这里直接使用了最新接口参数进行请求。

def get_ad(access_token,advertiser_id,ad_id):
    open_api_url_prefix = 'https://ad.oceanengine.com/open_api/'
    uri = 'v1.0/qianchuan/ad/detail/get/'
    url = open_api_url_prefix + uri
    params = {
        #此时的参数要求是数字型,而非数组/字符串,需要根据开发文档进行严格规范
        'advertiser_id':advertiser_id,
        'ad_id':ad_id,
        'request_material_url':False,
        #限制版本号
        'version':'v2'
    }
    headers = {'Access-Token': access_token}
    try:
        #timeout=(5,10)
        rsp = requests.get(url,json=params,headers=headers)
        rsp_data = rsp.json()
        if rsp_data['code'] == 0:
            #计划名
            ad_name=rsp_data['data']['name']
            #达人信息
            if rsp_data['data'].get('aweme_info'):
                aweme_name=rsp_data['data']['aweme_info'][0]['aweme_name']
                aweme_id=rsp_data['data']['aweme_info'][0]['aweme_id']
            else:
                aweme_name=''
                aweme_id=''
            #商品信息
            if rsp_data['data'].get('product_info'):
                product_name=rsp_data['data']['product_info'][0]['name']
                product_id=rsp_data['data']['product_info'][0]['id']
            else:
                product_name=''
                product_id=''
            #广告类型
            marketing_scene = rsp_data['data']['marketing_scene']
            
            #创建列表,将需要的数据按顺序写入
            detail=[ad_name,product_id,product_name,aweme_id,aweme_name,marketing_scene]
            #判定所有数据是否正常返回
            if detail[1] == '':
                detail = 'fail'
        else:
            detail = 'fail'
    except:
        detail = 'fail'
    return detail

这样其实大部分的计划相关的数据就已经完成获取了,只需要列一个主函数进行合理判断返回值即可完成一整套的操作!

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值