用户篇|改变用户对你品类认知的默许选项足球

为啥有些品牌打了N多广告,告诉用户产品的裨益是怎么着,可用户就不买单呢?

 在gis中,你借使用js来写热点图
不依靠后台怎么搞,as的话比较便于有对应的类库甚至官方都有。而且用js不借助arcgis公布rest服务,(注:热点图能够凭借服务的格局发布,arcgis
for
javascript有对应的api接济的),这年就比较麻烦了,首先表明下热门图是吗

大概用户并未这么些供给,只怕用户没有这么些购买力,但更有十分大大概的是,用户觉得未有这几个供给。

人心向背图是以点的样式显得,通过补全周围转移颜色也会相应的调整渐变,类似于足球有个别人的活动范围这种,笔者找了下有个heapmap能够兑现heapmap.js和heapmap-arcgis.js

部分用户会说,小编用5块的牙膏挺好的,没要求换到二伍块的。

  因为arcigs for javascript api 是以dojo为底蕴写的,所以加载类库格局以下

部分用户会说,作者一度喝惯怡宝,挺好的,没供给换农夫山泉。

 1   <script type="text/javascript">
 2         var djConfig = {
 3             parseOnLoad: true
 4 
 5 
 6         };
 7     </script>
 8 
 9     <script src="jslibary/heatmap.js"></script>
10     <script src="jslibary/heatmap-arcgis.js"></script>

壹部分用户会说,笔者就喜爱苹果,Jobs那是自作者偶像,此外手机都靠边站。

  写了工具类去选取这么些类库

