当前位置: 首页 > 编程日记 > 正文

麦当劳数字化转型中获得的6个数据科学经验

摘要

美国大数据公司Civis Analytics于2017年底与麦当劳北美市场营销和数据科学团队建立了数据技术合作伙伴关系,经过一年半的努力,近期在纽约广告周上共同展示了一些重要的学习成果。

麦当劳客户数据科学总监David Galinsky和麦当劳媒体科学经理Emma Higgins都是麦当劳的代表,在广告周的会晤中他们谈到了经验、学到了什么以及为公司回报了什么。谈话的完整视频在这里,简短的视频在这里。

Civis为麦当劳团队提供了Civis平台,为客户数据科学团队提供的云托管数据科学堆栈,而David和Emma的团队提供了洞察力和实现。以下内容概述了他们在合作过程中的关键步骤,以及供其他企业参考的经验教训。

正文

麦当劳是一家超过1000亿美元的企业,在数字化转型过程中,为了应对日益激烈的竞争和不断变化的消费者需求,麦当劳创造了一个新的(现在非常流行)移动应用程序,并从一开始就用数字售货亭的概念重新设计了很多它的门店,目前这些新的数字化技术正在创造大量丰富的客户数据。

对于麦当劳以及其他类似数字化转型期的企业而言,营销人员应该如何利用这些新的数据源来提高营销效果?

在广告周的谈话中,David和Emma描述了麦当劳的营销运作是如何从一个传统、市场研究主导的组织,转变为一个创新、数字化的第一方数据和数据科学主导的组织。如今,麦当劳利用360度客户数据库来设计、发布和度量了高度个性化的营销活动,这些活动则推动了可量化的同店销售增长。例如,在最近的一次市场试验中,他们发现个性化营销活动对同店销售的影响比传统营销活动的影响高3-5倍,这个数字意味着很大的改善。

David和Emma在广告周谈话中分享了以下六条经验:

1. 一如既往,从数据开始:在云中构建一个轻量级的“单一客户事实来源”

第一步很简单:麦当劳团队首先将来自每个客户相关的数据筒仓(店内数据、市场调查数据、位置数据、移动应用程序交易数据及其他来源)整合到Civis平台上的单一数据库中。在云中这样做可以提高速度,让IT团队始终专注于核心的生产技术。

下一步就不那么简单了:麦当劳团队仔细并持续地创建了单一的“客户ID”数据库,通过它来展示客户个体与麦当劳每个部分从市场印象到购买的完整互动。与数据仓库不同,麦当劳为每个客户都生产了一个360度的视图。通过这个数据库麦当劳可以回答基本的问题(谁在买什么?)以及更复杂的因果问题(在新的营销活动之后谁买了什么?),它形成了数字化客户业务像锚一样稳固的基底。

2. 制定成功的规则:通过购买行为来衡量营销活动带来的影响,削弱传统营销活动(如“印象”)指标的重要度

一旦将所有这些数据放在一个地方,就有机会摆脱“印象”这类无法准确衡量业务价值的虚荣指标。关键业绩指标(KPI)应该关联销售及进店访问是很早的一个共识,现在可以通过分析实际客户数据来实现。凭借在全国范围内和麦当劳客户之间进行额外研究的能力,还能够衡量品牌认知和态度的变化。

3. 向市场营销实施者提供数据:利用网络化工具,使营销和代理团队能够根据第一方数据削减自己的目标清单,也取代了过度紧张的数据科学团队来回的邮件和不眠的夜晚

麦当劳希望根据顾客过去的购买情况来确定营销目标,数据科学团队有能力查询原始购买数据,但在谁生成清单和谁实际上使用清单之间造成了瓶颈。David和Civis在Civis平台中构建了一个简单的“list-cutting”应用程序,使营销人员能够根据过去的购买情况直接从客户数据库中提取清单,并将其直接发送给数字化合作伙伴进行激活。

4. 仪表板 \u0026gt; 幻灯片:为领导层生成部署重点客户的度量及营销性能仪表板,在手机上向下滑动就能阅读

