字节跳动 巨量千川的M-API使用(四)-完结

第四章 关于千川M-API 智能调控计划

这也是本系列的最后一章,在这里先感谢陈十亿先生,优秀的千川培训老师。因为当中的计划调整逻辑很大程度是参考陈老师的逻辑,以及配合近3年来对字节系的推流逻辑,千川投放逻辑。如果大家想提升千川的投放能力,可以找陈老师报名学习。

在码代码开始前,我们先同步几个千川的常识和定义:
1.参数的阈值,空耗,点击率,转化率,千展,ROI,客单等等,不同的数据等级影响调控的逻辑,务必找出当前账户的跑量且ROI达标的计划的这几项参数,以便做为阈值设置参考。如果是新户数据应该是怎么样,老户数据怎么样。
2.我们定义一条计划跑出去的定义,单小时内的消耗速度为4-6个出价。本着单账户内只有几条计划能跑出去,且能消耗占比特别大。
3.账户的冷启动和成熟期账户,计划类型,参数阈值也应不尽相同。
4.每条计划做展示的人群,虽然定向大差不差,但所能转化的能力不一样,因此每条计划抖会在定向池子里去找人群。
5.新户,用莱卡,达人,优秀的视频去打模型。
6.只投成交类型,不投浅层。
7.涉及一条计划跑量的因素大致可以分为:出价,预算,创意分类,创意标签,视频标题,视频素材。计划的类型,放量/控本,托管/非托管不再此讨论的范围内。我已将不同创意分类的计划ID,创意标签词,视频标题计划ID,视频素材计划ID,莱卡词编码,达人编码上传到该广告户的数据库内,同时将参数阈值也上传到服务器内,因为可以随时更正,也可以让服务器算出当条计划的合适的建议。
… …
等等一系列的调控逻辑,具体还不是很明白可以报陈老师的线上课或者线下课。
现在码代码,新建计划的主要是调用接口,官方文档链接https://open.oceanengine.com/labels/12/docs/1697467137221647官方已经很贴心做分类了一条计划的场景可以分很多种,每个场景每个类型的计划都需要传入不同的参数,才能完成新建,因为公司只有直播间没有图文,因此本文只是涉及投直播间,如果小伙伴有投图文的需求可以联系我,然后提供access_token帮忙开发。

第一步:导入相关的包

# coding=utf-8
import time
import http.client
import sys,os
import random
from random import sample
import requests
import json
from six import string_types
from six.moves.urllib.parse import urlencode, urlunparse  # noqa
import datetime
import re

第二步 以新建直投直播间非托管计划为例

#新建非托管计划                
def create_plan_live_zhitui(advertiser_id,access_token):
    
    global plan_name,my_cpa_bid,my_budget,my_programmatic_creative_title_list,my_ad_keywords,product_ids,my_aweme_id
    global my_audience,my_creative_auto_generate,first_industry_id,second_industry_id,third_industry_id
    global my_programmatic_creative_card,my_programmatic_creative_media_list,my_campaign_id
    global my_marketing_goal,my_promotion_way
#     print("新建计划中")
    open_api_url_prefix = "https://ad.oceanengine.com/open_api/"
    uri = "v1.0/qianchuan/ad/create/"
    url = open_api_url_prefix + uri
    params={
        "advertiser_id":advertiser_id,
        "marketing_goal": "LIVE_PROM_GOODS",
        "lab_ad_type": "NOT_LAB_AD",   
        "name":plan_name,
        "marketing_scene":"FEED",
        "campaign_scene":"DAILY_SALE",
        "aweme_id":my_aweme_id,
        "campaign_id":my_campaign_id,
        "first_industry_id": first_industry_id,
        "second_industry_id": second_industry_id,
        "third_industry_id": third_industry_id,
        "creative_material_mode": "CUSTOM_CREATIVE",        
        "delivery_setting": {
          "external_action": "AD_CONVERT_TYPE_LIVE_SUCCESSORDER_PAY",
          "live_schedule_type": "SCHEDULE_FROM_NOW",
          "schedule_time": "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
          "budget": my_budget,
          "budget_mode": "BUDGET_MODE_DAY",
          "cpa_bid": my_cpa_bid,
          "flow_control_mode": "FLOW_CONTROL_MODE_FAST",
          "smart_bid_type": "SMART_BID_CUSTOM"
        },
        "creative_list":[{
            "image_mode":"AWEME_LIVE_ROOM"
        }],
        "audience":my_audience,
        "is_homepage_hide": 1,
        "ad_keywords": my_ad_keywords,

    }
    headers = {"Access-Token": access_token}
    rsp = requests.post(url, json=params,headers=headers)
    rsp_data = rsp.json()
    return rsp_data

各位小伙伴可以参考上述代码和官方文档新建不同类型的计划。
第三步 关停计划

#关闭计划
def close_ad_plan_one(access_token,advertiser_id,need_close_ad_id):
    print('关停计划 ',str(need_close_ad_id))
    open_api_url_prefix = "https://ad.oceanengine.com/open_api/"
    uri = "v1.0/qianchuan/ad/status/update/"
    url = open_api_url_prefix + uri

    params = {
        "advertiser_id": advertiser_id,
        "ad_ids":[need_close_ad_id],
        "opt_status":"DISABLE"

    }
    headers = {"Access-Token": access_token}
    rsp = requests.post(url,json=params, headers=headers)
    rsp_data = rsp.json()
    return rsp_data

第四步 计划在跑量的时候降价3%

#更改单条计划的出价               
def update_cpa_bid(advertiser_id,access_token,ad_id):
    global plan_name,my_cpa_bid,my_budget,my_programmatic_creative_title_list,my_ad_keywords,product_ids,my_aweme_id
    global my_audience,my_creative_auto_generate,first_industry_id,second_industry_id,third_industry_id
    global my_programmatic_creative_card,my_programmatic_creative_media_list,my_campaign_id
    global my_marketing_goal,my_promotion_way
    print("更改计划出价中",ad_id)
    open_api_url_prefix = "https://ad.oceanengine.com/open_api/"
    uri = "v1.0/qianchuan/ad/bid/update/"
    url = open_api_url_prefix + uri
    params={
        "advertiser_id":advertiser_id,
        "data":[{
            "ad_id":ad_id,
            "bid":new_bid,
        }],
 
    }

    headers = {"Access-Token": access_token}
    rsp = requests.post(url, json=params,headers=headers)
    rsp_data = rsp.json()
    return rsp_data

第五步 从第四章通过计算得出的计划建议,在本地的程序中完成调控的操作,虽然m-api可以再服务器内完成,但本系列只在本地程序中完成计划调控。
服务器通过计算得出的计划建议也不在本系列文章中体现。因为本文只是让小伙伴们可以学习到如果使用M-API的官方文档和python去完成智能的计划调控。
下面介绍如何使用:
1.在广告户在投计划,新建或老计划,自行完成计划类型,计划配比结构,出价体系,视频素材(需过审的)等计划。
2.再开启本应用程序,可以打开智能调控或者不调控只保存数据到服务器。
3.如果不需要在关掉运行中的程序便可,服务器端不会调控账户内的计划。
在这里插入图片描述
写在最后,因为当前公司的产品人群基础定向较为特殊,男,30岁以上,因此本程序无法通用,需要做适当的调整,请小伙伴们注意,有需要调整我可以提供源码自行调整。
谢谢大家看到这系列文章的最后。
如果有需要图文的,或者巨量引擎AD的智能化投放,可以联系我,进行开发。目的是共同成长,减轻优化师们精力,让大家的精力更多放在编导出爆款素材,直播间的调整上。
加油,巨量千川、巨量引擎的优化师们。同时也希望我的职业空窗期短一些,尽快找到新的工作机会。有问题,需要源码可以随时联系。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值