见状没,不是说这么些产品好,用户就会购买。

  1 /**
  2  * Created by haibalai on 2015/9/23.
  3  * 管理热点图展示 关闭 这里默认以社区为单位 url可改 热点图需要在主页面加上热点 div层 类似map的div
  4  * 这个版本先以一个xml来展示 以后改为json的格式
  5  */
  6 var HeatLayerManager = function()
  7 {
  8     var map;
  9 
 10     var heatLayer;
 11 
 12     var graphicLayer;
 13 
 14     var polygonTemp;
 15 
 16     var queryVo= new QueryVO();
 17 
 18     var ajaxTool;
 19 
 20     var locateParameter = new LocateParameter();
 21 
 22     var symbolTool;
 23 
 24     var isMouseInfo = true;
 25 
 26     //查询社区的url来覆盖 人口信息
 27     var paramBackFun;
 28     function renderQuery(queryVo1,polygon,roundFlag,paramBackFun1)
 29     {
 30         paramBackFun = paramBackFun1;
 31         var layerName = queryVo1.layerName;
 32         graphicLayer.clear();
 33         var url = locateParameter.getUrl(layerName);
 34         if(url != "")
 35         {
 36             var querytask = new esri.tasks.QueryTask(url);
 37             var query = new esri.tasks.Query();
 38 
 39             if(layerName != "shi")
 40             {
 41                 query.geometry = polygon;
 42             }
 43             else
 44             {
 45                 query.where = "FID >= 0"
 46             }
 47             query.returnGeometry = true;
 48             query.outSpatialReference = map.spatialReference;
 49             if(roundFlag == "false")
 50             {
 51                 query.spatialRelationship = esri.tasks.Query.SPATIAL_REL_CONTAINS;
 52             }
 53             query.outFields = ["*"];
 54             querytask.execute(query, handle);
 55         }
 56     }
 57 
 58 
 59 
 60     function handle(idResults)
 61     {
 62         graphicLayer.clear();
 63 
 64         var param = new Object();
 65         param.codearr = [];
 66         for (var i = 0, il = idResults.features.length; i < il; i++)
 67         {
 68             var idResult = idResults.features[i];
 69 
 70             var polygon = idResult.geometry;
 71 
 72             var gra = new esri.Graphic(polygon);
 73 
 74             var attributes = idResult.attributes;
 75 
 76             param.codearr[i] = attributes[locateParameter.getCodeName(queryVo.layerName)];
 77 
 78             var graattribute = new Object();
 79             graattribute["code"]  = attributes[locateParameter.getCodeName(queryVo.layerName)];
 80             gra.setAttributes(graattribute);
 81             gra.setSymbol(symbolTool.getSymbol("heat"));
 82             graphicLayer.add(gra);
 83         }
 84         paramBackFun(param);
 85 
 86     }
 87 
 88     //查询java后台 组织json参数
 89     function ajaxQuery(param)
 90     {
 91         param.startDate = queryVo.startDate;
 92         param.endDate = queryVo.endDate;
 93         param.layerName = queryVo.layerName;
 94         param.tjfs = queryVo.tjfs;
 95         var str =   JSON.stringify(param);
 96 
 97         //alert("ajaxQuery-param: "+str);
 98         //--------------------------------------测试环境用
 99         ajaxTool.getLiuDongData1(str,ajaxBack);
100         //-------------------------------------
101 
102 
103         //--------------------------------------真实环境用
104        // ajaxTool.getLiuDongData(str,ajaxBack);
105         //-------------------------------------
106     }
107 
108     function ajaxBack(obj,num1)
109     {
110         //组装 map对象便于遍历graphic
111         if('2'==queryVo.tjfs){
112             alert("时间段");
113             var arr = obj.codearr;
114 
115         }else{
116             var arr = obj.codearr;
117             var mapobj = new Object();
118             for(var i = 0, l = arr.length; i < l; i++)
119             {
120                 var arrobj = arr[i];
121                 mapobj[arrobj.CODE] = arrobj;
122                 //alert("ajaxBack: "+arrobj.CODE);
123             }
124 
125             //--------------------------------------真实环境用
126             //var graarr = graphicLayer.graphics;
127             //var dataarr = [];
128             //for(var j = 0, m = graarr.length; j < m; j++)
129             //{
130             //    var gra = graarr[j];
131             //    var codeValue = gra.attributes["code"];
132             //    // 暂时码值转换
133             //    var codeobj;
134             //    if("shi"==queryVo.layerName){
135             //        //alert(changeAreaCode(codeValue));
136             //        codeobj = mapobj[changeAreaCode(codeValue)];
137             //    }else{
138             //        codeobj = mapobj[codeValue];
139             //    }
140             //    //alert("codeValue: "+codeValue);
141             //    if(codeobj!=null){
142             //        var pcount = codeobj.PCOUNT;
143             //        var point  = gra.geometry.getCentroid();
144             //        var feobj = {
145             //            attributes: {count:Number(pcount)},
146             //            geometry: {
147             //                spatialReference: map.spatialReference,
148             //                type: "point",
149             //                x: point.x,
150             //                y: point.y
151             //
152             //            }
153             //        }
154             //        dataarr.push(feobj);
155             //    }
156             //    gra.attributes["codeVaue"] = codeobj;
157             //}
158             //-------------------------------------
159 
160             //--------------------------------------测试环境用
161                     var graarr = graphicLayer.graphics;
162                     var dataarr = [];
163                     var pcountnum = 0.1;
164                     for(var j = 0, m = graarr.length; j < m; j++)
165                     {
166                         var gra = graarr[j];
167                         var codeValue = gra.attributes["code"];
168                         var codeobj = mapobj["440304008001"];
169                         var pcount = pcountnum;
170                         var point  = gra.geometry.getCentroid();
171                         var feobj = {
172                             attributes: {count:Number(pcount)},
173                             geometry: {
174                                 spatialReference: map.spatialReference,
175                                 type: "point",
176                                 x: point.x,
177                                 y: point.y
178 
179                             }
180 
181                         }
182                         if(num1 == undefined)
183                         {
184                             num1 = 0.01
185                         }
186                         pcountnum = pcountnum + num1;
187                         dataarr.push(feobj);
188 
189                         gra.attributes["codeVaue"] = codeobj;
190                     }
191             //-------------------------------------
192 
193             heatLayer.setData(dataarr);
194         }
195     }
196 
197     /**
198      * 外界返回鼠标移动查询填充图层
199      * @returns {*}
200      */
201     this.getHeatLocateLayer = function()
202     {
203         return graphicLayer;
204     }
205 
206     /**
207      * 外界返回热点图层
208      * @returns {*}
209      */
210     this.getHeatlayer = function()
211     {
212         return heatLayer;
213     }
214 
215 
216     /**
217      * 初始化热点图
218      * @param healayerdiv 主页heatlayer div的id
219      * @param map1
220      */
221     this.init = function initHeatLayer(healayerdiv,map1)
222     {
223         map = map1;
224         heatLayer = new HeatmapLayer({
225             config: {
226                 "useLocalMaximum": true,
227                 "radius": 40,
228                 "gradient": {
229                     0.45: "rgb(000,000,255)",
230                     0.55: "rgb(000,255,255)",
231                     0.65: "rgb(000,255,000)",
232                     0.95: "rgb(255,255,000)",
233                     1.00: "rgb(255,000,000)"
234                 }
235             },
236             "map": map,
237             "domNodeId": healayerdiv,
238             "opacity": 0.85
239         });
240 
241 
242         graphicLayer = new esri.layers.GraphicsLayer();
243         map.addLayer(heatLayer);
244         map.addLayer(graphicLayer);
245 
246         ajaxTool = new AjaxTool();
247         symbolTool = new SymbolTool();
248 
249         // map.resize();
250 
251     }
252 
253     this.ajaxBackFun= function(obj,num1)
254     {
255         ajaxBack(obj,num1);
256     }
257 
258     /**
259      * 根据查询数据渲染热点图
260      * 现在可能是固定死的xml,下次 转json 可能要有参数 以后定
261      */
262     this.addRender = function(queryVo1,polygon)
263     {
264         addRenderFun(queryVo1,polygon,ajaxQuery)
265 
266     }
267 
268     //简化方法类 增加回调
269     function addRenderFun(queryVo1,polygon,paramBackFun1)
270     {
271         polygonTemp = polygon;
272         queryVo = queryVo1;
273 
274         renderQuery(queryVo,polygon,"false",paramBackFun1);
275     }
276 
277     /**
278      *
279      * @param queryVo1
280      * @param polygon
281      * @param paramBackFun1
282      */
283 
284     this.addRenderCallBack = function(queryVo1,polygon,paramBackFun1)
285     {
286         addRenderFun(queryVo1, polygon, paramBackFun1);
287     }
288 
289 
290     /**
291      * 清除热点图的数据
292      */
293     this.clearHeatLayer = function()
294     {
295         heatLayer.clearData();
296     }
297 
298     function changeAreaCode(code){
299         var resuCode="";
300         var areaCode = ["440305","440326","440306","440309","440308",
301             "440304","440303","440327","440317","440307"];
302         var mapCode = ["440305002","440306007","440306001","440306012","440308001",
303             "440304003","440303005","440307012","440307009","440307006"];
304         for(i=0;i<areaCode.length;i++){
305             if(code==mapCode[i]){
306                 resuCode = areaCode[i];
307                 break;
308             }
309         }
310         return resuCode;
311     }
312 
313 }

