MVP,登陆和广告为1500卢布

可能很多人不得不为自己的特定需求制作特定的工具-脚本或Excel表。经过思考:如果其他人需要完全相同的解决方案怎么办?如何找到答案并了解是否有可能赚钱?

我的故事始于一个非常简单的任务。我只需要计算一个数字:我的投资工具的年收益率。在搜索了整个Internet并没有找到现成的解决方案之后,我不得不自己基于Google表格进行搜索。结果很好-我决定检查我的开发是否有商业需求。

在本文中,我将介绍:

  1. 考虑到所有运营和期间,如何制作表格以计算年度投资回报率;
  2. 如何创建目标页面并为潜在用户配置分析;
  3. 如何在预算为1500卢布的Yandex中使用上下文广告来检验假设和潜在需求。

I.年收益的计算:工具开发


立即想到以下公式
[利润] / [投资资金] / [天数] * 365 = [利润率(%/每年)]
当她投入资金并在一段时间后获得更多收入时,她的确很工作。

如果我在不同时间分几批存钱或定期付款,该怎么办?在这种情况下,很难理解该帐户有多少时间。自然,我不是第一个遇到这种问题的人,目前有两种解决方法:

  1. . , . : , .
  2. IRR . , . ?

如果您将所有现金流量加起来(减去投资并加上提款),那么所得的差额就是收入。例如,他们在银行投资了10,000卢布,一年后,他们取出10,600卢布,而收入是600卢布。您还可以通过将投资额乘以利率来获得收入。例如,我们将10,000卢布乘以6%的银行汇率,得出600卢布。

更有趣的是,我们将现金流量更改为可以补偿利润的数字。这是一个比较称职的描述,但实质上,整个逻辑在于以下公式:

内部收益率是未知的年度收益。我们将示例中的值替换为银行存款:-10,000卢布/(1 + 6%)^ 0 + 10,600卢布/(1 + 6%)^ 1 = 0.一切都收敛。现在,它仍然可以通过循环或Excel中的PURE函数来表达IRR并以编程方式对其进行计算。

Google表格中的MVP


要计算内部收益率,只需知道操作量和完成日期即可。在表中编译了几列。



我写下了工具的名称,工具的所有操作(加号-投资,减号-提款),操作日期和资产价值(现在帐户中有多少)。没有看到使用公式的优雅解决方案,我开始编写脚本。Google文档使用裁剪的javascript,因此学习没有任何问题。转到工具->脚本编辑器。我们正在编写代码。

我们从表中获取数据
var ss          = SpreadsheetApp.getActiveSpreadsheet(); //  
var sheet       = ss.getSheetByName("");         //   ""
var instruments = sheet.getRange("E4:F").getValues();    //          $
var operations  = sheet.getRange("A4:C").getValues();    // C      $   


我们整理所有操作
  
  ////////////    
  //    
  var dohNaProc = 0;
  //  
  var allDohod = 0;
  
  //   
  insts.forEach(function (inst,i){
    
    //    
    var summs = [];
    //     
    var dates = [];
    //    $
    var dohod = inst[1]; 
    
    //   
    ops.forEach(function(op,n){
      //     
      if(inst[0] == op[0]){ 
        //    
        summs.push(-1*op[2]);
        //  
        dates.push(op[1]);
        //  
        dohod -= op[2];
      }
      
    })    
    
    //  ,    
    summs.push(inst[1])
    //     0 ( ),    ,    
    //    - ,     
    dates.push( (inst[1] == 0) ? dates[dates.length-1] : new Date() )
    
    
    //        1   
    const dohodProc = (XIRR(summs,dates)*100).toFixed(1)
    
    //     
    dohNaProc += (dohodProc != 0) ? dohod/dohodProc : 0
    //   
    allDohod  += dohod
    
    //        2   
    dohod = dohod.toFixed(2)

    Logger.log(dohNaProc+" "+allDohod)
    //   
    var strN = 4+i
    //      %
    var func = '=ROUND((((SUMIFS(C$'+strN+':C;A$'+strN+':A;E'+strN+';C$'+strN+':C;"<0")*(-1)+F'+strN+')/SUMIFS(C$'+strN+':C;A$'+strN+':A;E'+strN+';C$'+strN+':C;">0"))-1)*100;1)';
   
    //   
    sheet.getRange("G"+strN+":I"+strN).setValues([ 
      [dohodProc.replace(".",","), dohod.replace(".",","),func]
    ]);

  })// end foreach insts
  

  //   
  const allDohodProc = (allDohod/dohNaProc).toFixed(1)
  //  
  sheet.getRange("G3").setValues([[". . "+allDohodProc+" % / "]]);