信息依赖于单一事实来源这点至关重要,领导能很舒适地获得它。像David一样的数据科学家在这个平台上生成Tableau报表给领导层查看,事实上,麦当劳美国的总裁打开手机就能看到这样的Tableau报表。

5. 像一个团队一样测试、学习和扩展使用:数据科学、市场营销和麦当劳机构共同设计体验来测试个性化需求,在企业层面上对想要的结果收放自如

如上所述,麦当劳在第一方数据驱动产品细分市场上测试了更个性化的媒体体验,David和Emma成立了一个控制小组,接受了麦当劳常规媒体的轮番采访,并针对几组顾客进行了测试,顾客会收到更符合他们产品偏好的广告(给“爱鸡人”有关鸡的广告,等等)。他们发现,收到基于这些新产品细分的目标广告的人群,同店销售额增长了3-5倍。更好的销售和客户接受他们喜欢的资讯是双赢的。

6. 从第一天起建立倡导者的支持,并用成果来推动体系进步

他们这次谈话最重要的一点是从跨职能利益相关者那里获得认同,麦当劳的“度量未来”团队包括市场营销、财务和IT,因此把数据当成指导原则,这些利益相关者可以用来在整个组织内布道。每个人都在使用相同的数据、工具并构建预测模型,这加快了采用的速度并保持动力。

相关文章:

操作系统(三)

学习记录(3) 线程 1.线程的优势在哪? 1.1 多线程之间会共享同一块地址空间和所有可用数据的能力,这是进程所不具备的。 1.2 线程要比进程更轻量级,由于线程更轻,所以它比进程更容易创建,也更容…

【Kubernetes】两篇文章 搞懂 K8s 的 fannel 网络原理

