整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaEE中,考勤(签到签退)功能的实现

到功能

1、数据库中要有相应的表,并创建相应的实体类,复写相关方法

2、在相关的jsp页面添加两个jsp按钮,用于签到与签退,并添加id属性

签到签退

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="<%=basePath%>" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
//给按钮signin绑定单击事件,实现签到功能
$(function(){
$("#signin").click(function(){
//alert("ok");
//发送ajax请求,完成签到.并通过回调函数显示结果
$.ajax({
url:"duty?method=signin",
type:"post",
dataType:"text",
success:function(data){
//显示签到结果
if(data==0){
$("#result").html("签到失败");
}else if (data==1) {
$("#result").html("签到成功");
}else {
$("#result").html("已经签到,无需重复签到");
}
}
});
});

//给按钮signout绑定单击事件,实现签退
$("#signout").click(function(){
//alert("ok?");
$.ajax({
url:"duty?method=signout",
type:"post",
dataType:"text",
success:function(result){
$("#result").html(result);
}
});
});

});



</script>
</head>

<body>

<div class="place">
<span>位置:</span>
<ul class="placeul">
<li><a href="#">考勤管理</a></li>
<li><a href="#">签到签退</a></li>
</ul>
</div>

<div class="formbody">

<div class="formtitle"><span>基本信息</span></div>

<ul class="forminfo">
<li><label> </label><input name="signinTime" type="button" class="btn" id="signin" value="签到"/> 每天签到一次,不可重复签到</li>
<li><label> </label></li>
<li><label> </label></li>
<li><label> </label><input name="signoutTime" type="button" class="btn" id="signout" value="签退"/>可重复签退,以最后一次签退为准</li>
</ul>

</div>
<div id="result"></div>

</body>

</html>

3、在servlet中编写签到相关方法

servlet方法

//考勤签到操作
public void signin(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

//获取session作用域中的emp对象,emp存放的是被考勤人信息,自行创建
Employee emp= (Employee) request.getSession().getAttribute("emp");
String empId=emp.getEmpId();
//调用业务层完成签到操作
DutyService ds=new DutyServiceImpl();
int n=ds.signin(empId);
//0失败 1成功 2已经签到

//无需页面跳转,直接响应结果(通常与ajax连用)
response.getWriter().println(n);
}
4、在service实现类编写签到的逻辑方法

业务实现类

截图勾线有误,其实进行在dao层进行了两个操作 1、查询是否签到的操作 2、保存签到信息的操作

@Override
 public int signin(String empId) {
  //判断用户是否已经签到
  Date now=new Date();//yyyyMMdd——>hhmmss
  java.sql.Date today=new java.sql.Date(now.getTime());//hhmmss
  boolean flag= dd.find(empId,today);//1、查询是否签到的操作
  
  //对返回的flag进行处理,true:已经签到,false没有签到,进行签到
  int n=0;
  if (flag) {
   return 2;
  } else {
   Duty duty=new Duty();
   //duty.setDtId(dtId);序列自增
   duty.setEmpId(empId);
   duty.setDtDate(today);
   DateFormat sdf = new SimpleDateFormat("hh:mm:ss");
   String signinTime= sdf.format(now);
   duty.setSigninTime(signinTime);
   
   //完成签到
   n=dd.save(duty);//2、保存签到信息的操作
   return n;//0失败 1成功
  }
 }

5、dao层实现类

dao层方法