用户对某些项目标体会或购买行为,有叁个默许的选项;好比使用word打字,都会有3个暗中同意的书体,唯有当你改变暗中认可字体时,字体才会变动。

 

用户在未曾外力成效时,会一连未来的回味和表现。

用文章牌商,想要改变用户的购入行为,要先弄通晓目的用户对商户随地品类认知的暗许选项,才清楚该怎么去改变用户的思维和表现。

来看二种比较优异的购置行为:

复杂决策购买:用户买房时,会在网上搜集各大楼盘音信,如户型、地段、开发商、价格、对口高校,再仔细分析各类楼盘的优缺点,在大团结购买力范围力,选拔性价比最高、最合适的房屋,这些时间下来,最少多少个月,多的也许二、叁年。

简易决策购买:用户买水时,贰分钟就化解,TA恐怕从货架上高速选拔从前平昔买的村民山泉,也说不定随便从货架上挑1瓶水。

何以同样用户,购买行为差距会这么大呢?

因为用户对差别门类的关切度和插足度是见仁见智的

出席度是指用户为购买行为付出的时日、精力、脑力。

关怀度是指用户对有个别项目相关话题的小心。

参与度

高级参谋与度指:用户花大量时日/精力搜索品类相关新闻;用户对音信实行分拣、分析,仔细评估各类购买决策的得失,从而做出购买决策。

