程序化广告行业(66/89):DSP与DMP系统关键要点解析

程序化广告行业(66/89):DSP与DMP系统关键要点解析

大家好!在程序化广告这个充满挑战与机遇的领域,每一次深入学习都像是打开一扇通往新境界的大门。之前我们探讨了不少相关知识,今天咱们接着探索DSP接入设置的更多细节以及DMP系统的奥秘,希望和大家一同进步,在这个复杂又有趣的领域里收获满满。

一、DSP接入设置的进阶内容

(一)价格密钥相关设置

在DSP接入AdX/SSP系统时,价格密钥设置是保障交易安全的重要环节。当前密钥和校验密钥的设定,就像是给价格信息加上了两把锁。DSP和AdX/SSP通过事先约定好的密钥,在数据交互过程中对价格信息进行加密和解密。这就好比只有拥有特定钥匙的人才能打开装有价格信息的宝箱,有效防止了价格信息在传输过程中被窃取或篡改,保护了双方的商业利益。

(二)流量控制

流量控制是根据DSP的实际消耗情况来设置的,它关乎整个广告投放系统的稳定运行。我们知道,不同类型的流量,像Web、App和视频流量,各家DSP的需求和消耗情况都不一样。通过设置总QPS(每秒查询率)以及各部分流量对应的QPS值,能确保DSP不会因为流量过大或过小而出现问题。比如说,如果一家DSP对视频流量的需求比较大,就可以适当提高视频QPS的值,保证视频广告的投放效果;反之,如果某个DSP对Web流量消耗较少,就可以降低Web QPS,避免资源浪费。

假设我们用Python来模拟流量控制的设置过程:

class DSPTrafficControl:
    def __init__(self, total_qps, web_qps, app_qps, video_qps):
        self.total_qps = total_qps
        self.web_qps = web_qps
        self.app_qps = app_qps
        self.video_qps = video_qps

    def update_qps(self, total=None, web=None, app=None, video=None):
        if total:
            self.total_qps = total
        if web:
            self.web_qps = web
        if app:
            self.app_qps = app
        if video:
            self.video_qps = video

# 初始化流量控制参数
traffic_control = DSPTrafficControl(100, 30, 40, 30)
print(f"当前总QPS: {traffic_control.total_qps} 次/秒")
print(f"当前Web QPS: {traffic_control.web_qps} 次/秒")
print(f"当前App QPS: {traffic_control.app_qps} 次/秒")
print(f"当前视频QPS: {traffic_control.video_qps} 次/秒")

# 更新流量控制参数
traffic_control.update_qps(video=40)
print("\n更新后的视频QPS:")
print(f"当前视频QPS: {traffic_control.video_qps} 次/秒")

(三)DSP对接配置

DSP对接配置中的几个关键URL起着不同的重要作用。cookie映射url用于DSP收集cookie映射信息,就像是给用户贴上了一个特殊的“标签”,方便后续进行精准的广告投放。Bid竞价url则负责接收RTB(实时竞价)实时竞价信息,在这个“战场”上,DSP根据自身策略进行出价竞争广告展示机会。Win notice url用于接收AdX/SSP发送的竞价成功消息,一旦DSP竞价成功,就会通过这个url收到通知,进而展示相应的广告。

用Java代码来模拟DSP对接配置的设置:

public class DSPConnectionConfig {
    private String cookieMappingUrl;
    private String bidUrl;
    private String winNoticeUrl;

    public DSPConnectionConfig(String cookieMappingUrl, String bidUrl, String winNoticeUrl) {
        this.cookieMappingUrl = cookieMappingUrl;
        this.bidUrl = bidUrl;
        this.winNoticeUrl = winNoticeUrl;
    }

    // Getter和Setter方法
    public String getCookieMappingUrl() {
        return cookieMappingUrl;
    }

    public void setCookieMappingUrl(String cookieMappingUrl) {
        this.cookieMappingUrl = cookieMappingUrl;
    }

    public String getBidUrl() {
        return bidUrl;
    }

    public void setBidUrl(String bidUrl) {
        this.bidUrl = bidUrl;
    }

    public String getWinNoticeUrl() {
        return winNoticeUrl;
    }

    public void setWinNoticeUrl(String winNoticeUrl) {
        this.winNoticeUrl = winNoticeUrl;
    }
}

public class Main {
    public static void main(String[] args) {
        DSPConnectionConfig config = new DSPConnectionConfig(
            "https://example.com/cookie-mapping",
            "https://example.com/bid",
            "https://example.com/win-notice"
        );

        System.out.println("Cookie映射url: " + config.getCookieMappingUrl());
        System.out.println("Bid竞价url: " + config.getBidUrl());
        System.out.println("Win notice url: " + config.getWinNoticeUrl());
    }
}

二、DMP系统实例详解

(一)数据输入

DMP系统的数据输入就像是为整个系统“输血”,它的来源丰富多样。

代码收集是常见的方式之一。在PC端,有JS代码、1像素代码和flash代码等多种形式。JS代码一般添加到网页的标签中,通过填写DSP对应的账号ID和需要收集的用户标签名称,就能根据用户行为收集数据。比如,如果我们想收集注册过账号的用户数据,就在代码中相应位置填写相关信息。1像素代码适用于不支持JS代码的场景,像EDM邮件营销,通过在邮件中加入1像素图片来收集打开邮件的用户数据。flash代码则常用于flash网站,也可用于收集广告曝光人群,只要在flash素材中添加特定代码,当素材曝光时就能收集对应的人群数据。

手工导入是另一种方式,通过上传文件的形式导入人群cookie数据或移动设备ID数据,并填写人群名称和描述信息,方便后续对这些数据进行管理和使用。

系统对接外部数据源也是重要的数据输入途径。比如广告主想把舜飞|Bidding X产品账号对应的广告投放数据导入DMP,就需要填写产品账号ID、Token以及数据描述信息,实现不同系统间的数据共享和整合。

下面用JavaScript模拟一个简单的数据收集过程(以JS代码收集用户注册行为为例):

function collectUserRegistrationData() {
    const dspAccountId = "12345";
    const userLabel = "注册用户";
    // 模拟向DMP发送数据的请求
    const request = new XMLHttpRequest();
    request.open('POST', 'https://dmp.example.com/collect-data', true);
    request.setRequestHeader('Content-Type', 'application/json');
    const data = {
        dspAccountId: dspAccountId,
        userLabel: userLabel,
        // 这里可以添加更多用户行为相关数据
    };
    request.send(JSON.stringify(data));
    console.log('用户注册数据已发送');
}

// 假设用户完成注册时调用该函数
collectUserRegistrationData();

(二)标签制作

标签制作是DMP系统的核心功能之一,它将收集到的原始数据进行二次加工。通过组合数据,我们可以填写人群标签的名称、分组及描述信息。一个人群分组中可以包含多个不同的人群标签,比如“高消费人群”“年轻活跃人群”等;一个人群标签也可以从属于多个不同的人群分组,这样的灵活设置能够满足不同广告投放场景的需求。例如,在电商广告投放中,我们可以将购买过特定商品的用户数据整合为“特定商品购买人群”标签,然后根据不同的营销目的,将这个标签划分到“促销活动目标人群”分组或者“品牌忠诚度培养人群”分组中,为精准广告投放提供有力支持。

写作不易,如果这篇文章让你对程序化广告中的DSP和DMP系统有了更清晰的认识,希望你能点赞、评论支持一下。也欢迎大家关注我的博客,后续我会持续分享更多程序化广告行业的知识,咱们一起在这个领域不断探索、共同进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值