发送到IRR计算功能
function XIRR(values, dates, guess) {
  // Credits: algorithm inspired by Apache OpenOffice
  
  // Calculates the resulting amount
  var irrResult = function(values, dates, rate) {
    var r = rate + 1;
    var result = values[0];
    for (var i = 1; i < values.length; i++) {
      // result += values[i] / Math.pow(r, moment(dates[i]).diff(moment(dates[0]), 'days') / 365);
      result += values[i] / Math.pow(r, daysLag(dates[i],dates[0]) / 365);
    }
    return result;
  }

  // Calculates the first derivation
  var irrResultDeriv = function(values, dates, rate) {
    var r = rate + 1;
    var result = 0;
    for (var i = 1; i < values.length; i++) {
      // var frac = moment(dates[i]).diff(moment(dates[0]), 'days') / 365;
      var frac = daysLag(dates[i], dates[0]) / 365;
      result -= frac * values[i] / Math.pow(r, frac + 1);
    }
    return result;
  }

  // Check that values contains at least one positive value and one negative value
  var positive = false;
  var negative = false;
  for (var i = 0; i < values.length; i++) {
    if (values[i] > 0) positive = true;
    if (values[i] < 0) negative = true;
  }
  
  // Return error if values does not contain at least one positive value and one negative value
  if (!positive || !negative) return '#NUM!';

  // Initialize guess and resultRate
  var guess = (typeof guess === 'undefined') ? 0.1 : guess;
  var resultRate = guess;
  
  // Set maximum epsilon for end of iteration
  var epsMax = 1e-10;
  
  // Set maximum number of iterations
  var iterMax = 50;

  // Implement Newton's method
  var newRate, epsRate, resultValue;
  var iteration = 0;
  var contLoop = true;
  do {
    resultValue = irrResult(values, dates, resultRate);
    newRate = resultRate - resultValue / irrResultDeriv(values, dates, resultRate);
    epsRate = Math.abs(newRate - resultRate);
    resultRate = newRate;
    contLoop = (epsRate > epsMax) && (Math.abs(resultValue) > epsMax);
  } while(contLoop && (++iteration < iterMax));

  if(contLoop) return '#NUM!';

  // Return internal rate of return
  return resultRate;
}


我们计算日期之间的天数
///     ////
function daysLag(d1, d2){
 //     js
 var date1 = new Date(d1);
 var date2 = new Date(d2);
 //  
 return( Math.ceil(Math.abs(date2.getTime() - date1.getTime()) / (1000 * 3600 * 24)) ); 
}


转到表,运行脚本。计算了所有操作和周期的年收益!



添加了各种其他公式和图形。现在确定美丽。



为了不每次都手动更新文件,可以在Sheets中将脚本配置为在事件上运行:打开表,单击,更改。为此,请从脚本编辑器转到当前项目的“编辑”->“触发器”。我们设置以下值。



现在,计算将自动更新。桌子准备好了。可以修改一些东西,但是对我有用。

二。年收益的计算:需求分析


在理解公式并编写代码以仅计算一个值之前,我搜索了整个Internet,但没有找到现成的解决方案。因此,显然没有需求。但是现在桌子已经准备好了,“他发现结果很好”,检查变得很有趣-这样的解决方案是否有潜在需求?

我没有很多熟悉的投资者来进行有问题的采访,因此我们转向负担得起的快速验证方法。



Yandex统计数据显示对该领域有些兴趣,但是市场规模不足以使其设计和开发单独的服务具有成本效益。

另一方面,我在vc.ru上的调查显示 46%的人使用表格进行会计处理。



也许由于样本量少,结果在误差范围内。

