首页 / 移动应用的多变量测试

移动应用的多变量测试失效专利 发明

技术领域

[0003] 本公开内容一般涉及转换测试和转换率优化。更具体地,本公开内容针对用于对移动应用进行多变量测试以便优化客户与那些应用的交互的结果的系统和方法。

相关背景技术

[0004] 在美国,随着新的虚拟网络运营商和多样大量的定价选项和策略(包括预付费和后付费电话、基于使用的费用、共享计划、减速访问、以及甚至手机补贴、融资和产品返销项目)的进入,移动通信市场变得非常竞争激烈。承载商、提供商、营销人员、开发人员等等因此不断寻求新的且改进的方式来引入新用户或者使得现有用户采纳新的和/或附加的、优选是生成收益的服务。鉴于在某种情况下移动空间中的新用户增长率将会减慢或者甚至平稳的一般认识,这种驱动将在未来变得甚至更加不可避免。
[0005] 作为这种挑战的一部分,承载商、提供商、营销人员和开发人员寻求使其服务和提供对当前或者潜在新用户所具有的影响最大化。对于这些承载商、提供商和其用户界面(UI)设计者和开发人员而言的常见挑战在于,确定对于客户而言设计或者消息的哪个变量将是最激发兴趣的。虽然亲自的、定性的测试可以提供最准确的度量,但是在大范围上采纳这样的测试可能是成本高并且时间不允许的。可替换地,较小范围上的这样的测试的性能就能够驱动相关增强而言通常具有这样的不充分的样本大小。
[0006] 响应于这样的挑战,在最近数年,已经观察到在具有用于测试直接邮件和网站配置的许多商业解决方案的基于web(网络)的A/B和多变量测试方面的增长。如今,存在用于直接邮件和web站点测试(通常覆盖测试配置、试验速率、响应测量和报告)的许多商业产品。多变量测试虽然一般由营销群体主导作为优化营销花费的一种方式,但是也渐增地用于测试用户体验设计。
[0007] 如众所周知的,A/B测试(或者分离测试)是一种网站优化方法,其中活动的业务量被驱动到不同版本的web页面或者电子邮件(版本A和版本B),并且然后针对用户与他/她的版本的页面的交互方式而进行监视。针对该分量的“吸引力”或者转换率(即,采取了超越于随意内容观看或者网站访问的动作-例如,点击量、注册、观看视频、成功完成签出过程-的用户比例)然后通过响应来推断。这种交互的分析可以帮助web页面拥有者/开发人员/设计者/营销人员确定哪个页面更有效。多变量测试使用与A/B测试类似的核心机制,但是包括更多数量的变量,并且揭示关于这些变量中的每一个变量如何交互的更多信息。因此,关于所测试的web页面或者电子邮件的单独的分量或者元素的有效性揭示更详细信息。
[0008] 然而,用于分离和多变量测试的现有基于web的方法通常不提供对于移动的基于web的应用的支持,并且即便在其确实提供的那些实例中,依然需要重要的实验和大量的修订,以便使其适用于小屏幕。进一步地,这些基于web的解决方案对于在移动环境中现有的移动应用的鲁棒(robust)测试而言是不够适配的。
[0009] 因此,需要一种针对移动应用的多变量跨平台(platform-agnostic)测试平台,其帮助承载商、提供商、营销人员和开发人员优化客户、潜在客户和其他用户参与到这些应用中。这继而预期的是,帮助加速产品开发、驱动新客户和收益增长、增大客户保留、和/或进一步采纳新的和/或附加收益生成产品、服务和解决方案。

具体实施方式