@Override
public boolean find(String empId, Date today) {
//jdbc查询操作
//创建jdbc变量
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
//创建变量
boolean flag=false;
//默认情况为查不到
try {
//创建连接
conn=DBUtil.getConnection();
//创建SQL语句
String sql="select * from duty where empid=? and dtdate=?";
//创建SQL命令
ps=conn.prepareStatement(sql);
//给占位符赋值
ps.setString(1, empId);
ps.setDate(2, today);
//执行sql语句
rs=ps.executeQuery();
//遍历
if (rs.next()) {
flag=true;
//签到成功
}

} catch (Exception e) {
e.printStackTrace();
}finally{
//关闭变量
DBUtil.closeAll(rs, ps, conn);
}
return flag;


}
@Override
public int save(Duty duty) {
//添加操作
//创建sql语句
String sql="insert into duty values(seq_duty.nextval,?,?,?,null)";
//创建params变量集合
Object[] params={duty.getEmpId(),duty.getDtDate(),duty.getSigninTime()};

return DBUtil.executeUpdate(sql, params);
6、在原来的jsp页面中,编写ajax请求,处理从servlet传来的数据

jsp页面添加方法

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="<%=basePath%>" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">
//给按钮signin绑定单击事件,实现签到功能
$(function(){
$("#signin").click(function(){
//alert("ok");
//发送ajax请求,完成签到.并通过回调函数显示结果
$.ajax({
url:"duty?method=signin",
type:"post",
dataType:"text",
success:function(data){
//显示签到结果
if(data==0){
$("#result").html("签到失败");
}else if (data==1) {
$("#result").html("签到成功");
}else {
$("#result").html("已经签到,无需重复签到");
}
}
});
});

//给按钮signout绑定单击事件,实现签退
$("#signout").click(function(){
//alert("ok?");
$.ajax({
url:"duty?method=signout",
type:"post",
dataType:"text",
success:function(result){
$("#result").html(result);
}
});
});

});



</script>
</head>

<body>

<div class="place">
<span>位置:</span>
<ul class="placeul">
<li><a href="#">考勤管理</a></li>
<li><a href="#">签到签退</a></li>
</ul>
</div>

<div class="formbody">

<div class="formtitle"><span>基本信息</span></div>

<ul class="forminfo">
<li><label> </label><input name="signinTime" type="button" class="btn" id="signin" value="签到"/> 每天签到一次,不可重复签到</li>
<li><label> </label></li>
<li><label> </label></li>
<li><label> </label><input name="signoutTime" type="button" class="btn" id="signout" value="签退"/>可重复签退,以最后一次签退为准</li>
</ul>

</div>
<div id="result"></div>

</body>

</html>

签退功能

1、在servlet层编写签退相关方法(提前处理,ajax直接显示结果)

//考勤签退操作
public void signout(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

//获取session作用域中的emp对象
Employee emp= (Employee) request.getSession().getAttribute("emp");
String empId=emp.getEmpId();
//调用业务层完成签到操作
DutyService ds=new DutyServiceImpl();
int n=ds.signout(empId);
//0失败 1成功 2没有签到

//无需页面跳转,直接响应结果(通常与ajax连用)
response.setContentType("text/html; charset =utf-8");
PrintWriter out= response.getWriter();
if (n==1) {
out.println("签退成功");
} else if (n==0) {
out.println("签退失败");
} else {
out.println("尚未签退");
}
}
2、在service的实现类编写签退的逻辑方法

//考勤签退操作
public void signout(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {

//获取session作用域中的emp对象
Employee emp= (Employee) request.getSession().getAttribute("emp");
String empId=emp.getEmpId();
//调用业务层完成签到操作
DutyService ds=new DutyServiceImpl();
int n=ds.signout(empId);
//0失败 1成功 2没有签到

//无需页面跳转,直接响应结果(通常与ajax连用)
response.setContentType("text/html; charset =utf-8");
PrintWriter out= response.getWriter();
if (n==1) {
out.println("签退成功");
} else if (n==0) {
out.println("签退失败");
} else {
out.println("尚未签退");
}
}
3、dao层调用的方法与签到一致,无需添加 4、在原来的jsp页面中,编写ajax请求,处理从servlet传来的数据(result为签到签退按钮下的一个div的id用来显示考勤结果)

jsp页面中的添加的方法/函数

//给按钮signout绑定单击事件,实现签退
  $("#signout").click(function(){
   //alert("ok?");
   $.ajax({
    url:"duty?method=signout",
    type:"post",
    dataType:"text",
    success:function(result){
     $("#result").html(result);
    }
   });
  });

注:采取mvc架构模式

总结:

签到实现 1、点击签到按钮,跳转到签到的servlet,调用相关的方法 2、dao层首先去数据库查看用户是否签到,如果签到则返回true,如果没签到则返回false,并执行保存签到信息的方法。返回签到的结果0失败,1成功,2已签到,并将数据返回到servlet 3、servlet将数据直接响应给前台页面,jsp页面通过Ajax获取信息,更根据相应的值显示相应的提示语。

签退实现 1、点击签退按钮,跳转到签退的servlet,调用相关的方法 2、dao层首先去数据库查看用户是否签退,如果签到则返回true,如果没签到则返回false,并执行保存签退信息的方法。返回签退的结果0失败,1成功,2已签到,并将数据返回到servlet 3、servlet将数据直接响应给前台页面,jsp页面通过Ajax获取信息,更根据相应的值显示相应的提示语。


项目地址(手动复制下面地址到浏览器即可): shimo.im/docs/IaCeHAzWu80UoG45

指一算,入职已经一月有余,也参与了一两个项目,以前做学校项目的时候,对一个功能的取舍,很多时候都取决于“那个某某应用都有,那我们也放一下吧”之类的想法;但在“每个功能对于当前产品的受众是否有用,对产品未来的发展是否有积极意义”这一点上,却没有进行长足的思考。

例如:在近期的一个项目的设计中涉及到的“签到”功能,起初我并没有把这个功能放在心上,然而在对其进行设计的过程中,我发现,“签到”并非像大部分人想的那样,只是一个“放之四海而皆准”的惯用功能而已。

什么是“签到”

在互联网的浪潮来临以前,当人们说起“签到”二字时,联想起的不是每日打卡上线拿到的奖励,更多的可能是被惩罚支配的恐惧,不论是上课点名所占据的平时分,乃至每日上班的出勤率,都和签到的次数息息相关。

早期的签到多以人工手写登记的方式为主,用于记录人员的到场情况,便于登记者对提供的内容进行调整。

传统“签到”的使用场景

随着互联网的发展,“签到”逐渐在原先的意义基础上,弱化了“惩罚”的概念,扩宽了签到的时间维度(例如可以补签),同时增加演变出了促进用户活跃、刺激产品推广等更多新的用途。

综合来说,大部分的签到功能,本质上都是一种通过奖励(物质or心理)强化用户行为,从而培养用户使用习惯,最终达到推广产品/培养忠实用户的功能。

为什么要“签到”

在讨论一件事物的外化形态的时候,需要先弄明白其产生的本质原因。对于现在的App来说,“签到”功能随处可见。然而这样设计的原因是什么,又能够帮助使用者达到什么目的呢?

常见“签到”功能的目的

目的1:促进用户活跃度

说到“签到”,最常见的类型大概就是奖励型“签到”了。这一类型,大多都会给用户一些物质或精神奖励,来刺激用户重复启动产品,培养用户习惯,从而提升产品的活跃度。

许多产品还可以设置定时的签到提醒,在设定好的时间,通过推送提醒用户打卡,以防止用户错过各式各样的签到福利,举个栗子:

京东签到领“京豆”(左)&阴阳师签到奖励(右)

在京东商城中,通过连续启动app签到可以兑换京豆,京豆在实际消费中可直接用于支付订单,每100京豆可抵1元现金使用。而在游戏《阴阳师》中,每日登录摇签都会获得对应的奖励,而不论是商城还是游戏,相信大家都有过“本来只想看看消息,没想到一打开就根本停不下来”的经历。这种时候,设计者便达到了他的目的。

目的2:增加使用,提高营收

仅仅是简单地让用户打开App,并不能满足产品设计者。一个产品存在的价值,只有在它真正被用户使用的时候才能得到足够的体现。于是“签到”功能又承载了增加用户对产品业务的使用,提高产品营收的目标。

例如:上文提到的签到奖励“京豆”,还有《阴阳师》签到获得的红色达摩(注:快速升级式神经验的工具),都是为了让用户买的更多,玩的更多,刺激用户对产品的重复使用。

目的3:促进分享

以上提到的内容,主要是通过对“签到”行为给予积极的反馈,使用户在多巴胺的影响下产生预期的行为。而接下来这种签到形式,则是利用了用户自我实现层面的心理需求。

英语流利说的打卡页面

这种类型的签到往往是一个长期的、需要坚持的过程,并且可以为用户带来积极正向的影响。一些具有自我成长意义的签到内容可以满足用户的自我实现需求(自身技能的提高)以及尊重需求(分享后得到他人的夸赞、认同),同时也可以提高产品的曝光度。看着累计打卡天数的一天天增加,内心也会觉得很有成就感。

怎么做”签到”

在了解了“签到”产生的背景和原因之后,当我们要设计一个属于自己的签到功能的时候,需要考虑的内容有哪些呢?

“签到”功能的设计要素

因素1:启动方式

在以智能手机为媒介的互联网时代,打开“签到”的方式已经不仅仅局限于纸笔书写了,针对不同类型的产品,也有分别适用的签到方式。例如:对于单纯只需要用户登录便可以达到促活目的的产品(例如电商、游戏产品),可以在登录后自动弹出签到窗口。

对于具有一定工具性,用户需要完成任务才能体现平台价值的(例如学习平台、运动软件)则可以在任务完成后跳出签到内容,也可以将签到放在希望引导用户观看的一些内容界面,增加打开次数。

因素2:计算方式

大部分的“签到”累积天数的方式不外乎累计型和连续型两种,累计型签到指的是:断签后依然计算总天数,连续型则指断签后需要重新开始的计算方式。对于需要用户做比较长时间心理建设的签到内容(例如:学习等),使用累计型的会更合适,否则用户很容易出现“破罐破摔”,一旦断签就彻底放弃的情况。

因素3:签到周期

一般来说,我们可以把签到周期分为两种:

  • 一种是每天签到获得的奖励量级基本都相同,只有时间上可见的增加,这样用户可能很容易感到疲劳。
  • 另一种是在一定的时间周期内,连续签到所获得的奖励内容存在叠加与翻倍关系,每完成一个短周期,就可以获得一个大奖,增强新鲜感,但这样,一旦用户断签,带来的损失感也要比前一种大得多,用户不一定愿意重新开始,而是会彻底放弃。

因素4:反馈内容

对于签到的奖励内容该如何设定,这往往和产品希望培养的用户行为直接相关,例如:希望用户多购买东西,就可以多送优惠券,希望用户多分享,就可以赠送一些满足用户虚荣心的等级积分。根据反馈内容的不同,我们还可以将签到分成以下几种常见类型:

(1)物质激励型

物质激励型包含两种:

  • 一种是通过返还虚拟货币/积分等可消费用具,刺激用户使用,例如:上图提到的京豆、阴阳师,这种签到激励往往耗时较长,且有一定的运营成本,奖励的价值往往都比较低。同时过程中缺乏新意,且只能满足用户较低层次的需求。
  • 另一种则是先让用户付出少量的物质财富,保持一定周期的签到后可以获得更多的奖励。若失败,自己的付出会成为完成的人获得的奖励,例如:蜗牛睡眠中的“3天周期睡眠/早起挑战”。

蜗牛睡眠挑战计划

这类签到方式,具有游戏化的四个基本特性:目标、规则、反馈、自愿参与,让用户更容易坚持下去,甚至沉迷。但从心理学上来说,“失去”往往会带来不良的情感体验。

(2)精神激励型

这类签到,主要是利用等级、称号、曝光率等精神奖励刺激用户使用,例如:Keep的运动徽章,微博话题的签到热度排行等等,主要利用了人们对于自我实现和尊重等处于马斯洛需求三角上层的需求,大多数时候能带来分享效应,但对于获得奖励的门槛往往要求较高(例如:一定要完成学习/运动目标才可以签到)。

Keep运动徽章(左)& 微博超级话题签到排行(右)

(3)体验驱动型

这类签到,则是将“签到”作为产品的一种属性,使产品拥有了每天都需要被打开的原因。例如:网易蜗牛读书,每天免费读书一小时,虽然没有签到功能,但是将其内化成了用户每天必须打开它的理由。

蜗牛读书,每天一小时阅读时长免费领

这类将“签到”基因植入产品的方法可以很好地提高整个产品的活跃度,但这种功能是建立在用户有需求的基础上的,如果用户没有阅读的需求或倾向,免费时长再长可能也没有吸引力。

万物皆“签到”?我觉得不行

虽然“签到”已经成为了一个十分常见的功能,但并不意味着所有的产品都适合增加这个功能,以刺激用户无限地唤起主页面。

结合上文的一些分析,我们可以得出,适合设置“签到”功能的产品大多都具有以下特点:

适合设计签到的产品特点以及产品类型

例如以下几类应用:

1. 阅读类

这里的阅读类包括了小说阅读、漫画阅读平台,也包括了内容比较碎片化的新闻资讯阅读平台。对于内容产出者和平台来说,用户的活跃度是至关重要的,对于传统内容平台来说决定了作者的收入,对于资讯平台而言,越多的用户也能带来更多的广告投资,所以需要更多刺激用户活跃度的设置。

2. 金融类

金融类产品的收益曲线是每天都在变化的,即使没有签到奖励,用户大多时候每天都会进行查看,可以利用这一点给用户一些优惠/活动,吸引用户进行投资。

3. 社区类

社区产品想要长期活下去,就需要提高用户自主运营参与的程度,在获得用户活跃度保持社区活力的同时,还可以利用LBS技术,进行精准的运营活动地域投放。

4. 电商类

电商类产品都希望用户尽量多地浏览商品,增加下单内容,签到和常用的大促手段有异曲同工之妙,都是为用户创造更多的购买可能。

相比之下,以下类型的应用则不太适合使用“签到”功能:

不适合强加“签到”功能的应用特点

例如:杀毒软件、天气类软件,这类软件大多数时候是在后台中完成自己的任务,对用户的生活主要起到辅助作用的,用户对这类产品没有重复唤起的需求,太过强调自己的存在感反而可能招致用户厌烦。

设想一下如果一个杀毒软件有事没事总是弹出提醒让你每日签到,恐怕会被立马送进回收站吧…

综上,这就是我在前辈们的思考基础上对于“签到”这个功能得出的一些想法,欢迎对设计感兴趣的朋友们一起来讨论呀~

参考内容:

兰道锅,在设计签到功能的时候,我在想什么? | 人人都是产品经理. (2018). Retrieved from http://www.woshipm.com/pd/1025518.html

马璐,如何让签到成为提升用户活跃度的利器 | 人人都是产品经理(2018). Retrieved from http://www.woshipm.com/pd/992382.html

活动盒子,“打卡签到”:APP用户运营制胜法宝 | 人人都是产品经理. (2018). Retrieved from http://www.woshipm.com/operate/491571.html

作者:rt,公众号:未知素设计

本文由 @未知素设计 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自 Pexels,基于 CC0 协议

源|活动盒子-APP活动运营工具(huodonghezi.com)

做运营的人很爱讲的一件事情是“提高用户粘性”,换句话说就是培养用户习惯吧。也就是让用户在APP中养成一种习惯,慢慢把其变成一种自然。那么这种习惯要怎么培养呢?

盒子菌jio得签到功能是培养用户习惯的好办法,通过签到吸引用户每天去完成打开APP的动作。同时,在签到功能中嵌入发券、任务等,还可以引导用户关注近期APP推出的新功能等。

废话不多说了,下面就进入正题。先来了解下什么是签到功能?

签到功能是指用户每天在APP内进行“签到”,表明用户当天打开或登录某个APP并进行一些操作。用户通过签到的行为可赚取积分、经验值以及兑换奖品等,提升产品体验很有效的附加价值,也提升了产品的流量。流量越大,即用户活跃度越高,我们通常用这一指标来衡量产品的价值。

签到功能有什么好处

当我们设计某个功能的时候,都会从各个层次去思考这个功能到底能够给我们的产品带来什么好处。以下,我们从企业以及用户两个层次来分析

1、企业

一方面是低成本的吸引用户,增加用户粘性,提高APP活跃度,建立良好的用户体系;另一方面是提升企业收入,通过奖励用户激励用户去完成下单动作或产品消费行为。

2、用户

获利,形式主要两种:一种是积分、优惠券、礼品等物质奖励,另外一种是签到的同时伴随的荣誉感、仪式感等精神奖励。

签到功能适用于哪些应用?

签到功能虽然能够有效增加用户使用的次数,但是也不是所有的应用都适合这个功能。那么不禁思考,签到功能究竟适用于哪些产品?

1、首先是新发布的APP,新APP在刚推出的时候,特别是其所在的行业已经有比较强有力的对手的时候,签到功能就很容易吸引用户使用该APP,和新用户注册奖励的模式相类似。

2、其次是内容类(小说、漫画、资讯等)、电商类,金融类产品。这些类型的产品都是通过内容吸引用户,在用户未成为忠实用户之前,可以通过签到来吸引用户,培养用户习惯。

反观工具类、杀毒类和天气类APP,大多数时候是在后台中完成自己的任务,对用户的生活主要起到辅助作用的,用户对这类产品没有重复唤起的需求,太过强调自己的存在感反而可能招致用户厌烦。

签到的玩法有哪些?

1、心理满足型

(1)网易云音乐“乐签”

网易云音乐的签到做得很走心,会让用户觉得不是为了签到而签到,因为它在每天的签到页面会显示一句充满文艺气息的句子,并推荐一首歌。盒子菌觉得这满足了部分文艺青年的bigger,事实证明网易云的乐签效果还不错,蛮多用户表示为了每日一签而来顺便签到。

(2)微博超话打卡

微博的超级话题内置的签到功能,通常在明星相关的超话下会比较活跃,采用的属性为手动\连续\无限周期\奖励:经验值和连续天数。

微博超话的签到功能对于粉丝群体来说真的是很讨巧的一个设计,完成连续签到不仅证明自己对idol的爱,还在同一群粉丝群体中产生一种认同感,心理上的快乐和满足感不言而喻。

只要你还对你的idol感兴趣,微博就可以通过签到功能的辅助,把你黏在超话里,大大提升了用户的活跃度,刺激次日留存率。同时在这里断签的惩罚对你来说也不是不可接受的,毕竟可以花钱买补签卡,为爱充值天经地义,不是吗?

2、产品驱动运营

签到功能大多结合运营活动,为活动引流,同时在签到获得奖励后,给用户心理感觉还能获得其他福利,吸引用户连续来签到;

(1)Keep运动签到

当用户完成一次训练之后,APP会对本次的训练提供数据分析,并提示用户去分享,如果用户只分享到Keep社区,则会继续弹出页面,询问用户是否分享到其他社交平台。同时可以添加运营人员发起的话题,以此完成打卡签到。

这种以产生内容的方式进行打卡,可以进一步活跃用户,带动整个社群的气氛,让用户在这个圈子里产生互动,产出内容。并且,其他用户打开社区时,看到周遭的人都那么坚持,自己也不应该放弃,正是这么一种心理暗示,对用户起着激励的作用,健身这件事情恰恰需要他人的激励。

(2)网易蜗牛“每天免费读书1小时”

网易蜗牛本身是没有签到功能的,但却自带“签到”特性。这主要得益于APP推出的“每天免费读书1小时”活动,超过这个时间才需要付费阅读。在这个碎片化的时代,大多数人的每天阅读时长远不足1小时。

因此网易蜗牛的“免费”阅读产品,登录即可领1小时免费时长就是这个产品的“签到功能”,吸引很多用户每天自行登录。

这就是所谓的产品驱动运营,产品本身就有让你每天签到的基因。不过,前提是产品能很好的满足你的某一个需求,用户体验要好,不然自带的签到基因也是毫无价值可言。

3、结合积分系统

可结合APP本身的积分系统,用户可通过签到获得更多积分,签到所得积分,可以用于在其他商城抵扣现金券。激发用户签到的动力,引导用户长久的进行签到。

(1)优盟“签到赏金”

优盟APP的签到活动形式,签到入口是从APP首页直接跳出,以APP首页入口展示给用户,使签到率得到很大的提升。进入签到页面,显示用户签到天数,并罗列出签到可获得的奖励内容,提高用户签到的活跃度。且用户通过签到获得积分可以在APP内兑换商品或享受商品折扣,对于用户来说可以将积分变得更有价值。

(2)36氪“晨读打卡”

36氪的晨读打卡功能,活动形式新颖有趣。用户支付一元放入晨读奖金池参与打卡,第二天在规定时间内打卡,可以随机瓜分奖金池内的奖金,累积的积分还能再积分商城中使用。这是目前见到的最有趣的签到功能,门槛低,创新,有趣味,培养用户早起打卡的良好习惯,同时也培养了用户使用产品的习惯。

(3)美柚“柚子街”

用户在柚子街可以参与签到,每天签到可获得1积分柚币,第7天时可获得4积分,积分可以直接兑换商品。

通过签到获得积分带来流量和活跃,让用户能够获得积分,且积分可以有利益可得。在凸显签到获得积分的同时,引导其他获得积分的途径,带动其他功能的活跃。形成了以签到-积分获得-积分消耗-功能活跃-获得积分的闭环。

小结

签到功能的存在,不仅能够提高用户活跃,还能够刺激用户完成指定行为,发现APP的价值,成为APP的忠实用户。您不妨也搞个签到试试看?不用担心自己没有签到的运营经验,因为有APP活动运营工具—活动盒子可以帮助您。它不单单是提供免费的签到活动模板,还兼具一系列的活动设置,比如触发行为SDK埋点(优盟首页跳出的签到入口),一站式解决运营人员没资源、没精力的痛点。

什么样的签到才是好签到

1、利用人性的虚荣和炫耀心理,通过打卡让用户形成炫耀点,比如累计打卡天数,超越其他人次数等,用户有成就感之后才会分享成就,最终给产品带来新增。

2、利用社交圈,通过社交关系的刺激,让好友之间相互监督和鼓励,形成打卡氛围,最终帮助用户形成打卡习惯。

3、满足用户利益,建议在不同的打卡节点,增加奖励以刺激用户,比如3、7、14天时可以增多奖励值,在最后一天时有特殊奖励。

4、签到页面的设计要简单明了,培养习惯的关键性在于操作简单、理解简单。

总结

签到对于产品本身,是借助一种仪式感提高用户打开产品或功能模块的一个功能,它或许不能决定一个产品的好坏和生死,但如果你用得好,一定可以为APP锦上添花。

以上就是盒子菌对于签到功能的一些看法,若有不足之处可在留言处戳下小编哦~

作者:活动盒子运营社,APP活动运营工具,助力APP运营,提升用户活跃、留存和转化;

本文为活动盒子原创,商业转载请联系作者获得授权,非商业转载请注明出处:

http://www.huodonghezi.com/news-1938.html