但是,显然有些人没有找到完成的服务并编写了平板电脑。如果这对他们来说是最方便的选择,或者遇到的困难微不足道,甚至您都不希望打开Goog​​le Play或App Store怎么办?

为了验证这一假设,我在Google表单中创建了一个调查表,该调查表可以为该程序的原始版本留下邮件。



为了至少填充一些流量,我在vc上写了一篇文章。结果:1095浏览,1个人离开了请求。0.1%的转化率并不意味着需求低,因为它还取决于许多因素:文章的清晰度,受众的兴趣,目标动作的位置等。收到的申请表明,此人不太懒散以发送邮件来解决会计问题。

要了解有关该问题和现有解决方案的缺点的更多信息,您需要人。来自免费帖子的流量是临时的,并且定位不够。我决定针对关键查询提供上下文广告。

您无法立即将人们送到桌子上-他们不知道发生了什么。因此,您需要一个登录页面,并且越简单越好。

降落


打开设计师Wix或Tilda,选择模板,更改文本和链接,发布并付款。事务20分钟。



很简单,但是在最后一段中有困难。被解雇后,他的休息时间比计划的要长一点,他不想拆开存款。一段时间以来,我不得不靠不平衡的小红利生活。那时甚至没有700卢布可以买完整版。您无法连接分析,域或免费使用SEO。

我必须做得更好。发现不是很吓人的免费引导模板。我下载了,删除了多余的块,替换了文字和图片。



分析工具


主要任务是尽可能多地了解问题,解决方案和人员。为了收集数据,我将使用Yandex指标,Google Analytics(分析),Google跟踪代码管理器,链接缩短器。

为什么要进行两个网络分析?首先,要及时检查和了解分析工作是否正常。其次,将来我可能不仅会在Yandex中进行广告宣传,而且还会在Google中进行广告宣传,而要进行有效的广告活动,我们需要有关用户行为的数据。而且,现在有机会简单地告诉Yandex:带我去买这个产品的人,而神经网络将做剩下的事情。因此,现在是市场营销人员考虑新职业的时候了。

为什么选择GTM? Google跟踪代码管理器是一种连接分析的现代方法,它具有以下优点:



  • .
    .

  • , ,
    . , ,
    , .

  • GTM ,
    .

  • , ,
    , .

  • Tag Manager
    , , -.


  • .

我们创建一个新的计数器,并以Yandex指标复制HTML代码。



我们转到Google跟踪代码管理器,创建一个帐户和一个容器。



之后,服务将显示一个代码以连接到该站点。单击创建标签。标签是应该开始什么(标签配置)和什么事件(触发)的设置。



在标记配置中,选择“自定义HTML”,在其中插入指标代码,并作为触发器-“查看所有页面”。现在,在查看任何页面时,用户将启动Yandex指标。

在此示例中,好处不是很大,直接插入一个计数器会更容易,但是通过GTM设置事件会更加有用。

我们返回到指标。设置->目标->添加目标。我们提供一个名称和标识符,它们应该简短并描述目的。



我选中了“重定向”旁边的框,以便广告系列在吸引人们时可以专注于该目标。复制下面的代码,保存并转到GTM。与以前一样,创建一个新标签,粘贴复制的代码。创建一个新的触发器,这次使用Click类型。



在本例中,我们选择“某些点击”,并设置为在单击ID等于btn_sheet的元素时激活触发器。要查找商品ID,请通过Chrome浏览器进入网站,然后按Ctrl + Shift + C并单击该商品。



保存触发器,单击“预览”,然后转到站点。



控制台将出现在站点上以进行验证。上面是已完成的事件,下面是所有其他事件。我们单击按钮,相应的事件应向上移动。如果是这样,那么您可以继续。

谷歌分析


我们已在Google Analytics(分析)中注册,我们创建了一个帐户和一个资源。



由于GTM已与Google Analytics(分析)集成,因此这里将变得更加容易。要连接,只需选择适当的标签。



要添加事件,您无需复制和粘贴HTML代码,也可以在相应的标记中对其进行配置。创建所有触发器后,您可以发布版本,单击“提交”。现在,已配置Analytics和Metric。

链接缩短器


我计划构建以下渠道:广告->网站->表格->记录测试表格。从广告到餐桌,有关用户的信息将转到Metrica,但他的进一步步骤仍然是个谜。

为了计算过渡,我决定使用链接缩短器。有很多这样的网站。经过五次尝试后,我选择了最佳的“一键单击”他可以:

  • 创建后更改短链接名称
  • 显示用户的国家和设备
  • 添加您自己的域(付费版本)
  • 添加像素以进行更多跟踪(付费版本)

已注册的创建链接,用于跟踪以下过渡:

  • 从Yandex广告投放到桌子
  • 从Yandex中的广告到测试网络版本
  • 从Yandex广告到测试iOS应用
  • 从Yandex中的广告到测试Android应用程序
  • 从现场到餐桌
  • 从现场到测试
  • 从表到测试

托管和域名


在Timeweb注册托管,价格为179卢布。它体积大,功能强大且价格便宜。在那里,他在.ru区域中获得了179卢布的域名+免费的SSL证书(表明该站点可以信任)。域名是中性的,因此将来您可以免费创建任意数量的子域(例如poddomen.neitralnoe-nazvanie.ru)并检查其他项目。将所有内容都注册到一个位置很方便,那么您无需绑定域和服务器,也不需要连接证书,所有内容都会自动发生。我通过Timeweb文件管理器将所有站点文件上传到服务器-站点已准备就绪。

我不会告诉您如何欺骗服务-我只是说,根据推荐计划,我又获得了200卢布的奖金,我的朋友也获得了200卢布。总支出达到(179 + 179-200)158卢布(如果我的朋友是我,我什至会因为42卢布而陷入困境)。

广告


该站点已准备就绪,现在仅需要人员。有很多广告策略,在我的情况下,我需要一种预算最少的方法,这意味着我只能吸引少数人。因此,这些用户需要尽可能地具有针对性。也就是说,只有那些完全需要我的产品的人。

我还需要最大的转化次数。也就是说,从上一个阶段开始,尽可能多的人进入下一个阶段。现在有三个这样的步骤:广告->网站->表格->测试记录。我决定通过实验和用户研究,通过简单,方便,相关性和持续改进来实现高转化率。

该选择取决于具有低频查询的上下文广告。也就是说,在小型搜索查询的搜索结果中显示广告-这样可以降低竞争和每次点击费用。

关键字选择


首先,您需要选择与我的产品领域相关的尽可能多的单词。我有两列:动作和基本单词。该区域中的请求不多,但在另一个区域中可能有更多的请求,例如地址,颜色,特征等。



我们将接收到的关键字扔到组合器中(它们很多,在功能方面都相同)。



该服务将每个单词与所有列中的每一个匹配,结果产生了一堆短语。下载SlovoEb之后 -这是免费且非常有用的营销程序的真实名称。转到设置->解析-> Yandex.Direct。我们添加创建的新Yandex帐户(不是个人帐户,可以将其阻止)。



进一步保存,转到数据->添加短语。粘贴在短语组合器中获得的列表。之后,我们转到“数据收集”部分。



我的短语比较短(2个单词以内)-也许有更长的短语,因此很少见(低频的)。因此,我单击左列中的“批次收集”。该程序将查找所有包含Yandex之前搜索的短语的内容的查询。完成解析后,在频率列中选择关键短语并放入Excel。

Yandex Direct


让我们设置Yandex.Direct:单击添加->广告系列->文字和图像广告。



印象时间表,我保持原样。我的产品可以随时随地使用。我连接了Yandex指标计数器,然后分配了一个策略:仅显示手动搜索和出价管理。这意味着无论竞争对手的点击价格如何,Yandex都将始终尝试展示我的广告。我想用这样的低频短语会很小。



在出价调整中,我将智能手机的出价降低到最低。用户将很难弄清楚智能手机上的表格,这意味着他们的转换率很差。

我根据之前收到的要求引入了否定性短语。有人正在寻找完全不同领域的特定方法,课程作者或事物。例如,查询“比较资产1和资产2”原来不是关于财务,而是关于观察模型。另外,Internet上有一些通用的否定短语列表。就我而言,这是课程,文凭,任务等。在此阶段,您无法切断所有不相关的请求,因此您将需要不断监控分析和新短语。

在高级设置中,我保留高级地理定位,然后与基于Yandex的操作员添加聊天。现在,对我而言,尽可能多地与用户交流很重要。转到Yandex-Dialogs,创建聊天->商务聊天。



添加与网站上相同的图标很重要。我创建了2种尺寸的图片。您需要将站点的favicon.png 64x64 px拖放到该站点的文件夹中。和相同的224x224对话框。



保存在“窗口小部件”选项卡上后,您需要复制代码并将其添加到您的站点,以便不仅可以在搜索引擎中而且可以在站点上打开与操作员的对话。然后,在“常规”选项卡上,复制对话标识符并将其粘贴到Yandex.Direct广告公司中。



我还包括“网站关闭时停止广告”项,并保存广告系列。

我们将在Excel表中进行进一步的编辑,因此,在界面中,我们仅创建一个组和一个公告作为示例。添加->组。在这里,您需要在关键短语中写上任何一行。保存后,Direct会提供一个广告。

我们锤击任何标题,无论是小学还是中学。该公告的文本可以立即写成通用的。在没有时间播放广告素材之前,不会添加图像和视频。仅显示文字广告,还可以带来更多转化。

我没有联系信息和虚拟名片。您可以将更多信息添加到过渡页面。例如site.ru/#invest-programa。尽管它不会导致出现单独的页面,但会增加广告的尺寸,使其更具可见性。如果每个请求都有一个带有相应名称的链接,那么它将与用户更相关。

添加优化和快速链接。这是以前需要在起酥油中创建的跟踪链接的地方。我创建以下内容:

  • Excel电子表格
  • Web应用程序
  • iOS应用
  • Android应用

其中三个导致相同形式的记录以进行测试,因此这是一个机会,可以同时找出用户想要的应用程序格式。再次在链接中添加说明,以增加广告的尺寸。救。

通过Excel添加广告


要进行更精确的设置,值得为每个关键字词组制作一个广告。我有100多个。最好还要创建2个附加词组,2个文本,并结合起来为每个关键短语获得4个广告。该算法已经根据经验识别出最多的转化次数。在界面中执行此操作数量不现实,因此请转到“工具”->“使用Excel管理”。下载表格。



它看起来很吓人,但是由于我们预先填写了一个群组和一个广告,因此您可以找出答案。我们删除组ID,词组,公告,然后将其上传到Yandex.Direct时,将创建而不是更新新公告。

我们回到前面收集的关键短语。在这里,您只需要流汗。我们删除所有不适合上下文的内容。



我们回到卸货。广告行需要复制的次数与剩下的关键短语一样多。接下来,在3个地方插入关键短语列:组名,短语,标题。是的,用户的请求将完全重复出现在广告的标题中,从而获得最大的转化量。如果超过35个字符,则需要修剪。仅此而已,以下图片已显示。就像我说的,您可以根据需要创建几种广告组合。



保存并加载回Direct。应该有很多小组,每个小组都有一个关键词和一个广告。原则上,可以创建多个组,每个组具有几个含义相同的关键词,并带有相同数量的带有相应标题的广告,但是Yandex并不总是正确选择广告。我不知道这有什么关系。

您可以付费并运行广告系列。对于这样的低频广告,如果一切正确,一开始您可以保留10,000卢布。我扔了1500

结果


由于很少有这样预算的用户,因此我有机会实际上分别跟踪每个人。

使用Metrica,我查看了他输入的查询,从中他了解了新的问题领域,并在广告中添加了否定短语。通过Webvisor,我遵循了网站上的所有操作。我研究了Google Apps日志中的链接导航路径和错误。

让我们继续讲数字。





转换确实很好,但我再说一遍,我专注于少数超级目标用户。如果您增加覆盖率,则需要更改策略,增加预算并容忍转化率下降。

同样,从这么少的数量也无法得出任何统计信息。这并不是说20%的MVP用户注册了测试,如果我们只说十分之二的用户,则他们很可能落在误差范围之内。

显然,这个月花费了342卢布。点击费用为1.54卢布。这仅是预算预算的20%,因此也许以后我将启动另一个增加受众群体的广告系列,并在目标网页上添加更多有用的信息-但此刻一切都按预期进行。

All Articles