低插足度指:用户不会花或很少花精力搜集项目相关新闻;用户用某个简化的仲裁路径来引导购买决策,如看品牌(选择大牌子,而不去看清产品的好坏)、看价格(选取高价,一般认为高价代表高格调)、看产地(如法兰西共和国的朗姆酒、德意志的电子装备),而防止烧脑的利弊分析。

什么的购买决策用户插足度高吗?

对于风险高的购买决策,用户愿意花愈来愈多时光采访新闻、愿意仔细分析利弊做出明智的购买决策。

所谓的危害高,一方面指购买销售投入的金额巨大,壹旦出现风险,损失较大;另壹方面指,若决定不明智,后续恐怕带来本人不能够经受的结局,或持续的难为。

如房子,动辄投入上百万,二个普通家庭得付出半辈子的积蓄才能买卖,怎能不全家总动员,百里挑一啊?

再如孩子选择高校,想想怎么有房家庭愿意花数百、上千万的代价,就为买一套学区房,他们不能承受孩子输在起跑线上的咀嚼,带给本身的心境承受。

1体化来看,高级参谋与度产品一般是:高价值产品、身份象征型产品、心绪象征型产品、专业型产品、健康有关制品,例如高投入的房屋、代表个人身份的手表/手提式有线话机、代表激情连接的婚戒、相对规范的净水设备、健康有关的保健品等;而低加入度产品一般是:低价值产品、效率型产品,如壹瓶水。

关注度

高关心度指:用户积极搜索品类相关音讯;与品类相关消息更便于进入用户集中力;

低关心度指:用户不会主动寻找品类相关信息;与品类相关的音讯会被用户自行过滤掉,不能够进入用户稀缺专注力。

什么的品种音信用户关切度高吗?

话题性强的体系新闻,也正是,有社交货币属性的消息,用户关切度更加高。

如兴趣爱好:旅行、电影、篮球、足球等;

身价象征,房子、车子、快艇、股票等。

如与美有关的事物,化妆品、美妆品、服装、鞋帽等。

这个音讯都得以变成用户一般调换交流的谈话的资料,与这个谈话的资料相关的品种自带流量属性,更易于进入用户稀缺的注意力。

参与度VS.关注度

参预度和关心度都关乎到积极搜集项目相关的音讯,那五头到底有何界别吧?

还记得此前涉嫌的用户购买陆行为呢?

两边的分别在于,参加度是产生须要之后的行动,而关注度是发出须求此前的行路;而急需有三个供给条件,3个是急需,八个是购买力,有购买力的内需才构成真正的要求。

不少人都盼望有一台Ferrari,有购买力的用户可能就一向去实体店体验、购买了,而并未有购买力的用户只好平常多多关怀法拉利各个话题,虽说不曾拥有一台法拉利,可TA却对Ferrari的习性、参数、装饰、操控感如数家珍,卓殊想要壹台流行上市中黄的那台法拉利。某一天,那一个用户买彩票中了1000万,TA终于能够如愿如偿,买了那台新上市的深红法拉利。在此以前高关切获取的音信,帮忙用户连忙形成搜索、评估阶段,发生购买行为。

打探两方的概念和界别之后,来看怎么着选取两者对用户进行分类。

买卖行为类型 