[0018] 在以下描述中,参考形成其一部分的附图,并且其中以图示的方式示出了可以在其中实践本公开内容的具体实施例。要理解,可以利用其他实施例,并且可以在不偏离本公开内容的范围的情况下做出结构改变。
[0019] 现在转向图1,呈现了其中可以实现本公开内容的实施例的适当计算系统100的示例。计算系统100仅仅是一个示例,并且不打算暗示关于本公开内容的功能性或使用范围的任何限制。计算系统100也不应该被解译为具有关于图示组件中的任一项或者组合的任何依赖或者要求。
[0020] 例如,本公开内容利用许多其他通用或者专用计算消费者电子装置、网络PC、小型计算机、大型计算机、膝上型计算机以及包括以上系统或者设备中的任一项的分布式计算环境等等而操作。
[0021] 本公开内容可以在被计算机执行的诸如程序模块之类的计算机可执行指令的一般上下文中描述。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、循环代码段和构造等等。本公开内容可以在分布式计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块位于包括存储器存储设备的本地和远程计算机存储介质两者中。由程序和模块执行的任务在以下并且利用附图的辅助来描述。本领域技术人员可以将本描述和附图实现为处理器可执行指令,其可以被写在任何形式的计算机可读介质上。
[0022] 在一个实施例中,参考图1,系统100包括服务器设备110,其被配置成包括诸如中央处理单元(“CPU”)之类的处理器112、随机存取存储器(“RAM”)114、诸如显示设备(未示出)和键盘(未示出)之类的一个或者多个输入输出设备116、非易失性存储器120和数据储存130,这些都经由公用总线互连并且由处理器112控制。
[0023] 如在图1示例中示出的,在一个实施例中,非易失性存储器120被配置成包括管理模块122、报告模块124和测试模块126。管理模块122被配置成生成每一个具有嵌入式SDK可执行文件的一个或者多个应用、针对一个或者多个应用的每一个的多个可替换有效负荷、以及针对一个或者多个应用的每一个的配置文件。在一个实施例中,每一个应用与对应的多个可替换有效负荷相关联,并且可替换的有效负荷的每一个与关联于访问设备的一个或者多个数据项相关联。管理模块122被进一步配置成更新应用和配置文件,以及填充数据储存130中的适当数据储存,其将结合图2进一步地详细讨论。
[0024] 按照一个实施例,报告模块124被配置成从SDK 162A接收一个或者多个测试结果,并且将结果存储在数据储存130的适当数据储存中。报告模块124被进一步配置成充当数据储存130中存储的测试结果到报告设备150的网关。测试模块126被配置成使用配置文件基于与访问设备160相关联的一个或多个数据项来确定和供应测试有效负荷。模块122、124和126的附加细节结合图2-5来讨论。
[0025] 如在图1中示出的,在一个实施例中,提供了网络170,其可以包括各种设备,诸如在内联网、外联网和互联网配置中连接的路由器、服务器、以及交换元件。在一个实施例中,网络170采用无线通信协议在访问设备160、服务器设备110、数据储存130、报告设备150和管理设备140之间传送信息。例如,网络170可以是采用数字蜂窝标准的蜂窝或者移动网络,所述数字蜂窝标准包括但不限于3GPP、3GPP2、和AMPS标准族,诸如全球移动通信系统(GSM)、通用无线分组业务(GPRS)、CDMAOne、CDMA2000、演进数据优化(EV-DO)、LTE高级、改进数据率GSM演进(EDGE)、通用移动通信系统(UMTS)、数位加强式无线通讯系统(DECT)、数字AMPS(IS-136/TDMA)、和集成数字增强型网络(iDEN)。网络170还可以是诸如互联网之类的广域网(WAN),其采用一个或者多个传输协议,例如TCP/IP。作为另一示例,网络170可以采用数字蜂窝标准和传输协议的组合。在另一实施例中,网络170使用有线通信来在访问设备160、服务器设备110、数据储存130、报告设备150和管理设备140之间传送信息。在又其他实施例中,网络170可以采用有线和无线技术的组合来在访问设备160、服务器设备110、数据储存130、报告设备150和管理设备140之间传送信息。
[0026] 数据储存130是维持和存储由之前提及的模块122、124和126利用的信息的贮存库。在一个实施例中,数据储存130是关系数据储存。在另一实施例中,数据储存130是目录服务器,诸如轻量级目录访问协议(“LDAP”)。在又另一实施例中,数据储存130是服务器设备110的非易失性存储器120的区域。
[0027] 在一个实施例中,如在图1示例中示出的,数据储存130包括配置数据储存132、报告数据储存134、有效负荷数据储存136和应用数据储存138。按照一个实施例,配置数据储存132包括一个或者多个配置文件,其每一个标识应用、相关联的多个可替换有效负荷和与访问设备相关联的对应的一个或者多个数据项。按照一个实施例,报告数据储存134包括响应于访问设备160与有效负荷的交互(诸如用户是否参与了点击量、用户观察了显示器多久、用户是否访问了到其他内容的链接、用户所参与的是显示器上的下拉菜单还是任何单选按钮的选择)由SDK 162A所收集的一个或者多个测试结果。进一步地,按照一个实施例,用户与有效负荷交互的条件被存储在报告数据储存134中,诸如访问设备的地理位置、针对访问设备的网络连接的强度、关于用户的人口信息和访问设备160的环境条件。在一个实施例中,有效负荷数据储存136和应用数据储存138分别存储测试有效负荷和嵌入有SDK的应用。
[0028] 虽然图1中示出的数据储存130被示出为服务器设备110的一部分,但是将由本领域技术人员领会的是,数据储存130和/或此处所示信息中的任何信息可以跨各种服务器分布,并且通过网络150对于服务器设备110是可访问的、直接耦合到服务器设备110或者被配置在服务器设备110的非易失性存储器120的区域中。
[0029] 按照一个实施例,访问设备160是诸如智能电话、平板设备或者其他个人数字助理设备之类的移动设备,其具有用户界面166、具有软件开发工具包可执行文件(“SDK”)162A的应用模块162和内部存储组件164、多个传感器(未示出)、外部存储组件(未示出)、电力管理系统(未示出)、音频组件(未示出)、音频输入/输出组件(未示出)、图像捕获和处理系统(未示出)、RF天线(未示出)和订户标识模块(SIM)(未示出)。内部存储组件164可以包括例如静态随机存取存储器(SRAM)或者闪速存储器组件。按照另一实施例,访问设备160是通用或者专用计算设备,其包括用户界面166、具有SDK 162A的应用模块162、多个传感器(未示出)、处理器(未示出)、瞬时性和持久性存储设备(未示出)、输入/输出子系统(未示出)、用于提供包括通用或者专用计算机的组件之间的通信路径的总线、以及诸如web浏览器之类的允许用户访问存储在数据储存130内的数据的基于web的客户端应用。web浏览器的示例在本领域中是已知的,诸如微软® Internet Explorer® 、谷歌 ChromeTM、Mozilla Firefox®和苹果® Safari®。按照一个实施例,访问设备160可以包括多个访问设备,其每一个包括与本文描述的相同的示例性组件。
[0030] 按照一个实施例,应用模块162被配置成执行应用,其在访问设备160的用户界面166上再现给用户。在一个实施例中,SDK 162A被嵌入在应用内,在应用的运行时间期间执行,并且以其被嵌入在其中的应用的自然语言编写。例如,SDK 162A可以以针对安卓TM平台的Java、针对IOS®的Objective C、以及针对微软®Windows Phone®的微软® .NET编写,或者以针对所支持的基于web的应用的JavaScript编写。在一个实施例中,SDK 162A在应用执行时连接到服务器设备110的测试模块126,并且当访问设备160连接到服务器设备110时使用配置文件从测试模块126异步请求测试有效负荷。可替换地,当访问设备160未连接到服务器设备110时,SDK 162A将从内部存储装置164请求默认有效负荷,以用于在访问设备
160上呈现。
[0031] 按照一个实施例,管理设备140是通用或者专用计算设备,其包括用户界面144、应用模块142、瞬时性和持久性存储设备、输入/输出子系统和用于提供包括通用或者专用计算机的组件之间的通信路径的总线。在一个实施例中,用户界面144允许用户通过使用诸如web浏览器之类的基于web的应用访问存储在数据储存130内的数据。web浏览器的示例是在本领域中已知的那些web浏览器,诸如微软® Internet Explorer®、谷歌 ChromeTM、Mozilla Firefox®和苹果® Safari®。类似地,在一个实施例中,报告设备150是通用或者专用计算设备,其包括用户界面154、应用模块152、瞬时性和持久性存储设备、输入/输出子系统和用于提供包括通用或者专用计算机的组件之间的通信路径的总线。
[0032] 进一步地,应该指出的是,在图1中示出的系统100仅仅是本公开内容的一个实施例。本公开内容的其他系统实施例可以包括未示出的附加结构,诸如次要存储装置移机附加计算设备。另外,本公开内容的各种其他实施例包括比在图1中示出的那些结构更少的结构。例如,在一个实施例中,本公开内容以非联网独立配置在单个计算设备上实现。数据输入和请求经由诸如键盘和/或鼠标之类的输入设备传送到计算设备。系统的诸如所计算的重要性分数(significance score)之类的数据输出从计算设备传送到诸如计算机监视器之类的显示设备。
[0033] 现在转向图2,公开了一种用于生成用于对移动应用进行多变量测试的一个或者多个有效负荷的示例性方法200。在图3中图示的示例性实施例中,管理模块122被用来生成每一个具有嵌入式SDK可执行文件的一个或者多个应用,步骤210。如之前讨论的,嵌入在应用内的SDK可执行文件在应用的运行时间期间执行并且以其被嵌入其中的应用的自然语言编写。按照一个实施例,所生成的应用是以供在诸如智能电话或者平板设备之类的移动设备上使用的移动应用,并且SDK可以以针对安卓TM平台的Java、针对IOS®的Objective C、以及针对微软®Windows Phone®的微软® .NET编写、或者以针对所支持的基于web的应用的JavaScript编写。
[0034] 在步骤220处,管理模块122被用来生成针对一个或者多个应用的每一个的多个可替换的有效负荷。按照一个实施例,有效负荷是内容项。内容项包括如在本领域中已知的、通过诸如私有内联网之类的私有网络或者诸如互联网之类的公共网络而可用的任何数字内容。示例性内容项包括但不限于web页面和其相关联内容、移动应用和在移动应用内和通过移动应用访问的数据、数字广告、电子邮件消息和附件、数字音频文件、数字图像、数字视频、数字文档等等。在示例性实施例中,多个可替换有效负荷包括一组内容项,其每一个可以在再现移动应用时呈现。
[0035] 接下来,在步骤230处,管理模块122被用来将多个可替换有效负荷的每一个与关联于诸如访问设备160之类的访问设备的一个或者多个数据项相关联。如将关于图3讨论的,与访问设备160相关联的数据项可以包括与访问设备160自身相关的数据项(诸如其定向或者屏幕大小)、以及与访问设备160的环境相关的数据项(诸如其位置或者其麦克风是否用来接受音频输入)。例如,给定的有效负荷可以被配置成与具有到CDMA网络的活动蜂窝网络连接的、使其查看定向处于横向(landscape)模式的访问设备相关联。
[0036] 在步骤240处,管理模块122生成针对一个或者多个应用的每一个的配置文件。每一个应用可以与对应的多个可替换有效负荷相关联,并且可替换有效负荷的每一个可以与关联于访问设备的一个或者多个数据项相关联。例如,在一个实施例中,生成配置文件,其标识针对智能电话的移动应用,诸如包括商店定位器功能的购物应用;相关联的可替换有效负荷,其可以包括来自不同移动地图提供(例如,谷歌 MapsTM、微软® Bing®、和苹果® Maps)的地图内容;以及与每一个可替换有效负荷相关联的一个或者多个数据项,诸如设备类型、网络连接、网络状态和设备位置。
[0037] 在步骤250处,使用管理模块122,针对一个或者多个应用的每一个而标识默认有效负荷以及一个或者多个测试有效负荷。一个或者多个应用的每一个然后被更新以包括所标识的默认有效负荷,并且针对一个或者多个应用的每一个的配置文件要标识一个或者多个测试有效负荷,步骤260。从之前的示例继续,管理模块122可以被用来利用作为默认有效负荷的、来自谷歌 MapsTM的地图内容以及将来自微软® Bing®和苹果® Maps的地图内容标识为测试有效负荷的配置文件来更新购物应用。
[0038] 诸如数据储存130之类的数据贮存库由管理模块122填充以一个或者多个应用、针对一个或者多个应用的每一个的多个可替换有效负荷以及相关联配置文件,步骤270。按照一个实施例,一个或者多个应用被存储在应用数据储存138中,多个可替换有效负荷被存储在多个数据储存136中,并且配置文件被存储在配置数据储存132中。从之前的示例继续,配置文件存储以下的标识:(i)包括商店定位器功能的购物应用,(ii)不同的移动地图提供TM商,谷歌 Maps 、微软® Bing®和苹果® Maps以及(iii)作为默认有效负荷的、来自谷歌 MapsTM的地图内容以及作为测试有效负荷的、来自微软® Bing®和苹果® Maps的地图内容,所述配置文件被填充在数据储存130的配置数据储存132中。类似地,包括商店定位器功能的购物应用被存储在应用数据储存138中,并且以到来自不同移动地图提供商(例如谷歌 TM
Maps 、微软® Bing®和苹果® Maps)的地图内容的链接的名义的可替换有效负荷被存储在有效负荷数据储存136中。按照一个实施例,到有效负荷内容的链接被存储在有效负荷数据储存136中。在另一实施例中,有效负荷内容自身被存储在有效负荷数据储存136中。在又另一实施例中,有效负荷内容自身和到有效负荷的链接的组合被存储在有效负荷数据储存
136中。
[0039] 现在转向图3,公开了一种用于对移动应用进行多变量测试的示例性方法300。在图3中图示的示例性实施例中,访问设备160的应用模块162经由用户界面166接收针对一个或者多个内容项的请求,步骤310。例如,用户可以在其智能电话上提交针对内容项的请求。内容项可以包括如在本领域中已知的、通过诸如私有内联网之类的私有网络或者诸如互联网之类的公共网络而可用的任何数字内容。示例性内容项包括但不限于web页面和其相关联内容、移动申请人以及在移动应用内和通过移动应用访问的数据、数字广告、电子邮件消息和附件、数字音频文件、数字图像、数字视频、数字文档等等。在示例性实施例中,一个或者多个内容项包括在移动应用内和经由移动应用访问和请求的数据,包括任何web内容、广告、图像、视频、音频和文档。例如,应用可以是包括物理商店定位器功能的购物应用,并且所请求的内容项是从用户家到最近的实体商店的一组方向。
[0040] 在步骤320处,与访问设备160相关联的一个或者多个数据项被SDK 162A所标识。按照一个实施例,访问设备160是诸如智能电话或者平板设备之类的移动设备,其中数据项由SDK 162A通过被集成在访问设备160内的一个或者多个传感器收集。示例性传感器包括但不限于音频输入(诸如麦克风)、图像/视频输入(诸如其或者(一个或者多个)摄像机)、光传感器、加速度计、生物计量传感器(诸如指纹扫描仪)、环境传感器(诸如压力、温度和湿度传感器)、陀螺仪、磁力计、触摸屏传感器、网络方位传感器(GPS、Wi-Fi、蓝牙、GSM/CDMA)和接近传感器。
[0041] 在一个实施例中,与访问设备160相关联的数据项采取各种各样的形式,并且可以被广泛分类为与访问设备160自身相关的数据项以及与访问设备160的环境相关的数据项。例如,与访问设备160自身相关的数据项包括设备制造商、设备模型、设备类型、设备定向、设备显示大小、设备显示亮度、设备显示文本大小和设备电池电量。与访问设备160的环境相关的示例性数据项包括音频输入、图像/视频输入、亮度/光敏度、生物计量输入(例如,指纹和视网膜扫描输入)、重力测量、环境湿度、环境温度、环境压力、位置、磁场、网络连接状态、网络连接类型、方位、访问设备位置的接近度和数据和时区。前述数据项打算是示例性数据项的综合列表,但不打算是限制所收集的数据项的数量或者类型的穷尽列表。
[0042] 本文呈现的表1提供了移动设备传感器和所收集的数据项的示例性列表。
[0043] 表1-传感器和所收集的数据项的示例性列表数据项 传感器类型 模式 适用信息
音频输入 麦克风 开/关 设备可以经由内置或者外部麦克风接受音频
电池电量 电池量表 自动 设备可以取决于剩余电池量对激励/递送信息
做出反应(或者不做出反应)(例如,如果剩余容
量低于20%并且不在充电器上,则不递送视频
流)
亮度 光传感器 自动/手动 设备可以手动设置显示亮度或者可以使用传感
器来自动调整屏幕亮度
日期 月/日/年 自动 设备可以取决于星期几(例如,工作日对
(versus)周末)或者用于显示的特定日子(例
如,每周一)对激励/递送信息做出反应(或者不
做出反应)
设备制造 N/A 制造商信息 设备可以对激励/递送信息做出反应(或者不做
商 出反应)
设备模型 N/A 制造商信息 设备可以对激励/递送信息做出反应(或者不做
出反应)
设备定向 加速度计 纵向/横向/面 返回设备定向—纵向或者横向模式、面向上或
向上/面向下 者面向下
设备类型 N/A 设备形状因子 诸如电话、平板设备、计算机等等的设备模型
显示大小 N/A 固定 设备可以取决于显示大小(例如针对平板设备
对电话对小型可穿戴屏幕而设置的一个内容)
对激励/递送信息做出反应(或者不做出反应)
指纹 生物计量 存在/不存在 设备可以取决于是否已经做出有效指纹刷过而
对激励/递送信息做出反应(或者不做出反应)
重力 环境-重力 运动检测 设备可以例如对晃动/倾斜做出反应
湿度 环境 相对湿度 设备周围的相对湿度可以影响屏幕显示,并且
设备将对激励/递送信息做出反应
图像/视 摄像机 开/关 设备将经由内置或者外部摄像机接受图像/视
频输入 频输入
位置 小区ID 通过网络连接 设备在连接到移动电话网络时访问具有唯一小
的变量 区ID的网络塔。可以导出大致用户位置
位置 GPS 开/关 开启并且锁定到GPS提供纬度/经度信息
位置 IP地址 连接/未连接 位置通常可以从访问的IP地址导出(虽然不具
有100%准确度)
位置 信标 连接/未连接 设备可以检测信标(通常经由蓝牙)来显示超本
地化内容/信息
磁场 环境 罗盘设置 设备所指的方向
网络 蓝牙 开/关 设备经由蓝牙连接到其他设备或者未连接到其
他设备
网络 移动 开/关 设备连接到移动电话网络或者未连接到移动电
话网络
网络 N/A 网络提供商 在连接到(一个或者多个)网络的情况下,提供
商信息
网络 近场通信 开/关 设备经由NFC连接到其他设备或者未连接到其
他设备
网络 Wi-Fi 开/关 设备连接移动电话网络或者未连接到移动电话
网络
方位 陀螺仪 变量x/y/z 三轴陀螺仪提供设备的方位
压力 环境 气压压力 设备周围的气压压力
接近度 接近传感器 靠近/远离 可以用来取决于设备被握持得靠近或者远离面
部而改变屏幕上行为
视网膜 生物计量 存在/不存在 设备可以取决于是否已经做出有效视网膜扫描
而对激励/递送信息做出反应(或者不做出反
应)
温度 环境 环境温度 设备周围的环境温度
文本大小 N/A 变量 设备可以以不同大小显示文本
时间 时/分/秒 自动 设备可以取决于一天中的时间(例如,工作时
间)或者用于显示的特定时间(例如,每天 在上
午10点)对激励/递送信息做出反应(或者不做
出反应)
[0044] 在表1中呈现的传感器和所收集的数据项的列表阐述了可能在访问设备160上可用的传感器的综合列表,其按照一个实施例可以采取移动设备的形式因子以及对应的传感器模式和所收集的数据项。例如,访问设备160的加速度计可以用来确定设备的定向,即,访问设备160是处于纵向还是横向模式,并且访问设备160是面向上握持还是面向下握持。在另一示例中,访问设备160的麦克风可以用来确定环境噪声是否存在和水平。
[0045] 返回图3,并且从之前示例继续,在所述示例中应用是包括物理商店定位器功能的购物应用并且所请求的内容项是从用户家到最近的实体商店的一组方向,在步骤320处,嵌入在购物应用中的SDK 162A可以标识关于示例性移动访问设备的以下数据项:(a)设备类型:Galaxy S5,(b)设备制造商:三星,(c)网络连接:AT&T无线(,d)网络连接:AT&T公共Wi-Fi,(e)一天中的时间:东部夏季时间上午10:13,(f)日期:2014年4月17日星期四,(g)查看模式:纵向,(h)环境照明:晴天/明亮,以及(i)位置:纬度33.928/经度-84.340(115 Perimeter Center P1)。进一步地,SDK 162A可以标识关于示例性第二移动访问设备的以下数据项:(a)设备类型:iPad Air,(b)设备制造商:苹果,(c)网络连接:Verizon无线,(d)一天中的时间:东部夏季时间上午10:13(,e)日期:2014年4月17日星期四(,f)查看模式:横向,(g)环境照明:办公室,以及(h)位置:纬度33.928/经度-84.340(115 Perimeter Center P1)。
[0046] 在步骤330处,多个有效负荷之一由测试模块126基于一个或者多个数据项而标识。按照一个实施例,测试模块126通过网络170从SDK 162A接收一个或者多个数据项,测试模块126将继而结合存储在配置数据储存132中的适当配置文件使用所述一个或者多个数据项,以便标识适当的有效负荷或者到存储在有效负荷数据储存136中的有效负荷的链接。从之前的示例继续,测试模块126基于配置文件基于AT&T的地图提供商是Bing®的事实将有效负荷标识为来自微软®Bing®的地图内容,并且因此在有效负荷数据储存126中找到至Bing®的适当链接,所述测试模块126已经接收了针对示例性移动访问设备的以下数据项:(a)设备类型:Galaxy S5,(b)设备制造商:三星,(c)网络连接:AT&T无线,(d)网络连接:
AT&T公共Wi-Fi,(e)一天中的时间:东部夏季时间上午10:13,(f)日期:2014年4月17日星期四(,g)查看模式:纵向,(h)环境照明:晴天/明亮,以及(i)位置:纬度33.928/经度-84.340(115 Perimeter Center P1)。在一个实施例中,所标识的有效负荷除了内容项自身之外还包括优化针对应用在其上运行的访问设备的内容项所必要的任何调整,其由测试模块126承担。从之前的示例继续,有效负荷将包括来自Bing®的地图内容,其适当适合于处于横向模式的三星Galaxy S5,并且自动调整字体、颜色以及地图显示方法,以补偿由光传感器所指示的晴天/明亮条件。
[0047] 按照一个实施例,测试模块126对有效负荷做出任何调整,以便生成可替换有效负荷,以用于对呈现给用户的可替换有效负荷执行测试的目的。所做出的、用于生成可替换有效负荷的调整示例包括但不限于:(i)标签切换,即,改变标签的文本,(ii)图像切换,(iii)按钮修改,即,改变标签、按钮的定位和/或颜色,(iv)弹出窗口修改,即改变弹出窗口的文本或者定位,以及(v)动画修改,即,修改信息被呈现给用户的方式或者定时。
[0048] 返回图3,所标识的有效负荷被传输到SDK 162A并且被缓存到访问设备160的内部存储装置164。所标识的有效负荷然后响应于针对一个或者多个内容项的请求,由SDK 162A再现在访问设备160的用户界面166上,步骤340。例如,在所标识的有效负荷是来自Bing®的、适当适合于处于横向模式的三星Galaxy S5并且自动调整字体、颜色以及地图显示方法以补偿由光传感器所指示的晴天/明亮条件的地图内容的情况下,有效负荷由SDK 162A下载,存储在内部存储装置164中,并且在用户界面166上的购物应用中内再现。
[0049] 在步骤350处,一个或者多个测试结果响应于访问设备160与所标识的有效负荷的交互由SDK 162A收集。例如,由SDK 162A监视和收集与移动应用的所有用户交互,诸如用户是否参与了点击量、用户观察了显示器多久、用户是否访问了到其他内容的链接、用户所参与的是显示器上的下拉菜单还是任何单选按钮的选择。进一步地,按照一个实施例,监视和记录用户与所标识的有效负荷交互的条件。这样的条件的示例包括但不限于访问设备的地理位置、针对访问设备的网络连接的强度、关于用户的人口信息和访问设备的环境条件。
[0050] 一个或者多个测试结果然后响应于访问设备160与所标识有效负荷的交互由SDK 162A报告给报告模块124,并且随后存储在报告数据储存134中,步骤360。例如,关于用户是否参与点击量或者用户观察了显示器多久的测试结果被异步地从SDK 162A传输到报告模块124,并且随后存储在报告数据储存134中。按照一个实施例,存储在报告数据储存134中的一个或者多个测试结果通过由应用模块152执行的web应用经由报告模块124而对于报告设备150是可访问的。
[0051] 现在转向图4,公开了一种用于对移动应用进行多变量测试的示例性方法400。在图4中示出的图示实施例中,访问设备160的应用模块162经由用户界面166接收针对一个或者多个内容项的请求,步骤410。如之前讨论的,内容项包括如在本领域中已知的、通过私有网络或者公共网络可用的任何数字内容,诸如web页面和其相关联内容、移动申请人和在移动应用内以及通过该移动应用访问的数据、数字广告、电子邮件消息和附件、数字音频文件、数字图像、数字视频、数字文档等等。在示例性实施例中,一个或者多个内容项包括在移动应用内以及经由移动应用所访问和请求的数据,包括任何web内容、广告、图像、视频、音频和文档。
[0052] 在步骤420处,与访问设备160相关联的一个或者多个数据项被SDK 162A标识。如之前结合图3讨论的,在一个实施例中,与访问设备160相关联的数据项采取各种各样的形式,并且可以被广泛地分类为与访问设备160自身相关的数据项以及与访问设备160的环境相关的数据项。
[0053] 参考回图4,按照一个实施例,然后做出关于访问设备160是否处于在线模式并且连接到网络170的确定,步骤430。按照一个实施例,SDK 162A通过分析关于访问设备160的网络连接所收集的一个或者多个数据项而做出关于访问设备160是否连接到网络170的确定。例如,由SDK 162A做出关于访问设备160是否连接到蜂窝或者Wi-Fi网络的确定。
[0054] 如果确定访问设备160处于在线模式,则基于与访问设备相关联的一个或者多个数据项而标识一组测试有效负荷中的一个,步骤440。按照一个实施例,测试模块126通过网络170从SDK 162A接收一个或者多个数据项,测试模块126将继而结合存储在配置数据储存132中的适当配置文件使用所述一个或者多个数据项,以便标识适当的有效负荷或者到存储在有效负荷数据储存136中的有效负荷的链接。从之前的示例继续,测试模块126使用存储在配置文件储存132中的配置文件基于AT&T的地图提供商是Bing®的事实将来自一组测试有效负荷中的测试有效负荷标识为来自微软®Bing®的地图内容,并且因此在有效负荷数据储存126中找到至Bing®的适当链接,所述测试模块126已经接收了针对访问设备160的以下数据项:(a)设备类型:Galaxy S5,(b)设备制造商:三星,(c)网络连接:AT&T无线,(d)网络连接:AT&T公共Wi-Fi(,e)一天中的时间:东部夏季时间上午10:13(,f)日期:2014年4月17日星期四,(g)查看模式:纵向,(h)环境照明:晴天/明亮,以及(i)位置:纬度
33.928/经度-84.340(115 Perimeter Center P1)。所标识的有效负荷响应于针对内容项的请求而被再现在访问设备160上,步骤450。
[0055] 可替换地,如果确定访问设备160处于离线模式并且未连接到网络170,则在步骤455处,基于与访问设备160相关联的一个或者多个数据项而标识默认有效负荷。从之前的示例继续,SDK 162A确定访问设备160处于离线模式,这是因为其未识别出网络连接,所述SDK 162A已经标识了针对访问设备160的以下数据项:(a)设备类型:Galaxy S5,(b)设备制造商:三星(,c)网络连接:NA,(e)一天中的时间:东部夏季时间上午10:13(,f)日期:2014年
4月17日星期四,(g)查看模式:纵向,(h)环境照明:晴天/明亮,以及(i)位置:NA。因此,SDK 
162A基于与访问设备160相关联的一个或者多个数据项而从内部存储装置164标识适当默认有效负荷。按照一个实施例,当应用初始安装在访问设备160上时,安装将包括被存储在内部存储装置163中的一个或者多个默认有效负荷作为初始由管理模块122确定的集合。从我们之前的示例继续,SDK 162A从内部存储装置164选择适当适合于处于纵向观看模式下的三星Galaxy S5的显示区域的默认有效负荷,在该情况下,来自谷歌MapsTM的地图内容针对Galaxy S5进行格式化,所述SDK 162A已经标识了针对访问设备160的以下数据项:(a)设备类型:Galaxy S5,(b)设备制造商:三星,(c)网络连接:NA,(e)一天中的时间:东部夏季时间上午10:13,(f)日期:2014年4月17日星期四,(g)查看模式:纵向,(h)环境照明:晴天/明亮,以及(i)位置:NA。在步骤455中,默认有效负荷然后响应于针对内容项的请求而被再现在访问设备160上。
[0056] 接下来,在步骤460处,响应于访问设备160和所再现的有效负荷之间的交互的一个或者多个测试结果被收集。例如,由SDK 162A监视和收集与移动应用的所有用户交互,诸如用户是否参与了点击量、用户观察了显示器多久、用户是否访问了到其他内容的链接、用户所参与的是显示器上的下拉菜单还是任何单选按钮的选择。进一步地,按照一个实施例,用户与所标识的有效负荷交互的条件被SDK 162A监视和记录。这样的条件的示例包括但不限于访问针对访问设备的网络连接的状态、关于用户的人口信息和访问设备的环境条件。
[0057] 一个或者多个测试结果然后响应于访问设备160与所标识的有效负荷的交互由SDK 162A报告给报告模块124,并且随后存储在报告数据储存134中,步骤470,当访问设备160处于在线模式并且连接到网络170时。按照一个实施例,如在步骤430中示出的,如果确定访问设备处于离线模式中,则SDK 162A将一个或者多个测试结果维持在内部存储装置
164中,直到访问设备160连接到网络170为止,此时SDK 162A将测试结果报告给报告模块
124。
[0058] 现在转向图5,图示了对移动应用进行示例性多变量测试的屏幕图。应用X的屏幕截图510表明了访问设备体验A,并且屏幕截图512表明了访问设备体验B。在比较屏幕截图510和512时,两个客户体验之间的显著不同包括与访问设备体验A中的顶部链接列表522相比的访问设备体验A中的广告512。每一个访问设备体验的与相应用户的交互(例如,广告
512的点击率或者522的URL链接之一)被系统100的SDK 162A记录,并且最终经由服务器设备110的报告模块124报告给报告设备150。
[0059] 图1到5是虑及解释本公开内容的概念图示。应该理解的是,本公开内容的实施例的各方面可以以硬件、固件、软件或者其组合来实现。在这样的实施例中,各种组件和/或步骤可以以硬件、固件和/或软件来实现,以执行本公开内容的功能。也就是说,硬件、固件或者软件模块的相同片段可以执行所图示的框(例如,组件或者步骤)中的一个或者多个。
[0060] 在软件实现方式中,计算机软件(例如,程序或者其他指令)和/或数据被存储在机器可读介质上作为计算机程序产品的一部分,并且经由可移除存储驱动器、硬盘驱动器或者通信接口加载到计算机系统或者其他设备或机器中。计算机程序(也被称为计算机控制逻辑或者计算机可读程序代码)被存储在主要和/或次要存储器中,并且由一个或者多个处理器(控制器等等)执行以使一个或者多个处理器执行本公开内容的功能,如本文描述的。在本文档中,术语“机器可读介质”、“计算机程序介质”和“计算机可用介质”被用来一般指代诸如随机存取存储器(RAM);只读存储器(ROM);可移除存储单元(例如,磁盘或者光盘、闪速存储器设备等等);硬盘等等之类的介质。
[0061] 特别地,上文的附图和示例并不意味着将本公开内容的范围限制到单个实施例,这是因为其他实施例通过交换所描述的或者所图示的元件中的一些或者全部是可能的。而且,在本公开内容的某些元件可以使用已知组件部分或者完全实现的情况下,仅描述了这样的已知组件的、对于理解本公开内容而言必要的那些部分,并且省略了这样的已知组件的其他部分的详细描述,以免使本公开内容晦涩难懂。在本说明书中,示出了单个组件的实施例不应必须被限制为包括多个相同组件的其他实施例,并且反之亦然,除非在本文中以其他方式明确说明。而且,本申请人不打算将说明书或者权利要求书中的任何术语归于不常见或者特殊意义,除非这样明确阐述。进一步地,本公开内容涵盖了针对本文中通过图示的方式引用的已知组件而言的现有和未来的已知等同物。
[0062] 特定实施例的前述描述如此完全地揭示了本公开内容的一般性质,使得其他人可以通过应用相关(一个或者多个)领域技术内的知识(包括本文通过引用所引述和并入的文档的内容)而在没有过度实验的情况下容易地针对各种应用修改和/或适配这样的特定实施例,而不偏离本公开内容的一般概念。这样的适配和修改因此打算基于本文呈现的教导和指导而在所公开实施例的等同物的意义和范围内。要理解的是,本文的用语和术语是出于描述而非限制的目的,使得本说明书的术语或者用语要由本领域技术人员根据本文呈现的教导和指导结合相关(一个或者多个)领域技术人员的知识来解译。
[0063] 虽然上文描述了本公开内容的各种实施例,但是应该理解的是,其通过示例而非限制的方式呈现。对于相关(一个或者多个)领域技术人员而言显而易见的是,在形式和细节方面的各种改变可以在此处在不偏离本公开内容的精神和范围的情况下做出。因此,本公开内容不应该被以上描述的示例性实施例中的任一项限制,而是应该仅仅按照以下权利要求和其等同物来限定。

当前第1页 第1页 第2页 第3页