CN110109700B - 一种针对iOS App无埋点的数据统计方法及装置 - Google Patents

一种针对iOS App无埋点的数据统计方法及装置 Download PDF

Info

Publication number
CN110109700B
CN110109700B CN201910379469.3A CN201910379469A CN110109700B CN 110109700 B CN110109700 B CN 110109700B CN 201910379469 A CN201910379469 A CN 201910379469A CN 110109700 B CN110109700 B CN 110109700B
Authority
CN
China
Prior art keywords
page
unit
data
ios app
judging
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910379469.3A
Other languages
English (en)
Other versions
CN110109700A (zh
Inventor
马健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiqi Chengdu Technology Co ltd
Original Assignee
Jiqi Chengdu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiqi Chengdu Technology Co ltd filed Critical Jiqi Chengdu Technology Co ltd
Priority to CN201910379469.3A priority Critical patent/CN110109700B/zh
Publication of CN110109700A publication Critical patent/CN110109700A/zh
Application granted granted Critical
Publication of CN110109700B publication Critical patent/CN110109700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种针对iOS App无埋点的数据统计方法及装置。该方法通过添加页面的分类方法,在页面执行加载方法时,定义两个页面打开和关闭的方法,并利用iOS App运行原理,将“页面即将打开的系统方法”和“页面即将关闭的系统方法”分别对应替换为本发明的打开和关闭方法,将方法进行置换。在页面打开或关闭的方法插入后,在用户点击或者关闭页面时,插入的方法就会收到页面中各种属性信息,这时可对数据进行一些策略处理,以上报高质量的数据无侵入式数据统计。统计用户行为数据不用担心新老版本兼容问题,并且不会破坏程序完整性,筛除了无效数据,数据精准,可读性强,适合App中各种复杂场景,接入简单、成本低。

Description

一种针对iOS App无埋点的数据统计方法及装置
技术领域
本发明涉及网络技术领域,尤其涉及一种针对iOS App无埋点的数据统计方法及装置。
背景技术
随着移动互联网技术的飞速发展,各类App层出不穷。目前,App的功能越来越丰富,为了对App进行改善以不断地提升用户的体验,厂商需要需要统计用户对App功能的使用情况,再根据这些使用情况绘制用户画像,方便有针对性地提供更加受用户喜爱的功能。
传统统计用户使用情况一般通过在App的运行代码中插入编码的方式来处理,这样会破坏App原有代码的结构,并且版本间也会有无法兼容的问题,因此,有必要提出一种针对iOS App无埋点的数据统计方法及装置,以解决上述问题。
发明内容
本发明提供一种针对iOS App无埋点的数据统计方法及装置,以解决传统统计用户使用情况一般通过在App的运行代码中插入编码的方式来处理,这样会破坏App原有代码的结构,并且版本间也会有无法兼容的问题。
第一方面,本发明提供一种针对iOS App无埋点的数据统计方法,所述方法包括如下步骤:
响应于打开iOS App页面的操作,判断预设的打开页面策略开关是否开启,其中,预先在iOS App中插入所述预设的打开页面策略开关,以在页面执行打开操作的时候替换iOS App内置的页面即将打开的系统方法;
如果所述预设的打开页面策略开关已经开启,判断所述页面是否是系统页面;
如果所述页面是系统页面,停止收集所述页面的数据;
如果所述页面不是系统页面,判断所述页面是否是系统容器页面;
如果所述页面是系统容器页面,停止收集所述页面的数据;
如果所述页面不是系统容器页面,判断所述页面是否是容器页面中的子页面;
如果所述页面是容器页面中的子页面,从系统容器中移除所述页面,停止收集所述页面的数据;
如果所述页面不是容器页面中的子页面,判断所述页面是否包含子页面;
如果所述页面包含子页面,记录所述页面及所述页面的所有子页面;
记录所述页面及所述页面的所有子页面的有效身份信息;
如果所述页面不包含子页面,判断所述页面是否包含父页面;
如果所述页面不包含父页面,判断所述父页面是否是弹框;
如果所述父页面是弹框,停止收集所述页面的数据;
如果所述父页面不是弹框,记录所述页面的有效身份信息;
如果所述页面包含父页面,记录所述页面的有效身份信息;
将所述页面的有效身份信息缓存至数据库。
结合第一方面,在第一方面的第一种可实现方式中,所述方法还包括:
响应于关闭iOS App页面的操作,判断预设的关闭页面策略开关是否开启,其中,预先在iOS App中插入所述预设的关闭页面策略开关,以在页面执行关闭操作的时候替换iOS App内置的页面即将关闭的系统方法;
如果所述预设的关闭页面策略开关已经开启,判断所述页面是否是系统页面;
如果所述页面是系统页面,停止收集所述页面的数据;
如果所述页面不是系统页面,判断所述页面是否是系统容器页面;
如果所述页面是系统容器页面,停止收集所述页面的数据;
如果所述页面不是系统容器页面,判断所述页面的标示码与上一个页面的标识码是否一致;
如果所述页面的标示码与上一个页面的标识码一致,
将所述页面的有效身份信息缓存至数据库。
结合第一方面的第一种可实现方式,在第一方面的第二种可实现方式中,所述方法还包括:
响应于点击iOS App系统控件的操作,判断预设的配置开关是否开启,其中,预先在iOSApp中插入所述配置开关,以在系统控件发生点击操作的时候替换iOS App内置的系统行为触发方法和选中状态方法;
如果所述配置开关已经开启,获取所述系统控件的用户响应链;
判断所述用户响应链的对象是否为页面;
如果所述用户响应链的对象是页面,记录所述系统控件的相关信息;
将所述系统控件的相关信息缓存至数据库;
如果所述用户响应链的对象不是页面,判断是否存在所述用户响应链的上一次链对象;
如果存在所述用户响应链的上一次链对象,重复执行判断所述用户响应链的对象是否为页面的步骤;
如果不存在所述用户响应链的上一次链对象,终止并退出统计。
结合第一方面的第二种可实现方式,在第一方面的第三种可实现方式中,所述方法还包括:
读取数据库中的数据;
将所述数据使用protobuf格式进行处理,再进行压缩;
响应于启动iOS App的操作,将压缩后的数据进行第一次上报;
在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报;
在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报;
判断预设的配置开关是否开启;
如果所述配置开关已经开启,判断是否存在待上报的新数据;
如果存在待上报的新数据,对所述待上报的新数据进行上报;
对所述待上报的新数据上报成功后,清除上报成功的数据;
记录上报次数并对所述上报次数累加1次。
结合第一方面的第三种可实现方式,在第一方面的第四种可实现方式中,所述方法还包括:
判断所述上报次数是否大于4次;
如果所述上报次数大于4次,检测定时器是否启动;
如果所述定时器没有启动,启动所述定时器;
如果所述定时器已经启动,在定时的2分钟内判断预设的配置开关是否开启;
如果在定时的2分钟内预设的配置开关为关闭,终止对数据的上报。
第二方面,本发明提供一种针对iOS App无埋点的数据统计装置,所述装置包括:
判断单元,用于响应于打开iOS App页面的操作,判断预设的打开页面策略开关是否开启,其中,预先在iOS App中插入所述预设的打开页面策略开关,以在页面执行打开操作的时候替换iOS App内置的页面即将打开的系统方法;
所述判断单元,还用于在所述预设的打开页面策略开关已经开启时,判断所述页面是否是系统页面;
停止单元,用于在所述页面是系统页面时,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是系统页面时,判断所述页面是否是系统容器页面;
所述停止单元,还用于在所述页面是系统容器页面时,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是系统容器页面时,判断所述页面是否是容器页面中的子页面;
移除单元,用于在所述页面是容器页面中的子页面时,从系统容器中移除所述页面,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是容器页面中的子页面时,判断所述页面是否包含子页面;
记录单元,用于在所述页面包含子页面时,记录所述页面及所述页面的所有子页面;
所述记录单元,还用于记录所述页面及所述页面的所有子页面的有效身份信息;
所述判断单元,还用于在所述页面不包含子页面时,判断所述页面是否包含父页面;
所述判断单元,还用于在所述页面不包含父页面时,判断所述父页面是否是弹框;
所述停止单元,还用于在所述父页面是弹框时,停止收集所述页面的数据;
所述记录单元,还用于在所述父页面不是弹框时,记录所述页面的有效身份信息;
所述记录单元,还用于在所述页面包含父页面时,记录所述页面的有效身份信息;
缓存单元,用于将所述页面的有效身份信息缓存至数据库。
结合第二方面,在第二方面的第一种可实现方式中,所述装置中:
所述判断单元,还用于响应于关闭iOS App页面的操作,判断预设的关闭页面策略开关是否开启,其中,预先在iOS App中插入所述预设的关闭页面策略开关,以在页面执行关闭操作的时候替换iOS App内置的页面即将关闭的系统方法;
所述判断单元,还用于在所述预设的关闭页面策略开关已经开启时,判断所述页面是否是系统页面;
所述停止单元,还用于在所述页面是系统页面时,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是系统页面时,判断所述页面是否是系统容器页面;
所述停止单元,还用于在所述页面是系统容器页面时,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是系统容器页面时,判断所述页面的标示码与上一个页面的标识码是否一致;
所述缓存单元,还用于在所述页面的标示码与上一个页面的标识码一致时,将所述页面的有效身份信息缓存至数据库。
结合第二方面的第一种可实现方式,在第二方面的第二种可实现方式中,所述装置中:
所述判断单元,还用于响应于点击iOS App系统控件的操作,判断预设的配置开关是否开启,其中,预先在iOS App中插入所述配置开关,以在系统控件发生点击操作的时候替换iOS App内置的系统行为触发方法和选中状态方法;
还包括获取单元,用于在所述配置开关已经开启时,获取所述系统控件的用户响应链;
所述判断单元,还用于判断所述用户响应链的对象是否为页面;
所述记录单元,还用于在所述用户响应链的对象是页面时,记录所述系统控件的相关信息;
所述缓存单元,还用于将所述系统控件的相关信息缓存至数据库;
所述判断单元,还用于在所述用户响应链的对象不是页面时,判断是否存在所述用户响应链的上一次链对象;
重复单元,用于在存在所述用户响应链的上一次链对象时,重复执行判断所述用户响应链的对象是否为页面的步骤;
终止单元,用于在不存在所述用户响应链的上一次链对象时,终止并退出统计。
结合第二方面的第二种可实现方式,在第二方面的第三种可实现方式中,所述装置还包括:
读取单元,用于读取数据库中的数据;
处理单元,用于将所述数据使用protobuf格式进行处理,再进行压缩;
上报单元,用于响应于启动iOS App的操作,将压缩后的数据进行第一次上报;
所述上报单元,还用于在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报;
所述上报单元,还用于在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报;
所述判断单元,还用于判断预设的配置开关是否开启;
所述判断单元,还用于在所述配置开关已经开启时,判断是否存在待上报的新数据;
所述上报单元,还用于在存在待上报的新数据,对所述待上报的新数据进行上报;
清楚单元,用于对所述待上报的新数据上报成功后,清除上报成功的数据;
所述记录单元,还用于记录上报次数并对所述上报次数累加1次。
结合第二方面的第三种可实现方式,在第二方面的第四种可实现方式中,所述装置中:
所述判断单元,还用于判断所述上报次数是否大于4次;
还包括检测单元,用于在所述上报次数大于4次时,检测定时器是否启动;
启动单元,用于在所述定时器没有启动时,启动所述定时器;
所述判断单元,还用于在所述定时器已经启动时,在定时的2分钟内判断预设的配置开关是否开启;
所述终止单元,还用于在定时的2分钟内预设的配置开关为关闭时,终止对数据的上报。
由以上技术方案可知,本发明提供的一种针对iOS App无埋点的数据统计方法及装置,无侵入式数据统计,统计用户行为数据不用担心新老版本兼容问题,并且不会破坏程序完整性;并且,本发明的方案通过高效的策略方法,筛除了无效数据,数据精准,可读性强;此外,本发明的方案适合App中各种复杂场景,接入简单、成本低。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的针对iOS App无埋点的数据统计方法一实施例的流程图。
图2为本发明提供的针对iOS App无埋点的数据统计方法一可选实施方式的流程图。
图3为本发明提供的针对iOS App无埋点的数据统计方法一可选实施方式的流程图。
图4为本发明提供的针对iOS App无埋点的数据统计方法一可选实施方式的流程图。
图5为本发明提供的针对iOS App无埋点的数据统计方法一可选实施方式的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。以下结合附图,详细说明本发明各实施例提供的技术方案。
本发明的无埋点数据统计的基本原则在于充分利用iOS“运行时”的优势,将控件分为页面和组件两大类。通过添加页面的分类方法,在页面执行加载方法时候,定义两个页面打开和关闭的方法,并利用iOS App运行原理,将“页面即将打开的系统方法”和“页面即将关闭的系统方法”分别对应替换为本发明的打开和关闭方法,将方法进行置换,统计结束后可继续执行系统方法,不影响系统本来功能。
在页面打开或关闭的方法插入后,在用户点击或者关闭页面时,插入的方法就会收到页面中各种属性信息,这时可对数据进行一些策略处理,以上报高质量的数据。策略分两种情况,一种是页面打开的情况,一种是页面关闭的情况。
请参阅图1,为本发明提供的一种针对iOS App无埋点的数据统计方法,具体为页面打开的情况的方法,所述方法包括如下步骤:
步骤S101,响应于打开iOS App页面的操作,判断预设的打开页面策略开关是否开启,其中,预先在iOS App中插入所述预设的打开页面策略开关,以在页面执行打开操作的时候替换iOS App内置的“页面即将打开的系统方法”。
如果所述预设的打开页面策略开关没有开启,则执行步骤S1011,停止收集页面的数据。如果所述预设的打开页面策略开关已经开启,执行步骤S102,判断所述页面是否是系统页面。
如果所述页面是系统页面,则执行步骤S1011,停止收集所述页面的数据。如果所述页面不是系统页面,执行步骤S103,判断所述页面是否是系统容器页面。如果所述页面是系统容器页面,则执行步骤S1011,停止收集所述页面的数据。由于系统的行为也会自动上报一些数据,本发明通过过滤掉系统页面、系统容器页面,避免了无效信息的收集,降低了垃圾信息的数量。
如果所述页面不是系统容器页面,执行步骤S104,判断所述页面是否是容器页面中的子页面。如果所述页面是容器页面中的子页面,执行步骤S1041,从系统容器中移除所述页面,之后执行步骤S1011,停止收集所述页面的数据。本发明不对容器页面中的子页面数据进行统计,因为其不是用户可视的页面。
如果所述页面不是容器页面中的子页面,执行步骤S105,判断所述页面是否包含子页面。如果所述页面包含子页面,执行步骤S1051,记录所述页面及所述页面的所有子页面。步骤S1052,记录所述页面及所述页面的所有子页面的有效身份信息。本发明通过判断所述页面是否包含子页面,如果有则需要对其进行逻辑处理,保证后面进入上一步的时候能够被有效的过滤,避免上报无效数据。
如果所述页面不包含子页面,执行步骤S106,判断所述页面是否包含父页面。如果所述页面不包含父页面,执行步骤S107,判断所述父页面是否是弹框。如果所述父页面是弹框,则执行步骤S1011,停止收集所述页面的数据,因为弹框不算做页面。
如果所述父页面不是弹框,则执行步骤S1052,记录所述页面的有效身份信息。如果所述页面包含父页面,也执行步骤S1052,记录所述页面的有效身份信息。最后执行步骤S108,将所述页面的有效身份信息缓存至数据库。页面的有效身份信息包括标题、类名、生成页面标示等等。
请参阅图2,在本发明一可选实施方式中,具体为页面关闭的情况的方法,所述方法包括:
步骤S201,响应于关闭iOS App页面的操作,判断预设的关闭页面策略开关是否开启,其中,预先在iOS App中插入所述预设的关闭页面策略开关,以在页面执行关闭操作的时候替换iOS App内置的页面即将关闭的系统方法。
如果所述预设的关闭页面策略开关没有开启,执行步骤S2021,停止收集所述页面的数据。如果所述预设的关闭页面策略开关已经开启,执行步骤S202,判断所述页面是否是系统页面。如果所述页面是系统页面,执行步骤S2021,停止收集所述页面的数据。如果所述页面不是系统页面,执行步骤S203,判断所述页面是否是系统容器页面。如果所述页面是系统容器页面,执行步骤S2021,停止收集所述页面的数据。
如果所述页面不是系统容器页面,执行步骤S204,判断所述页面的标示码与上一个页面的标识码是否一致。如果所述页面的标示码与上一个页面的标识码一致,执行步骤S205,将所述页面的有效身份信息缓存至数据库,等待时机上报。如果所述页面的标示码与上一个页面的标识码不一致,则执行步骤S2021,停止收集所述页面的数据。本发明通过当前页面生成标识码,匹配与之前页面生成的标识码是否一致。因为页面有开肯定会有关,通过该策略可大量减少逻辑复杂度,并提高准确度。
本发明还提出无埋点控件统计方式。控件分为三种,分别是基于行为的控件,collectionViewCell、tableViewCell。通过collectionViewCell、tableViewCell等监听setSelected方法比直接通过监听tableview或者collectionview的代理方法有独特的优势,不用担心复合页面实现,父页面实现子页面不实现、页面复用等等的问题。本发明基于系统控件的点击行为,添加系统根控件(UIControl)的分类,添加本发明的方法,并在加载中置换系统行为触发方法(sendAction:to:forEvent),用户每一次的点击行为都会被有效统计。此外,基于复合控件(如UITableViewCell,UICollectionViewCell),在技加载中置换选中状态方法(setSeleted:animated:)方法,因为只要用户有点击行为,选中状态就会发生变更,而该方法的交换,完成了统计方法的插入。通过控件的响应链找出符合要求的页面,并将该按钮和页面的关系进行建立,进行统计。
请参阅图3,在本发明一可选实施方式中,所述方法还包括:
步骤S301,响应于点击iOS App系统控件的操作,判断预设的配置开关是否开启,其中,预先在iOS App中插入所述配置开关,以在系统控件发生点击操作的时候替换iOSApp内置的系统行为触发方法和选中状态方法。
如果所述配置开关没有开启,执行步骤S307,终止并退出统计。如果所述配置开关已经开启,步骤S302,获取所述系统控件的用户响应链。步骤S303,判断所述用户响应链的对象是否为页面,例如普通页面或者容器类页面。如果所述用户响应链的对象是页面,步骤S304,记录所述系统控件的相关信息。步骤S305,将所述系统控件的相关信息缓存至数据库。如果所述用户响应链的对象不是页面,步骤S306,判断是否存在所述用户响应链的上一次链对象。如果存在所述用户响应链的上一次链对象,重复执行判断所述用户响应链的对象是否为页面的步骤。如果不存在所述用户响应链的上一次链对象,执行步骤S307,终止并退出统计。
请参阅图4,在本发明一可选实施方式中,所述方法还包括:
步骤S401,读取数据库中的数据。
步骤S402,将所述数据使用protobuf格式进行处理,再进行gzip压缩。
步骤S403,响应于启动iOS App的操作,将压缩后的数据进行第一次上报。
步骤S404,在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报。
步骤S405,在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报。以上几次为高频触发,目的在于最快的速度将用户大量的数据进行上报。
步骤S406,判断预设的配置开关是否开启。如果所述配置开关已经开启,执行步骤S407,判断是否存在待上报的新数据。如果存在待上报的新数据,执行步骤S408,对所述待上报的新数据进行上报。
步骤S409,对所述待上报的新数据上报成功后,清除上报成功的数据。
步骤S410,记录上报次数并对所述上报次数累加1次。
请参阅图5,在本发明一可选实施方式中,所述方法还包括:
步骤S501,判断所述上报次数是否大于4次。如果所述上报次数大于4次,执行步骤S502,检测定时器是否启动。如果所述定时器没有启动,执行步骤S503,启动所述定时器。如果所述定时器已经启动,执行步骤S504,在定时的2分钟内判断预设的配置开关是否开启。
如果在定时的2分钟内预设的配置开关为关闭,执行步骤S505,终止对数据的上报。如果在定时的2分钟内预设的配置开关为开启,则可以执行图4的步骤S407,判断是否存在待上报的新数据。
由以上实施方式可知,本发明提供的一种针对iOS App无埋点的数据统计方法,无侵入式数据统计,统计用户行为数据不用担心新老版本兼容问题,并且不会破坏程序完整性;并且,本发明的方案通过高效的策略方法,筛除了无效数据,数据精准,可读性强;此外,本发明的方案适合App中各种复杂场景,接入简单、成本低。本发明还支持pod的方式引入,一行代码搞定,用户在程序初始化的时候启动即可。
本发明还提供一种针对iOS App无埋点的数据统计装置,所述装置包括:
判断单元,用于响应于打开iOS App页面的操作,判断预设的打开页面策略开关是否开启,其中,预先在iOS App中插入所述预设的打开页面策略开关,以在页面执行打开操作的时候替换iOS App内置的页面即将打开的系统方法。所述判断单元,还用于在所述预设的打开页面策略开关已经开启时,判断所述页面是否是系统页面。停止单元,用于在所述页面是系统页面时,停止收集所述页面的数据。
所述判断单元,还用于在所述页面不是系统页面时,判断所述页面是否是系统容器页面。所述停止单元,还用于在所述页面是系统容器页面时,停止收集所述页面的数据。所述判断单元,还用于在所述页面不是系统容器页面时,判断所述页面是否是容器页面中的子页面。移除单元,用于在所述页面是容器页面中的子页面时,从系统容器中移除所述页面,停止收集所述页面的数据。
所述判断单元,还用于在所述页面不是容器页面中的子页面时,判断所述页面是否包含子页面。记录单元,用于在所述页面包含子页面时,记录所述页面及所述页面的所有子页面。所述记录单元,还用于记录所述页面及所述页面的所有子页面的有效身份信息。所述判断单元,还用于在所述页面不包含子页面时,判断所述页面是否包含父页面。所述判断单元,还用于在所述页面不包含父页面时,判断所述父页面是否是弹框。
所述停止单元,还用于在所述父页面是弹框时,停止收集所述页面的数据。所述记录单元,还用于在所述父页面不是弹框时,记录所述页面的有效身份信息。所述记录单元,还用于在所述页面包含父页面时,记录所述页面的有效身份信息。缓存单元,用于将所述页面的有效身份信息缓存至数据库。
在一可选实施方式中,所述装置中:所述判断单元,还用于响应于关闭iOS App页面的操作,判断预设的关闭页面策略开关是否开启,其中,预先在iOS App中插入所述预设的关闭页面策略开关,以在页面执行关闭操作的时候替换iOS App内置的页面即将关闭的系统方法。所述判断单元,还用于在所述预设的关闭页面策略开关已经开启时,判断所述页面是否是系统页面。
所述停止单元,还用于在所述页面是系统页面时,停止收集所述页面的数据。所述判断单元,还用于在所述页面不是系统页面时,判断所述页面是否是系统容器页面。所述停止单元,还用于在所述页面是系统容器页面时,停止收集所述页面的数据。所述判断单元,还用于在所述页面不是系统容器页面时,判断所述页面的标示码与上一个页面的标识码是否一致。所述缓存单元,还用于在所述页面的标示码与上一个页面的标识码一致时,将所述页面的有效身份信息缓存至数据库。
在一可选实施方式中,所述装置中:所述判断单元,还用于响应于点击iOS App系统控件的操作,判断预设的配置开关是否开启,其中,预先在iOS App中插入所述配置开关,以在系统控件发生点击操作的时候替换iOS App内置的系统行为触发方法和选中状态方法。还包括获取单元,用于在所述配置开关已经开启时,获取所述系统控件的用户响应链。所述判断单元,还用于判断所述用户响应链的对象是否为页面。所述记录单元,还用于在所述用户响应链的对象是页面时,记录所述系统控件的相关信息。
所述缓存单元,还用于将所述系统控件的相关信息缓存至数据库。所述判断单元,还用于在所述用户响应链的对象不是页面时,判断是否存在所述用户响应链的上一次链对象。重复单元,用于在存在所述用户响应链的上一次链对象时,重复执行判断所述用户响应链的对象是否为页面的步骤。终止单元,用于在不存在所述用户响应链的上一次链对象时,终止并退出统计。
在一可选实施方式中,所述装置还包括:读取单元,用于读取数据库中的数据。处理单元,用于将所述数据使用protobuf格式进行处理,再进行压缩。上报单元,用于响应于启动iOS App的操作,将压缩后的数据进行第一次上报。所述上报单元,还用于在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报。所述上报单元,还用于在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报。
所述判断单元,还用于判断预设的配置开关是否开启。所述判断单元,还用于在所述配置开关已经开启时,判断是否存在待上报的新数据。所述上报单元,还用于在存在待上报的新数据,对所述待上报的新数据进行上报。清楚单元,用于对所述待上报的新数据上报成功后,清除上报成功的数据。所述记录单元,还用于记录上报次数并对所述上报次数累加1次。
在一可选实施方式中,所述装置中:所述判断单元,还用于判断所述上报次数是否大于4次。还包括检测单元,用于在所述上报次数大于4次时,检测定时器是否启动。启动单元,用于在所述定时器没有启动时,启动所述定时器。所述判断单元,还用于在所述定时器已经启动时,在定时的2分钟内判断预设的配置开关是否开启。所述终止单元,还用于在定时的2分钟内预设的配置开关为关闭时,终止对数据的上报。
本发明实施例还提供一种存储介质,本发明实施例还提供一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现本发明提供的针对iOSApp无埋点的数据统计方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:Read-OnlyMemory,简称:ROM)或随机存储记忆体(英文:RandomAccessMemory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于针对iOSApp无埋点的数据统计装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
以上所述的本发明实施方式并不构成对本发明保护范围的限定。

Claims (6)

1.一种针对iOS App无埋点的数据统计方法,其特征在于,所述方法包括如下步骤:
响应于打开iOS App页面的操作,判断预设的打开页面策略开关是否开启,其中,预先在iOS App中插入所述预设的打开页面策略开关,以在页面执行打开操作的时候替换iOSApp内置的页面即将打开的系统方法;
如果所述预设的打开页面策略开关已经开启,判断所述页面是否是系统页面;
如果所述页面是系统页面,停止收集所述页面的数据;
如果所述页面不是系统页面,判断所述页面是否是系统容器页面;
如果所述页面是系统容器页面,停止收集所述页面的数据;
如果所述页面不是系统容器页面,判断所述页面是否是容器页面中的子页面;
如果所述页面是容器页面中的子页面,从系统容器中移除所述页面,停止收集所述页面的数据;
如果所述页面不是容器页面中的子页面,判断所述页面是否包含子页面;
如果所述页面包含子页面,记录所述页面及所述页面的所有子页面;
记录所述页面及所述页面的所有子页面的有效身份信息;
如果所述页面不包含子页面,判断所述页面是否包含父页面;
如果所述页面不包含父页面,判断所述父页面是否是弹框;
如果所述父页面是弹框,停止收集所述页面的数据;
如果所述父页面不是弹框,记录所述页面的有效身份信息;
如果所述页面包含父页面,记录所述页面的有效身份信息;
将所述页面的有效身份信息缓存至数据库;
所述方法还包括:
响应于关闭iOS App页面的操作,判断预设的关闭页面策略开关是否开启,其中,预先在iOS App中插入所述预设的关闭页面策略开关,以在页面执行关闭操作的时候替换iOSApp内置的页面即将关闭的系统方法;
如果所述预设的关闭页面策略开关已经开启,判断所述页面是否是系统页面;
如果所述页面是系统页面,停止收集所述页面的数据;
如果所述页面不是系统页面,判断所述页面是否是系统容器页面;
如果所述页面是系统容器页面,停止收集所述页面的数据;
如果所述页面不是系统容器页面,判断所述页面的标示码与上一个页面的标识码是否一致;
如果所述页面的标示码与上一个页面的标识码一致,
将所述页面的有效身份信息缓存至数据库;
所述方法还包括:
响应于点击iOS App系统控件的操作,判断预设的配置开关是否开启,其中,预先在iOSApp中插入所述配置开关,以在系统控件发生点击操作的时候替换iOS App内置的系统行为触发方法和选中状态方法;
如果所述配置开关已经开启,获取所述系统控件的用户响应链;
判断所述用户响应链的对象是否为页面;
如果所述用户响应链的对象是页面,记录所述系统控件的相关信息;
将所述系统控件的相关信息缓存至数据库;
如果所述用户响应链的对象不是页面,判断是否存在所述用户响应链的上一次链对象;
如果存在所述用户响应链的上一次链对象,重复执行判断所述用户响应链的对象是否为页面的步骤;
如果不存在所述用户响应链的上一次链对象,终止并退出统计。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
读取数据库中的数据;
将所述数据使用protobuf格式进行处理,再进行压缩;
响应于启动iOS App的操作,将压缩后的数据进行第一次上报;
在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报;
在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报;
判断预设的配置开关是否开启;
如果所述配置开关已经开启,判断是否存在待上报的新数据;
如果存在待上报的新数据,对所述待上报的新数据进行上报;
对所述待上报的新数据上报成功后,清除上报成功的数据;
记录上报次数并对所述上报次数累加1次。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
判断所述上报次数是否大于4次;
如果所述上报次数大于4次,检测定时器是否启动;
如果所述定时器没有启动,启动所述定时器;
如果所述定时器已经启动,在定时的2分钟内判断预设的配置开关是否开启;
如果在定时的2分钟内预设的配置开关为关闭,终止对数据的上报。
4.一种针对iOS App无埋点的数据统计装置,其特征在于,所述装置包括:
判断单元,用于响应于打开iOS App页面的操作,判断预设的打开页面策略开关是否开启,其中,预先在iOS App中插入所述预设的打开页面策略开关,以在页面执行打开操作的时候替换iOS App内置的页面即将打开的系统方法;
所述判断单元,还用于在所述预设的打开页面策略开关已经开启时,判断所述页面是否是系统页面;
停止单元,用于在所述页面是系统页面时,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是系统页面时,判断所述页面是否是系统容器页面;
所述停止单元,还用于在所述页面是系统容器页面时,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是系统容器页面时,判断所述页面是否是容器页面中的子页面;
移除单元,用于在所述页面是容器页面中的子页面时,从系统容器中移除所述页面,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是容器页面中的子页面时,判断所述页面是否包含子页面;
记录单元,用于在所述页面包含子页面时,记录所述页面及所述页面的所有子页面;
所述记录单元,还用于记录所述页面及所述页面的所有子页面的有效身份信息;
所述判断单元,还用于在所述页面不包含子页面时,判断所述页面是否包含父页面;
所述判断单元,还用于在所述页面不包含父页面时,判断所述父页面是否是弹框;
所述停止单元,还用于在所述父页面是弹框时,停止收集所述页面的数据;
所述记录单元,还用于在所述父页面不是弹框时,记录所述页面的有效身份信息;
所述记录单元,还用于在所述页面包含父页面时,记录所述页面的有效身份信息;
缓存单元,用于将所述页面的有效身份信息缓存至数据库;
所述装置中:
所述判断单元,还用于响应于关闭iOS App页面的操作,判断预设的关闭页面策略开关是否开启,其中,预先在iOS App中插入所述预设的关闭页面策略开关,以在页面执行关闭操作的时候替换iOS App内置的页面即将关闭的系统方法;
所述判断单元,还用于在所述预设的关闭页面策略开关已经开启时,判断所述页面是否是系统页面;
所述停止单元,还用于在所述页面是系统页面时,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是系统页面时,判断所述页面是否是系统容器页面;
所述停止单元,还用于在所述页面是系统容器页面时,停止收集所述页面的数据;
所述判断单元,还用于在所述页面不是系统容器页面时,判断所述页面的标示码与上一个页面的标识码是否一致;
所述缓存单元,还用于在所述页面的标示码与上一个页面的标识码一致时,将所述页面的有效身份信息缓存至数据库;
所述装置中:
所述判断单元,还用于响应于点击iOS App系统控件的操作,判断预设的配置开关是否开启,其中,预先在iOS App中插入所述配置开关,以在系统控件发生点击操作的时候替换iOS App内置的系统行为触发方法和选中状态方法;
还包括获取单元,用于在所述配置开关已经开启时,获取所述系统控件的用户响应链;
所述判断单元,还用于判断所述用户响应链的对象是否为页面;
所述记录单元,还用于在所述用户响应链的对象是页面时,记录所述系统控件的相关信息;
所述缓存单元,还用于将所述系统控件的相关信息缓存至数据库;
所述判断单元,还用于在所述用户响应链的对象不是页面时,判断是否存在所述用户响应链的上一次链对象;
重复单元,用于在存在所述用户响应链的上一次链对象时,重复执行判断所述用户响应链的对象是否为页面的步骤;
终止单元,用于在不存在所述用户响应链的上一次链对象时,终止并退出统计。
5.如权利要求4所述的装置,其特征在于,所述装置还包括:
读取单元,用于读取数据库中的数据;
处理单元,用于将所述数据使用protobuf格式进行处理,再进行压缩;
上报单元,用于响应于启动iOS App的操作,将压缩后的数据进行第一次上报;
所述上报单元,还用于在所述第一次上报成功或者失败后,等待20秒后再次对所述数据进行第二次上报;
所述上报单元,还用于在所述第二次上报成功或者失败后,等待40秒后再次对所述数据进行第三次上报;
所述判断单元,还用于判断预设的配置开关是否开启;
所述判断单元,还用于在所述配置开关已经开启时,判断是否存在待上报的新数据;
所述上报单元,还用于在存在待上报的新数据,对所述待上报的新数据进行上报;
清楚单元,用于对所述待上报的新数据上报成功后,清除上报成功的数据;
所述记录单元,还用于记录上报次数并对所述上报次数累加1次。
6.如权利要求5所述的装置,其特征在于,所述装置中:
所述判断单元,还用于判断所述上报次数是否大于4次;
还包括检测单元,用于在所述上报次数大于4次时,检测定时器是否启动;
启动单元,用于在所述定时器没有启动时,启动所述定时器;
所述判断单元,还用于在所述定时器已经启动时,在定时的2分钟内判断预设的配置开关是否开启;
所述终止单元,还用于在定时的2分钟内预设的配置开关为关闭时,终止对数据的上报。
CN201910379469.3A 2019-05-08 2019-05-08 一种针对iOS App无埋点的数据统计方法及装置 Active CN110109700B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910379469.3A CN110109700B (zh) 2019-05-08 2019-05-08 一种针对iOS App无埋点的数据统计方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910379469.3A CN110109700B (zh) 2019-05-08 2019-05-08 一种针对iOS App无埋点的数据统计方法及装置

Publications (2)

Publication Number Publication Date
CN110109700A CN110109700A (zh) 2019-08-09
CN110109700B true CN110109700B (zh) 2023-06-30

Family

ID=67488686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910379469.3A Active CN110109700B (zh) 2019-05-08 2019-05-08 一种针对iOS App无埋点的数据统计方法及装置

Country Status (1)

Country Link
CN (1) CN110109700B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110909284A (zh) * 2019-10-11 2020-03-24 口碑(上海)信息技术有限公司 一种数据处理系统以及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107295050A (zh) * 2016-04-01 2017-10-24 阿里巴巴集团控股有限公司 前端用户行为统计方法及装置
CN108197002A (zh) * 2018-01-16 2018-06-22 吉浦斯信息咨询(深圳)有限公司 移动设备无埋点数据统计方法、系统、终端及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10692591B2 (en) * 2013-02-01 2020-06-23 B-Line Medical, Llc Apparatus, method and computer readable medium for tracking data and events
CN106933722B (zh) * 2017-03-06 2019-12-31 腾云天宇科技(北京)有限公司 一种网页应用监控方法、服务器和系统
CN107423048B (zh) * 2017-04-14 2020-08-07 网易乐得科技有限公司 数据收集的方法、装置、介质和计算设备
CN107506291B (zh) * 2017-06-30 2023-09-22 杭州大搜车汽车服务有限公司 一种基于数据采集的分析方法及装置
CN108920342B (zh) * 2018-05-03 2022-06-10 北京奇虎科技有限公司 一种实现应用的数据采集的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107295050A (zh) * 2016-04-01 2017-10-24 阿里巴巴集团控股有限公司 前端用户行为统计方法及装置
CN108197002A (zh) * 2018-01-16 2018-06-22 吉浦斯信息咨询(深圳)有限公司 移动设备无埋点数据统计方法、系统、终端及介质

Also Published As

Publication number Publication date
CN110109700A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
US8713680B2 (en) Method and apparatus for modeling computer program behaviour for behavioural detection of malicious program
CN105630682A (zh) 移动终端自动收集及分析崩溃的系统和方法
CN103368904A (zh) 移动终端、可疑行为检测及判定系统和方法
CN109688097A (zh) 网站防护方法、网站防护装置、网站防护设备及存储介质
CN104899130A (zh) 一种应用程序管理方法及系统
CN111291384B (zh) 漏洞扫描方法、装置及电子设备
CN106445604A (zh) 一种应用程序的清理方法和装置
CN109710440A (zh) 网页前端的异常处理方法、装置、存储介质及终端设备
KR101421136B1 (ko) 악성 프로그램을 검사하기 위하여 컴퓨터 프로그램의행동을 모델링하는 방법 및 장치
CN109800576B (zh) 未知程序异常请求的监控方法、装置、及电子装置
CN103324617A (zh) 一种历史垃圾消息的识别方法及系统
CN109727027A (zh) 账户识别方法、装置、设备及存储介质
CN110109700B (zh) 一种针对iOS App无埋点的数据统计方法及装置
CN108509322B (zh) 避免过度回访的方法、电子装置及计算机可读存储介质
CN112087771A (zh) 通信控制方法及装置、电子设备、计算机可读存储介质
CN110245046B (zh) 一种针对Android App无埋点的数据统计方法及装置
CN109800569A (zh) 程序鉴别方法及装置
CN103809955B (zh) 结束进程的方法和装置
CN111818097B (zh) 基于行为的流量监测方法及装置
CN111581639B (zh) 一种Android加壳应用程序通用自动化脱壳方法及系统
CN116488852A (zh) 一种基于aigc的网络安全伺服系统
CN107193721B (zh) 一种生成日志的方法和装置
CN111224823B (zh) 一种基于异网日志分析的方法
CN114944942A (zh) 一种基于有效埋点的数据上报方法、装置、计算机设备及介质
CN113992730A (zh) 一种基于知识构建的用户行为模拟方法、模拟系统、定制系统、计算机及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant