程序化广告行业(11/89):洗牌期与成熟期的变革及行业生态解析
程序化广告行业(11/89):洗牌期与成熟期的变革及行业生态解析
大家好!一直以来,我都在钻研程序化广告行业,在学习过程中积累了不少干货,特别想和大家分享,一起学习进步。这篇文章接着上一篇,深入剖析程序化广告行业在洗牌期和成熟期的发展变化,以及整个行业生态的构成。
一、洗牌期的行业变革
2017 - 2018年,程序化广告行业进入洗牌期,这是行业发展过程中自我调整、去伪存真的关键阶段。在前期的燥热发展中,行业出现了诸多乱象,比如虚假平台、作弊流量以及概念炒作等问题泛滥。而洗牌期的到来,让行业逐渐回归理性,聚焦技术本质。
从广告主的角度来看,他们在经历了各种市场乱象的“洗礼”后,变得更加理性和谨慎。首先,广告主对透明程序化的诉求愈发强烈。他们不仅要求流量和数据环节透明化,确保投放的每一个环节都清晰可查,还希望财务和合同等流程更加规范严谨。就好比买东西,不仅要知道货物的来源和质量,还要确保交易过程明明白白。其次,广告主开始积极盘活私有数据。部分大型广告主凭借自身的实力和资源,选择自建DSP、DMP,将自己积累的用户数据充分利用起来,用于优化广告投放或者拓展其他数字营销渠道。还有些广告主由于广告消耗量大,会包断广告位,再把剩余流量通过SSP售卖出去,实现资源的最大化利用。此外,广告主对KPI衡量标准也更加严格。他们会严格把控广告投放的流量消耗,坚决杜绝作弊行为,尤其是移动端的归因作弊,确保广告投放效果的真实性和可靠性。
媒体在洗牌期同样发生了显著变化。一方面,越来越多的大型媒体倾向于自建AdX/SSP,目的是牢牢掌握流量控制权。这样一来,媒体可以更好地管理和运营自己的流量资源,提高资源的变现效率。另一方面,为了实现头部优质流量的最大价值,提升Ecpm价格,各大交易平台不断完善广告交易模式,升级对PA、PD、PDB交易模式的技术支持。不同类型的广告主对交易模式有不同的偏好,品牌广告主喜欢PDB模式,因为它能保证广告投放的精准度和稳定性;效果广告主则更倾向于PD模式,看重其灵活的投放策略和较高的投资回报率。同时,媒体的广告形式也变得更加丰富多样。除了常见的网站、App广告,智能电视广告(OTT TV)、户外广告(OOH)、音频广告(Audio)等都纷纷加入程序化行列。原生广告、可玩广告、短视频广告等新兴广告形式也发展迅速,这些广告形式不仅提升了用户体验,还带来了更好的广告效果。
二、成熟期的市场展望
预计2019年之后,程序化广告市场将进入成熟期。在这个阶段,市场规模从增量市场转变为存量市场,整个行业格局相对稳定下来。这意味着行业的发展不再像前期那样高速扩张,而是更加注重质量和效率的提升。从业者们需要以“完善广告技术、满足市场需求”为宗旨,共同努力实现最大化提升广告营销效率和效果的目标。在成熟期,市场竞争将更加注重技术创新和服务质量,那些能够提供更精准的广告投放、更优质的用户体验以及更高效的广告效果的企业,将在市场中占据优势地位。
三、程序化广告行业生态解析
随着程序化广告市场的发展,其产业生态正逐步走向成熟化和规范化。相较于传统的网络广告产业链,程序化市场出现了许多新角色和技术服务,主要可以分为五类:
- 广告需求方:这是流量的消费者,包括广告主或代理商。广告主是广告的发起者,他们希望通过广告宣传自己的产品或服务,吸引目标客户;代理商则帮助广告主进行广告策划、投放和管理,是连接广告主和其他市场参与者的重要桥梁。
- 需求方服务:包括需求方平台DSP和采购交易平台Trading Desk。DSP就像是广告主的“智能采购助手”,通过数据分析和算法,为广告主提供精准的广告投放服务,帮助他们找到最适合的目标受众;采购交易平台则协助广告主进行广告资源的采购和交易管理,提高采购效率和效果。
- 流量供应方:涵盖媒体网站或App、广告网盟Ad Network。媒体网站和App是广告展示的重要载体,它们拥有大量的用户流量,为广告投放提供了平台;广告网盟则整合了多个媒体的碎片化流量,让广告主能够更广泛地覆盖目标受众。
- 流量方服务:主要指广告交易平台Ad Exchange和供应方平台SSP。这两者在发展过程中功能逐渐趋同,都用于整合市场流量,连接广告需求方和供应方,实现广告资源的高效交易。
- 广告服务和数据管理:包括程序化创意平台PCP、广告验证平台AVP、数据管理平台DMP、监测分析平台MAP。这些平台为广告投放策略优化提供数据支持,保障品牌安全。比如DMP负责收集、整理和分析用户数据,为精准投放提供依据;广告验证平台则确保广告投放的真实性和合规性,防止作弊行为。
四、代码实例:模拟程序化广告的流量分配优化
为了帮助大家更好地理解程序化广告中的流量分配优化,下面用Python代码模拟一个简单的场景。假设我们有多个广告位和不同的广告主需求,根据广告主的出价和广告位的质量得分来分配流量。
# 广告位数据,每个广告位是一个字典,包含广告位ID和质量得分
ad_slots = [
{"slot_id": 1, "quality_score": 0.8},
{"slot_id": 2, "quality_score": 0.6},
{"slot_id": 3, "quality_score": 0.7}
]
# 广告主数据,每个广告主是一个字典,包含广告主ID和出价
advertisers = [
{"advertiser_id": 101, "bid": 2.5},
{"advertiser_id": 102, "bid": 1.8},
{"advertiser_id": 103, "bid": 2.2}
]
# 模拟流量分配函数
def allocate_traffic(ad_slots, advertisers):
# 根据出价和质量得分计算综合得分
def calculate_score(advertiser, slot):
return advertiser["bid"] * slot["quality_score"]
traffic_allocation = []
for slot in ad_slots:
max_score = 0
best_advertiser = None
for advertiser in advertisers:
score = calculate_score(advertiser, slot)
if score > max_score:
max_score = score
best_advertiser = advertiser
if best_advertiser:
traffic_allocation.append((slot["slot_id"], best_advertiser["advertiser_id"], max_score))
return traffic_allocation
result = allocate_traffic(ad_slots, advertisers)
for slot_id, advertiser_id, score in result:
print(f"广告位 {slot_id} 分配给广告主 {advertiser_id},综合得分: {score}")
在这段代码中,我们定义了广告位和广告主的数据结构,通过allocate_traffic
函数计算每个广告主在每个广告位上的综合得分,根据得分来分配流量。这只是一个简化的模拟示例,实际的程序化广告流量分配会涉及更复杂的算法和数据处理,但希望能让大家对流量分配的逻辑有一个初步的理解。
写作这篇博客花费了我很多心血,每一个知识点都是精心整理的。如果这篇文章能帮助你更好地了解程序化广告行业,希望你能关注我的博客,点赞评论支持一下。你们的鼓励是我持续创作的动力,后续我还会分享更多关于程序化广告行业的精彩内容,让我们一起在这个充满机遇和挑战的领域不断探索前行!