近期公司的flannel网络很不稳定,花时间研究了下并且保证云端自动部署的网络能够正常work。 1.网络拓扑 拓扑如下:(点开看大图) 容器网卡通过docker0桥接到flannel0网卡,而每个host对应的flannel0网段为 10.1.x.[1-255…

图像读取、转为灰度图像、均值平滑、显示保存操作

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> int main( ) {// 读取图像源cv::Mat srcImage cv::imread("..\\images\\pool.jpg");if( srcImage…

python 查询 elasticsearch 常用方法(Query DSL)

2019独角兽企业重金招聘Python工程师标准>>> 1. 建立连接 from elasticsearch import Elasticsearch es Elasticsearch(["localhost:9200"])2. 查询所有数据 # 方式1&#xff1a; es.search(index"index_name", doc_type"type_name"…

OpenCV 【十一】—— 图像去畸变,对极约束之undistort,initUndistortRectifyMap,undistort

目录 0.极限约束&#xff0c;对极校正 1.摄像机成像原理简述 2.成像畸变 2.1. 畸变数学模型 2.2. 公式推导 3.畸变校正 3.1. 理论推导 4. 图像去畸变** 5. 图像尺度缩放与内参的关系** 5.1 undistortPoints() 5.2 initUndistortRectifyMap() 5.3 undistort() 6.Un…

Ubuntu14.04 Mininet中将Openvswitch升级步骤

2019独角兽企业重金招聘Python工程师标准>>> 首先下载Mininet apt-get install mininetservice openvswitch-controller stopupdate-rc.d openvswitch-controller disablemn --test pingall 这里可能会出现以下错误sudo mn --mac --controllerremote,port6653 --top…

(转)软件测试的分类软件测试生命周期

软件测试的分类&软件测试生命周期 软件测试的分类&#xff1a; 按测试执行阶段&#xff1a;单元测试、集成测试、系统测试、验收测试、&#xff08;正式验收测试&#xff0c;Alpha 测试-内侧&#xff0c;Beta 测试-公测&#xff09; 按测试技术分类&#xff1a;黑盒测试、白…

OpenCV 【十二】OpenCV如何扫描图像、利用查找表和计时

目录 OpenCV如何扫描图像、利用查找表和计时 1.函数计算时间测试case 2. Mat图像的存储机理 3. 像素遍历的3--4种方式 4. 实例 OpenCV如何扫描图像、利用查找表和计时 如何计算函数运行时间&#xff1f; Mat图像如何存储&#xff1f; 如何高效遍历图像像素&#xff1f; …

Java String.split()用法小结

2019独角兽企业重金招聘Python工程师标准>>> 在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1、如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用Strin…

217. 验证码 demo

2019独角兽企业重金招聘Python工程师标准>>> 1.效果 2.准备&#xff1a; 下载相关的jar 这里我使用的是ValidateCode 这个jar https://my.oschina.net/springMVCAndspring/blog/1815719 &#xff08;1&#xff09;相关jar下载路径 链接&#xff1a;https://pan.…

OpenCV 【十三】矩阵的掩码操作

目录 1 Mask掩膜/滤波核 1.1 原理 1.2 实例 1.3 结果对比 2. filter2D函数 2.1 原理 2.2 实例 2.3 结果 1 Mask掩膜/滤波核 1.1 原理 矩阵的掩码操作很简单。其思想是&#xff1a;根据掩码矩阵&#xff08;也称作核&#xff09;重新计算图像中每个像素的值。掩码矩阵中…

【ArrayList】为什么java.util.concurrent 包里没有并发的ArrayList实现?

2019独角兽企业重金招聘Python工程师标准>>> 为什么java.util.concurrent 包里没有并发的ArrayList实现&#xff1f; 问&#xff1a;JDK 5在java.util.concurrent里引入了ConcurrentHashMap&#xff0c;在需要支持高并发的场景&#xff0c;我们可以使用它代替HashMa…

Android实现买卖商品小游戏

之前为了学习GreenDao&#xff0c;写的练手项目&#xff0c;欢迎指点 仿手游《混》《买房记》&#xff0c;单机游戏&#xff0c;无需联网 1、主界面 2、游戏界面 可以选择地区出发随机事件&#xff0c;进行贷款/还款&#xff0c;治疗&#xff0c;还债&#xff0c;买卖商品&…

OpenCV 【十四】改变图像的对比度和亮度高度关联章节:OpenCV 【十】——Gamma校正 ——图像灰度变化

目录 0 提问 1.1 原理 trick: 1.2 代码 1.3 结果 0 提问 访问像素值 用0初始化矩阵 saturate_cast 是做什么用的&#xff0c;以及它为什么有用 1.1 原理 图像处理 一般来说&#xff0c;图像处理算子是带有一幅或多幅输入图像、产生一幅输出图像的函数。 图像变换可分…

getRotationMatrix2D 函数

cv::Mat cv::getRotationMatrix2D( Point2f center, double angle, double scale ) {// 角度转换angle * CV_PI/180;// 计算旋转矩阵角度double alpha cos(angle)*scale;double beta sin(angle)*scale;Mat M(2, 3, CV_64F);double* m (double*)M.data;// 构建旋转矩阵m[0] …

java学习笔记-java中运算符号的优先顺序

java中各种运算符具有优先级顺序&#xff0c;一般会先计算优先级高的&#xff0c;再计算优先级低的。可以使用()使得优先级变为最高。在算术运算中&#xff0c;优先级为 --* &#xff0f; -在在逻辑运算中的优先级是 ! 取反&& || & |在位运算中的优先级 &#xff…

红帽发布第四季度和2019财年报告,多项指标维持两位数增速

近日&#xff0c;红帽公司发布了其第四季度和2019财年报告。这是在被 IBM以340亿美元的价格收购 后&#xff0c;红帽公布的第一份财报&#xff0c;数据颇为亮眼。 报告显示&#xff0c;红帽公司第四季度总收入8.79亿美元&#xff0c;同比增长14%&#xff1b;整个财年营收34亿美…

OpenCV 【十五】绘直线/椭圆/矩形/圆及其填充

目录 1. 概况 2. 原理 2.1 Point 2.2 Scalar 3. 代码 4.结果 1. 概况 如何用 Point 在图像中定义 2D 点 如何以及为何使用 Scalar 用OpenCV的函数 line 绘 直线 用OpenCV的函数 ellipse 绘 椭圆 用OpenCV的函数 rectangle 绘 矩形 用OpenCV的函数 circle 绘 圆 用Op…

spring-boot Junit4单元测试

2019独角兽企业重金招聘Python工程师标准>>> 如果是使用spring-boot 1.4以下的版本 RunWith(SpringJUnit4ClassRunner.class) SpringApplicationConfiguration(classes 启动类.class) public class ApplicationTest {//代码省略 } 使用SpringApplicationConfigurat…

VideoCapture 读取视频文件,显示视频(帧)信息

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace std; using namespace cv; int main() {// 定义相关VideoCapture对象VideoCapture capture;…

Go 1.12发布:改进了运行时性能以及模块支持

Go最新版本1.12于近日发布&#xff0c;该版本并没有改动语法规范&#xff0c;它主要对运行时性能、编译工具链以及模块系统等进行了优化。另外&#xff0c;它还为TLS 1.3提供了opt-in支持&#xff0c;同时改进了对MacOS和iOS等系统的支持。 Go 1.12最大的更新亮点是改进了Go运行…

OpenCV 【十六】RNG随机数发生器putText绘制文字

1 目的 使用 随机数发生器类 (RNG) 并得到均匀分布的随机数。 通过使用函数 putText 显示文字。 第一步是实例化一个 Random Number Generator&#xff08;随机数发生器对象&#xff09; (RNG): RNG rng( 0xFFFFFFFF ); 初始化一个 0 矩阵(代表一个全黑的图像), 并且指定它…

分享一段Java搞笑的代码注释

原文&#xff1a;http://www.cnblogs.com/xdp-gacl/p/4198935.html // _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // …

视频写操作,通道分离与合并

#include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> using namespace std; using namespace cv; int main() { // 视频读入与输出路径设置 string sourceVideoPath "..\\images\\test.avi"; st…

JAVA中的并发工具 -- CountDownLatch、CyclicBarrier、Semaphore

2019独角兽企业重金招聘Python工程师标准>>> CountDownLatchCountDownLatch允许一个或多个线程等待其他线程完成操作。 CountDownLatch的构造函数接受一个int类型的参数作为计数器&#xff0c;如果你想等待N个点完成&#xff0c;这里就传入N。 当我们调用CountDownL…

OpenCV 【十七】离散傅立叶变换

目录 1 key 2 原理 3 实例 3代码 4运行结果 5应用举例 1 key 什么是傅立叶变换及其应用? 如何使用OpenCV提供的傅立叶变换? 相关函数的使用&#xff0c;如&#xff1a; copyMakeBorder(), merge(), dft(), getOptimalDFTSize(), log() 和 normalize() . 简单点说就是…

ubuntu下nginx+php5的部署

ubuntu下nginxphp5环境的部署和centos系统下的部署稍有不同&#xff0c;废话不多说&#xff0c;以下为操作记录&#xff1a;1&#xff09;nginx安装rootubuntutest01-KVM:~# sudo apt-get update && sudo apt-get upgraderootubuntutest01-KVM:~# sudo apt-get install…

图像质量评价,图片放大和缩小

#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <iostream>using namespace cv;using namespace std;// PSNR 峰值信噪比计算 返回数值为30-50dB 值越大越好double PSNR(con…

软件开发--深入理解程序的结构

程序由不同的段构成(代码段&#xff0c;数据段)1.程序的静态特征就是指令和数据2.程序的动态特征就是执行指令处理数据 A.段传统上&#xff0c;一个程序一般会有这几个段:.text 、.data、.bss段a.如果处理器由内存管理单元&#xff0c;那么可执行程序被加载到内存以后&#xff…

OpenCV 【十八】图像平滑处理/腐蚀与膨胀(Eroding and Dilating)/开闭运算,形态梯度,顶帽,黑帽运算

图像滤波总结&#xff08;面试经验总结&#xff09;https://blog.csdn.net/Darlingqiang/article/details/79507468 目录 part one 图像平滑处理 1原理 2代码 3效果 part two 腐蚀与膨胀(Eroding and Dilating) 1原理 2代码 3运行结果 part three更多形态学变换 1 原…