动用二维象限,可以将用户的买卖行为分成四类:

理性购买:高关心度,高级参谋与度

比方来看,用户买房属于典型的理性购买。

感觉购买:高关注度,低加入度

举例来说来看,苹果是手提式有线电话机第一大品牌,某种程度上是地位表示与肯定,很多小伙子根本不假思索,就买了苹果。

标准购买:低关切度,高级参谋与度

比喻来看,用户买新房,装修厨房时购买厨电产品,就属于标准购买,用户日常根本不会关怀到抽油烟机,唯有装修须求购置时,才会随地打听,搜集消息,仔细权衡利弊,看哪家哪款抽油烟机最符合本人。因为只要购买不当,今后每一趟下厨都会十分受油烟苦恼,由此他会深度参预购买决策。

习惯购买/随机购买:低关怀度、低加入度

举例来看,用户直接买20元左右的飘柔洗发水,每一回洗发水用完了,她都下发现的去京东或小区楼下的商城买飘柔洗发水,那曾经济体改为他的习惯购买。而即兴购买指,用户根本不在乎牌子是怎么,有哪些就随便拿什么,也足以看作某种另类的习惯购买。

通晓这种种认知和购举行为之后,经营销售人要应对多个难点:

现状:指标用户对本人的品类购买行为是哪1类?为何

对象:小编期望目的用户从这连串型变成哪类档次?

途径:小编该使用怎么着方法让用户改变认知和作为?

咱俩来看三个完全不相同的门类怎么着作答那四个难点:

纸巾

用户对纸巾的相似认知是:生活的一种必需品,消耗十分的快,要常购买,但也不供给太关心,主要正是维达和心相印两大品牌。

用户购买纸巾属于习惯购买,低关心度,低加入度。

若是,你是一家纸巾品牌的后来者,你会怎么着改变用户未来对纸巾的暗中认可选项呢?

有如此3个纸巾品牌——竹妃,主打客车概念是6箱竹妃纸=拯救一棵树,2年突破多个亿。

竹妃希望指标用户对纸巾的进货从习惯购买变成感性购买利用的点子是提议1个重中之重的股票总值:环境保护。建立纸巾与环境保护之间的联系,纸巾本来便是以树为原料,用户会活动建立双边的联络,从而刺激这一个认为环境保护更注重的用户,在采办纸巾时,不只是按从前习惯购买,而是想到环境保护,从而购买竹妃纸。

后进的纸巾除了将习惯购买转变为感性购买,还可以够向其它象限转移么?

还是能将用户从习惯购买变成正规购买,那亟需让用户阅览纸巾这几个事物虽小,但也是很标准的,涉及到分歧的质地、分裂的加工方法、不一样渲染格局等。

手机

手机是2个竞争激烈的多谋善算者行业,用户对手提式有线电电话机关怀度高,出席度低,已经形成固定的品牌忠诚。Samsung作为后起之秀超越前辈,刚进来那个市集时,希望让用户从感觉购买变为理性购买,选拔的章程是唤醒用户的心劲脑,让用户关怀手提式无线电话机的参数和性能。

201一年新品发表会上,雷军人列车出五款不等品牌手提式有线电话机的参数相比清单,让用户关注产品性价比,彰显出Samsung高性价比的优势。

这是3个行行业内部小品牌拦截大牌子常用的1种方式。

于今大家知道,依据关切度和插足度的高低,能够将用户的购入行为分为肆类;作为经营销售人的你,改变指标用户前,先要好好分析一下,用户对你的花色认知和进货有啥样暗中认可选项,同时要回答那七个难题:

现状:目的用户对小编的门类购买行为是哪1类?为啥?

对象:笔者期望指标用户从那体系型变成哪类档次?

路线:笔者该应用哪些方法让用户改变认知和行事?

无妨审视一下你所操作的档次,看看用户对那些项目标回味是怎么样的,看看该怎么回应下面一个难题,相信您肯定能够找到分裂的见地和新意。