❶ 如何高逼格玩转场景化营销
在ASP.NET网站里(也包括其他有web.config, app.config)的.NET工程里,读AppSettings的值是个很常见的场景。比如: <add key="EnableAzureWebTrace" value="true"/> 在代码里读的时候就会用到: ConfigurationManager.AppSettings["EnableAzureWebTrace"]; 这个[]索引器返回的是string类型。所以下一步咱们通常需要类型转换才能在代码里拿来用。比如这个例子里,咱们就要转换成bool。其他时候,可能要转换为int等类型。 string enableAzureWebTraceConfig = ConfigurationManager.AppSettings["EnableAzureWebTrace"]; bool enableAzureWebTrace = bool.Parse(enableAzureWebTraceConfig); if(enableAzureWebTrace) { // do some logic } 但问题是,config文件的值对于咱们代码来说是不稳定因素,不可控的,这里拿回来的string未必能正确转换格式。所以通常会用TryParse方法来防爆: string enableAzureWebTraceConfig = ConfigurationManager.AppSettings["EnableAzureWebTrace"]; bool enableAzureWebTrace = false; if (bool.TryParse(enableAzureWebTraceConfig, out enableAzureWebTrace) && enableAzureWebTrace) { // do some logic } else { throw new ConfigurationException("EnableAzureWebTrace value must be true of false."); } 当然,不要忘了一点。读出来的string有可能首先就是空的。所以又得加上对string的判断,并且考虑到ConfigurationManager.AppSettings[]索引器本身可能会爆,所以还得加try-catch,最终代码就变成这样了: try { string enableAzureWebTraceConfig = ConfigurationManager.AppSettings["EnableAzureWebTrace"]; if (!string.IsNullOrEmpty(enableAzureWebTraceConfig)) { bool enableAzureWebTrace = false; if (bool.TryParse(enableAzureWebTraceConfig, out enableAzureWebTrace) && enableAzureWebTrace) { // do some logic } else { throw new ConfigurationException("EnableAzureWebTrace value must be true of false."); } } } catch (ConfigurationException ce) { // error handling logic throw; } 这样的代码非常没有逼格,重用性很差,如果自己的config里面AppSettings比较多,或者一个settings在程序里到处被用,显然不应该每次都把这样的代码到处复制。所以封装一下呗: public bool IsEnableAzureWebTrace() { try { bool enableAzureWebTrace = false; string enableAzureWebTraceConfig = ConfigurationManager.AppSettings["EnableAzureWebTrace"]; if (!string.IsNullOrEmpty(enableAzureWebTraceConfig)) { if (!bool.TryParse(enableAzureWebTraceConfig, out enableAzureWebTrace)) { throw new ConfigurationException("EnableAzureWebTrace value must be true of false."); } } return enableAzureWebTrace; } catch (ConfigurationException ce) { // error handling logic return false; } } 现在要用到EnableAzureWebTrace的地方都只要调用public bool IsEnableAzureWebTrace()就行了,就把如何读config的逻辑抽离了。重构的目的是,万一以后读config的机制变了,只 要改这一处。不用到处改。但是,重构的粒度还不够。这个方法只能用来读EnableAzureWebTrace这一个设置。要通用一下,让它也能 读其他bool类型的设置。把key单独的抽出来变成参数: public bool GetBooleanConfiguration(string key) { try { bool val = false; string rawConfigValue = ConfigurationManager.AppSettings[key]; if (!string.IsNullOrEmpty(rawConfigValue)) { if (!bool.TryParse(rawConfigValue, out val)) { throw new ConfigurationException(string.Format("{0} value must be true of false.", key)); } } return val; } catch (ConfigurationException ce) { // error handling logic return false; } } 但是这还不够,因为这个方法只能满足于bool类型的config,咱们希望有个公用的方法,能读取其他类型。这时候就需要用泛型了。把返回类型给抽离出来。 难点在于,每种数据类型的类型转换写法不一样。比如bool类型是bool.TryParse,int类型是int.TryParse,怎么把这部分逻辑抽象出来呢? 一种办法是用C#本身的类型转换: (T) Convert.ChangeType(rawConfigValue, typeof (T)); 另一种是把类型转换的逻辑作为委托加在方法的参数里,这样就用lambda表达式去传,咱比较偏向这种方法,因为方法的调用者能非常清晰的知道“该干嘛,该怎么干”。 这时候,如果因为非法类型转换爆,是得让调用者知道的。所以个人偏向把TryParse改为Parse,死就要死个明白。 public T GetConfiguration<T>(Func<string, T> parseFunc, string key) { try { T val = default(T); string rawConfigValue = ConfigurationManager.AppSettings[key]; if (!string.IsNullOrEmpty(rawConfigValue)) { return parseFunc(rawConfigValue); } return val; } catch (ConfigurationException ce) { // error handling logic return default(T); } } 现在,调用这个方法就能这样去写: GetConfiguration<bool>(bool.Parse, "EnableAzureWebTrace"); 看起来已经很牛逼了。但其实还不够。考虑到之前说的config值为空字符串的问题,安全一点的做法是,当遇到空字符串时候,返回一个默认值。因为 这种错误,并不是key不存在的错误,而是key存在,但是值没填。非法值是应该认为错误的。但是空值个人认为更应该处理为一种“警告”,是应该有 fallback的策略的,而非不可饶恕的错误。为了返回默认值,咱们可以多加一个委托。 public T GetConfiguration<T>(Func<string, T> parseFunc, Func<T> defaultTValueFunc, string key) { try { string rawConfigValue = ConfigurationManager.AppSettings[key]; return !string.IsNullOrEmpty(rawConfigValue) ? parseFunc(rawConfigValue) : defaultTValueFunc(); } catch (ConfigurationException ce) { // error handling logic return default(T); } } 现在,调用者就能灵活处理遇到config为空时候的默认值了: GetConfiguration<bool>(bool.Parse, () => false, "EnableAzureWebTrace"); 但是如果每次都在条件判断里写上面那样的语句是挺麻烦的,在一般的系统开发中,常常会用一个管理配置的Settings类来对应 Web.config里的设置表,维护这个关系。为了使用方便,咱们会把每个Settings的名字,也就是key,作为属性去暴露给调用者,于是就能 这样写: public bool EnableAzureWebTrace { get { return GetConfiguration<bool>(bool.Parse, () => false, "EnableAzureWebTrace"); } } 以为装逼结束了吗?当然不行!没发现,属性名称和传进去的string类型的key名称是重复的吗?这样写代码是不是有点蛋疼?而且最惨的是, 在VS2015,C#6.0之前(也就是下版本的C#),string这种东西,要是写错了是编译不出来的,所以应该尽量避免用string传 key。经常会发生改了属性名,没有一起改string值的悲剧。比如MVVM框架的RaisePropertyChanged(string)就经常坑 爹(题外话)。。。 好在,.NET4.5有个CallerMemberName特性,意思是”调用咱的方法叫什么名字”,就能帮咱们把这个string参数撸掉。 所以,只需要把方法签名里的string key改成: public T GetConfiguration<T>(Func<string, T> parseFunc, Func<T> defaultTValueFunc, [CallerMemberName]string key = "") 这样这个方法被调用的时候,key就会自动赋值为调用它的方法或属性名。然后,刚才的那个属性就能够这样去写: public bool EnableAzureWebTrace { get { return GetConfiguration<bool>(bool.Parse, () => false); } } 以为装逼真的结束了吗?还有最后一步。万一要是碰到有些情况,属性名真的和appSettings里的key名字不一样怎么办?为了灵活处理这种 边缘情况,还可以加个参数,强撸这种名称不一样的情况,如果这个参数被赋值了(下面的supressKey),就用它去读config而不用传入 的key。 下面给出咱博客里读AppSettings的通用代码: private T TryGetValueFromConfig<T>(Func<string, T> parseFunc, Func<T> defaultTValueFunc, [CallerMemberName]string key = "", string supressKey = "") { try { if (!supressKey.IsNullOrEmptyOrWhiteSpace()) { key = supressKey; } var node = ConfigurationManager.AppSettings[key]; return !string.IsNullOrEmpty(node) ? parseFunc(node) : defaultTValueFunc(); } catch (Exception ex) { Logger.Error(string.Format("Error Reading web.config on AppSettings node: {0}", key), ex); return default(T); } } 现在,就能灵活装逼了,给几个例子: string类型,属性名和key不一样,默认值“FileSystemImageProvider”: public string PostImageProvider { get { return TryGetValueFromConfig(_ => _, () => "FileSystemImageProvider", supressKey: "ImageProvider"); } } bool类型,默认值想要true public bool { get { return TryGetValueFromConfig(bool.Parse, () => true); } } int类型,默认值为20 public int { get { return TryGetValueFromConfig(int.Parse, () => 20); } }
❷ 怎么实现场景化营销求介绍
(一)制定正确的品牌策略
定位产品的目标群体,根据产品的档次、收益、附加值等,找到相对应的投放人群。利用多媒体平台,有效投放信息。好的场景化营销,就是在合适的时间、合适的地点、将合适的产品以合适的方式提供给合适的人。
(二)设计场景化话题
1.善于运用多元化场景营销
场景化营销看似简单,实则紧密的将金融产品与各种生活场景联系起来,给用户以使用提示,从而达成成交。
话术示例:“金融IC卡”的场景化营销
当您逛街的时候,用我们的银行卡可以在多家“惠生活”商圈消费。
当您乘坐公交的时候,用我们的银行卡可以打折。
当你在机场等候的时候,用我们的银行卡可以出入VIP休息室。
给客户多种具体可感的设想与选择,是场景化营销的重要原则。
2.利用大数据,找准不同圈层用户的场景共鸣
移动APP、网点机器人与智慧柜员机的使用,让银行与客户的联系更为紧密,交流也更为便捷。围绕客户的输入信息、搜索信息、获得信息,构建了以"兴趣引导+海量曝光+入口营销"为线索的网络营销新模式。
(1)刚刚走上工作岗位的年轻白领
输入信息 搜索信息 获得信息
王小姐;工作一年半;月入五千。 靠谱理财:活期利息较高的银行 ①该客户缺乏理财知识②需要“短期”理财
输入信息
搜索信息
获得信息
王小姐;工作一年半;月入五千。
靠谱理财:活期利息较高的银行
①该客户缺乏理财知识
②需要“短期”理财
兴趣引导:此时为客户的独立生活期,这个阶段的特点是工资收入比较低,且花销不算小,这个时期理财的主要手段是努力寻找高收入的工作。因此可以提高风险较大、报酬较高的投资工具的比重,比如股票、股票型基金;剩余的可以进行一些安全投资,比如定期储蓄,债券基金等。
海量曝光:借助智慧柜员机远程展示我行的短周期的各种理财产品,以及活期利息较高的银行卡。
入口营销:王小姐,您好,您刚刚工作,我们给您的建议是50%投资股票型基金,30%用于定期存款、货币基金,20%用于活期存款。(展示该行基金,存款)
(2)结婚不久的准父母
输入信息 搜索信息 获得信息
张先生;工作五年;和妻子结婚半年,是一名准爸爸。 保本保值、稳定增长的理财产品。 ①该客户为“稳健型”②重视“保值性”
输入信息
搜索信息
获得信息
张先生;工作五年;和妻子结婚半年,是一名准爸爸。
保本保值、稳定增长的理财产品。
①该客户为“稳健型”
②重视“保值性”
兴趣引导:新婚家庭建设初期消费需求旺盛,不宜过于分散的投资。可将家庭结余资本等比例投资于股票或基金、保险。在选择保险时,可优先选择较低缴费的健康险、意外险等适宜险种。
海量曝光:借助智慧柜员机远程展示我行的“稳健型”理财产品,以及保值性较高的基金。
入口营销:张先生,您结婚不久,此时应该考虑家庭建设,做好家庭理财的整体规划。我们建议您做40%的股票基金,30%的保险,20%的存款。(展示该行基金,保险和存款)
(3)中学孩子的母亲
输入信息 搜索信息 获得信息
赵女士;财务工作者、月入2w、一名中学生的母亲。 稳妥投资抵抗风险类的金融产品。 ①排斥“风险类投资”②潜在的保险营销对象
输入信息
搜索信息
获得信息
赵女士;财务工作者、月入2w、一名中学生的母亲。
稳妥投资抵抗风险类的金融产品。
①排斥“风险类投资”
②潜在的保险营销对象
兴趣引导:这个阶段,家庭的收入支出稳定同比增长,理财难度加大,重点进行稳妥投资。要以子女抚育支出和家庭资产增值为核心拟定理财目标。比如可适当关注回报稳定的房产,也可以置备一些抵抗风险的黄金。
海量曝光:借助智慧柜员机远程展示我行的长周期保本型理财,或者是贵金属和一些保险产品。
入口营销:赵女士,您好,咱们这个年龄的重点理财方向为子女教育和保险医疗。在这里,我建议您做30%的房地产,30%的保险,30%的存款,也可以置备10%的黄金用来抵抗风险。(展示该行保险、存款、贵金属)
(三)场景化营销“四步走”
第一步:心理洞察。明确自己的金融产品满足客户的需求是什么,他们为何会产生这样的需求,分析他们的心理动机和心理状态。心理洞察就是对客户的初探,是场景化营销过程的起点也是重点。
第二步:场景设置。在客户心理洞察之后,进行场景的设置或选择,通过场景来将消费者带入到营销所需要的心理状态。而场景设置的核心是过程中的交流环节,通过沟通交流才能让客户慢慢的融入到该场景当中,并给予客户及时的心理反馈,才能更有效的对客户的心理进行刺激。
第三步:心理强度。要客户进入某种心理状态并激发出对我们产品的强烈的需求动机。而这种强度可以通过互动交流的设置来完成。
第四步:行为引导。在成功将消费者引导形成到某种心理状态后,即可触发客户的行为装置。而此时我们需要进行消费者行为的引导,来实现我们的营销目标。
场景化营销示例(理财为例)
第一步 第二步 第三步 第四步
银行理财主打安全优势,也就是说银行满足的是客户安全保险的理财需求。而客户在受到刺激或感受到害怕的时候,对于安全的需求是最急迫的。也就是说营销人员需要让客户进入恐惧的心理状态,并且使其产生消除恐惧的心理动机。 基于以上的心理洞察,银行选择了“客户一味的追求高收益,选择安全系数低的P2P理财”的案例,并在场景中进行诸如与“黑理财”的对话互动,从而刺激白领的恐惧心理。 在整个的场景中,使用了多组的“惨痛教训”来不断的刺激客户的恐惧心理,使之达到足够的强度,从而产生迫切地想要消除这种恐惧心理的动机。(运用网络平台,搜集风险防范案例,做到营销有理有据。) 在最后,推出银行理财,对目标消费者的行为进行引导,实现自己的营销目标。
第一步
第二步
第三步
第四步
银行理财主打安全优势,也就是说银行满足的是客户安全保险的理财需求。而客户在受到刺激或感受到害怕的时候,对于安全的需求是最急迫的。也就是说营销人员需要让客户进入恐惧的心理状态,并且使其产生消除恐惧的心理动机。
基于以上的心理洞察,银行选择了“客户一味的追求高收益,选择安全系数低的P2P理财”的案例,并在场景中进行诸如与“黑理财”的对话互动,从而刺激白领的恐惧心理。
在整个的场景中,使用了多组的“惨痛教训”来不断的刺激客户的恐惧心理,使之达到足够的强度,从而产生迫切地想要消除这种恐惧心理的动机。(运用网络平台,搜集风险防范案例,做到营销有理有据。)
在最后,推出银行理财,对目标消费者的行为进行引导,实现自己的营销目标。
当然,场景化营销只是营销环节中的一个小点,要想做好营销,还得多措并举。
❸ 什么是场景化什么是场景化营销
关于场景化营销,其来实生活中源大部分时间我们都是活在场景下的,如果按过去品牌理论来推导,场景就是一种心智影响力。一个企业或一个品牌通过推广他的“价值”来吸引人们关注从而实现购买消费的持久性。所采取的方式有很多,广告、公关乃至促销行动等不一而足。这种说法被大多数企业主乃至消费者所熟知。而移动互联网时代人们不断刷新认知,把思维的外延扩大到全新的概念里,其实也不是什么新鲜事。
❹ 场景化营销是什么求举例说明!!!
简单来说场景化营销就是判断消费者当下情境的需求,然后给用户推送相应的品专牌内属容。举例说明:某全国连..锁火锅店,需要进行节日火锅优惠券的发放,从而吸引更多用户到店用餐。例如光音网络旗下广告家分析火锅店的需求后,利用商用WiFi资源为其进行场景化营销。广告家通过人群、场景、时间段多维度来分析用户匹配系数,分析用户的价值。对于匹配系数高的,高竞价多频次投放广告;匹配系数中的,正常出价正常频次投放广告;匹配系统低的,不出家或者低价低频次投放广告。据了解,相关的广告点击率达1.2%,峰值转化率1.8%。能提高预算利用效率,在有限的广告预算下,最大化广告的ROI值。
❺ 除了星巴克 用星说 还有其他的成功场景化营销案例吗
你好,成功的抄场景化营销案例还有:
宿务航空“雨代码”案例。2.WWF全球变暖菜单案例。3.阿尔山环保手写瓶案例。
4.麦当劳鸡翅优惠风暴案例。5.英国百货Harvey Nichols圣诞节“自私”促销案例。
6.Math Paper Press纸质书永不离线案例。
❻ 什么是金融场景化
实体经济和金融服务的边界会逐渐消失,金融服务直接跟随场景需求而动,无论是用户还是商家,都可以在同一个平台满足所有的需求。
❼ 什么是互联网金融场景化
随着来互联网技术的快速发展,互联网源金融已经从早期金融产品的搬运工发展到为客户进行资产配置和财富管理,并步入“场景化”金融时代。
这种“场景化”趋势表现在:一方面客户在支付、消费、水电煤缴费等生活、消费场景中,金融服务悄无声息地融入了每个人的生活;另一方面,以往理财服务一般要通过银行、金融公司进行购买,而今诸多金融理财服务主动“上门”,通过搭建各类场景,潜入人们的生活。即便是相同的金融产品,也可通过不同的场景走进用户生活。
在松果互联网金融目前的案例中,有一个合作方是长沙地铁,其上线了名为 “盘缠” 的手机 app,让乘客通过近场支付刷手机进站,同时将乘客的预存款对接了货币基金,相当于地铁公司让出这部分沉淀资金,由用户自己拿去获取收益。
以前地铁卡是非实名的,通过这种方式,就能了解乘客的许多信息,便于把衍生业务做起来,比如地铁周边的商圈都可以用 “盘缠” 来支付。在这种合作中,就是地铁公司提供场景,松果来提供接口。
只要有场景,松果都可以帮助其对接金融机构,在完成用户界面的封装后,很快就能实现流量变现。”
❽ 银行营销情景演练案例
曼曼姑娘,是你吗???哈哈哈 竟然找到你的这个了。
❾ 什么是金融场景化
就是把金融带入消费者的具体生活化场景中,有生活场景和背景的支撑。