WO2019085084A1 - 埋点处理方法、装置、计算机设备和存储介质 - Google Patents
埋点处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- WO2019085084A1 WO2019085084A1 PCT/CN2017/112673 CN2017112673W WO2019085084A1 WO 2019085084 A1 WO2019085084 A1 WO 2019085084A1 CN 2017112673 W CN2017112673 W CN 2017112673W WO 2019085084 A1 WO2019085084 A1 WO 2019085084A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- control
- attribute
- server
- view
- touchable
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
Definitions
- the present application relates to the field of computer technology, and in particular, to a buried point processing method, apparatus, computer device, and storage medium.
- a buried point in APP is an important means for many APP developers to collect user behavior data.
- various schemes for setting a buried point in an APP such as code embedding, visual embedding, and no embedding.
- the solution for visualizing the buried point is to connect the terminal with the APP installed to the web server, and the web server synchronously displays the APP page on the screen of the terminal through the web page, and recognizes the touchable control in the APP page, and the APP developer The web page circled the touchable controls to achieve visual burying.
- a buried point processing method, apparatus, computer apparatus, and storage medium are provided.
- a buried point processing method includes:
- the attribute information includes a control name, a basic attribute, and an access attribute
- control is not a touchable control, identifying whether the control name is a collection element in the target collection and whether the access attribute has a preset attribute value;
- control name is a collection element in the target collection, and the access attribute has a preset attribute value
- the control is marked as a touchable control, and the buried point information corresponding to the circled selectable touch control is obtained, and the buried point information is obtained. Send to the terminal.
- a buried point processing method includes:
- the attribute information includes a basic attribute and an access attribute
- a buried point processing device includes:
- An obtaining module configured to receive attribute information of a control in a current page of an application sent by the terminal; the attribute information includes a control name, a basic attribute, and an access attribute;
- An identification module configured to identify, according to the basic attribute, whether the control is a touchable control, and when the control is not a touchable control, identify whether the control name is a set element in the target set and whether the access attribute has a preset attribute value;
- a burying module configured to mark a control as a touchable control when the control name is a collection element in the target collection, and the access attribute has a preset attribute value, and obtain a burying point information corresponding to the circled selectable touch control, The buried point information is sent to the terminal.
- a computer device comprising a memory and a processor, the memory storing computer readable instructions, the computer readable instructions being executed by the processor, causing the processor to execute The following steps: receiving attribute information of the control in the current page of the application sent by the terminal; the attribute information includes a control name, a basic attribute, and an access attribute;
- control is not a touchable control, identifying whether the control name is a collection element in the target collection and whether the access attribute has a preset attribute value;
- control name is a collection element in the target collection, and the access attribute has a preset attribute value
- the control is marked as a touchable control, and the buried point information corresponding to the circled selectable touch control is obtained, and the buried point information is obtained. Send to the terminal.
- One or more non-volatile storage media storing computer readable instructions, when executed by one or more processors, cause one or more processors to perform the steps of: receiving an application currently sent by the terminal Attribute information of the control in the page; the attribute information includes a control name, a basic attribute, and an access attribute;
- control is not a touchable control, identifying whether the control name is a collection element in the target collection and whether the access attribute has a preset attribute value;
- control name is a collection element in the target collection, and the access attribute has a preset attribute value
- the control is marked as a touchable control, and the buried point information corresponding to the circled selectable touch control is obtained, and the buried point information is obtained. Send to the terminal.
- FIG. 1 is an application scenario diagram of a buried point processing method in an embodiment
- FIG. 2 is a flow chart of a method for processing a buried point in an embodiment
- FIG. 3 is a schematic diagram of a multi-fork tree corresponding to a current page of an application in an embodiment
- FIG. 4 is a schematic diagram of adding a buried border in a screenshot of a page in an embodiment
- FIG. 5 is a flow chart of a method of processing a buried point in another embodiment
- Figure 6 is a block diagram of a buried point processing apparatus in an embodiment
- Figure 7 is a block diagram of a computer device in one embodiment.
- first may be referred to as a second client
- second client may be referred to as a first client, without departing from the scope of the present application.
- Both the first client and the second client are clients, but they are not the same client.
- the present application provides a buried point processing method, which can be applied to an application environment as shown in FIG. 1.
- the first terminal 102, the second terminal 104, and the third terminal 106 are respectively connected to the server 108 through a network.
- the first terminal 102, the second terminal 104, and the third terminal 106 may each be at least one of a smart phone, a tablet computer, a desktop computer, and an in-vehicle computer, but are not limited thereto.
- the server 108 may be a stand-alone physical server or a server cluster composed of a plurality of physical servers.
- the first terminal 102 and the third terminal 106 respectively run an application that needs to set a buried point.
- the first terminal 102 corresponds to an application developer
- the third terminal 106 corresponds to an application user.
- the first terminal 102 and the third terminal 106 may be the same terminal or different terminals.
- the application running on the first terminal 102 and the third terminal 106 may be a native application (Native APP), a web application (Web APP), or a hybrid application.
- the first terminal 102 and the third terminal 106 are pre-installed with a plug-in SDK (Software Development Kit) in the application. Software Development Kit).
- the SDK is a pre-developed script based on the open source UI (User Interface) cross-platform framework.
- the UI cross-platform framework can be a React Native framework or a Weex framework (an open source UI cross-platform framework).
- the SDK includes data collection scripts, touch event interception scripts, control matching scripts, and touch event reporting scripts for data collection, touch event interception, control matching, and touch event reporting.
- the first terminal 102 acquires the view data of the current page of the application by using the SDK, and transmits the view data to the server 108.
- the view data includes a screenshot of the current page and attribute information of the plurality of views, and the attribute information includes a control name, a basic attribute, and an access attribute.
- the server 108 identifies, based on the basic attributes, whether the plurality of controls in the screenshot of the page are touchable controls. If not, the server 108 identifies whether the control's control name is a collection element in the target collection, and whether the access attribute corresponding to the control has a preset attribute value.
- the server When the control name is a collection element in the target collection, and the access attribute has a preset attribute value, the server marks the control as a touchable control, and adds a corresponding buried border to the touchable control, and the buried border is provided.
- the page screenshot is sent to the second terminal 104.
- the second terminal displays the screenshot of the page through the web page.
- the application developer can perform a burying operation on the plurality of controls having a buried border in the screenshot of the page through the second terminal 104.
- the second terminal 104 returns the buried point information corresponding to the buried point control to the server 108.
- the server 108 transmits the buried point information of the buried control to the third terminal 106 to deploy a buried point to the application on the third terminal 106.
- FIG. 2 is a schematic flow chart of a method according to an embodiment of the present application. It should be understood that although the various steps in the flowchart of FIG. 2 are sequentially displayed as indicated by the arrows, these steps are not necessarily performed in the order indicated by the arrows. Except as explicitly stated herein, the execution of these steps is not strictly limited, and may be performed in other sequences. Moreover, at least some of the steps in FIG. 2 may include a plurality of sub-steps or stages, which are not necessarily performed at the same time, but may be executed at different times, and the order of execution thereof is not necessarily This may be performed in sequence, but may be performed alternately or alternately with other steps or at least a portion of the sub-steps or stages of the other steps.
- a method for processing a buried point is provided.
- the method is applied to a server as an example, and specifically includes the following steps:
- Step 202 Receive attribute information of a control in a current page of an application sent by the terminal; the attribute information includes a control name, a basic attribute, and an access attribute.
- the first terminal uses the SDK to parse the current page of the application, and collects attribute information of multiple controls of the current page of the application.
- the attribute information includes the control name and basic attributes.
- the name of the control can directly reflect the type of the control. For example, UIWindow (a kind of control name) belongs to the window type control, and UIButton (a kind of control name) belongs to the button type control.
- Basic properties include transparent properties, hidden properties, and interactive properties.
- Interaction properties include the userInteractionEnabled (an attribute name) property. It is easy to understand that the basic attributes may also include other information, such as position coordinates and hierarchical information, etc., which are not limited thereto.
- the first terminal also uses the SDK to obtain a screenshot of the page of the current page of the application, and sends the screenshot of the page and the attribute information of the multiple controls to the server.
- Step 204 Identify whether the control is a touchable control according to the basic attribute.
- the step of identifying whether the control is a touchable control according to the basic attribute comprises: identifying whether the control name is a collection element in the preset collection; and identifying the transparency of the control when the control type belongs to an element in the preset collection Attributes, hidden attributes, and interactive attributes all have their own default attribute values; when the control's transparent, hidden, and interactive attributes each have their own preset attribute values, the control is marked as a touchable control.
- the server stores a preset collection.
- the preset collection records the control name of multiple controls that can be touched as a collection element. Touch operations include tapping, long press, short press, or swipe.
- the control names of the plurality of controls that can be touched include UIControl, UITableViewCell, UICollectionViewCell, UIView (a type of control name), and control names of the corresponding subclass controls.
- the subclass controls corresponding to UIView include UIButton, UILabel, and so on.
- the server identifies whether the control's control name belongs to a collection element in the preset collection. When the control name does not belong to the collection element in the preset collection, it means that the control cannot be touched. when When the control name belongs to the collection element in the preset collection, the server obtains the respective attribute values of the transparent attribute, the hidden attribute and the interactive attribute of the control, and identifies whether the three attribute values respectively reach the respective preset attribute values. When the attribute value of the transparent attribute is the corresponding preset attribute value, it indicates that the control is opaque. When the attribute value of the hidden attribute is the corresponding preset attribute value, it indicates that the control is visible.
- the attribute value of the interaction attribute is a corresponding preset attribute value, it indicates that the control can interact with the user, that is, the control can respond to the user's touch operation.
- the control's transparent, hidden, and interactive properties each have their own preset property values, the server marks the control as a touchable control.
- Step 206 When the control is not a touchable control, identify whether the control name is a collection element in the target collection and whether the access attribute has a preset attribute value.
- Step 208 When the control name is a collection element in the target collection, and the access attribute has a preset attribute value, the control is marked as a touchable control, and the buried point information corresponding to the circled selectable touch control is obtained, and the buried point is obtained. The information is sent to the terminal.
- the server can identify whether the control can be touched according to the basic properties of the control.
- Cross-platform pages such as H5 pages, exist in web apps or hybrid apps. Since the cross-platform page is translated by the JS (JavaScript, Literal Translation Scripting Language) engine, the control name of the control in the cross-platform page does not belong to the collection element in the preset collection. Even if the control in the cross-platform page actually belongs to the touchable control, the server may determine that the touchable control is a control that cannot be touched because its control name does not belong to the collection element in the preset collection, and thus the control cannot be set. Buried.
- JS JavaScript, Literal Translation Scripting Language
- the server recognizes whether the control name of the control belongs to the collection element in the target collection.
- the target collection can be pre-configured by the application developer on the server.
- the target collection also records the control name of multiple controls that can be touched as a collection element.
- the name of the control in the target collection includes the control name of the RCTView (a control name) and its subclass controls.
- the control name does not belong to a collection element in the target collection, it means that the control cannot be touched.
- the application is a Web APP or a hybrid APP
- the first terminal uses the SDK to obtain
- the attribute information taken also includes the access attribute.
- Access properties include the isAccessibilityElement (an attribute name) property.
- the server obtains the attribute value of the access attribute, and determines whether the attribute value is a preset attribute value.
- the server marks the control as a touchable control.
- the server adds a corresponding buried border to the touchable control, and sends a screenshot of the page with the buried border to the second terminal.
- the second terminal displays a screenshot of the page through the web page.
- the burying point information of the control corresponding to the burying border is obtained, and the burying point information is sent to the server.
- the server sends the buried point information of the control to the third terminal, so that the third terminal reports the touch event according to the buried point information when acquiring the touch event corresponding to the control.
- whether the control is a touchable control can be initially identified, according to whether the access attribute of the control in the current page of the application has a preset attribute value and whether the control name is
- the collection element in the target collection can further identify whether the control is a touchable control; if the control is a touchable control, the buried point information corresponding to the circled touchable control is sent to the terminal.
- the touchable controls in the current page of the application can be identified according to the basic properties; when the application is a Web APP or a hybrid APP, the access to the current page of the application can be
- the touch controls are recognized such that the touchable control recognition method is versatile for many types of applications.
- the view data further includes a view identifier, a view name, and hierarchical information of the plurality of views; the view includes a control; and the buried point information corresponding to the circled selectable touch control is obtained, and the buried point information is sent to the terminal.
- the method further includes: adding multiple view identifiers as array elements to multiple arrays according to a preset rule; multiple arrays have different levels; querying the view name corresponding to the view identifier in the highest level array, in the highest level array
- the view name corresponding to the view identifier is marked as a parent node; the view name corresponding to the view identifier in the next highest level array is queried, and the view name corresponding to the view identifier in the next highest level array is marked as a child node of the parent node according to the level information;
- the child node is superimposed as the parent node of the view name corresponding to the view identifier in the next level array Generation, up to the lowest level array, get the multi-fork tree of the application page; generate the hierarchical path corresponding to the multiple views according to the multi-fork tree, and add the corresponding buried point frame to the corresponding view according to the hierarchical path in the screenshot of the page, which will be provided
- the first terminal uses the SDK to obtain the view data of the current page of the application, encapsulates the view data of the current page of the application into a preset format, and compresses the view data, and compresses the view.
- Data encryption is transmitted to the server.
- the preset format may be a data format having a data hierarchy, such as HDF (hierarchical data format).
- the preset format can also be a data format without a hierarchical structure, such as a JSON format (a data exchange format) stored in a flat structure.
- the view data includes a screenshot of the page of the current page of the application and attribute information of multiple views within the current page.
- the screenshot of the page is a static screenshot.
- Views include controls and view controllers. On the current page of the application, the view controller is used to create and manage controls that are invisible to the user. The user can touch the visible controls. Touch operations include tapping, long press, short press, or swipe.
- the attribute information includes a view name, a view identifier, and hierarchical information. It is easy to understand that the view name can be the control name or the controller name, and the view ID can be the control ID or the controller ID.
- the view name can directly reflect the view type, such as UIWindow, which belongs to the window type control, and RootViewController, which belongs to the root view controller.
- Each view has corresponding level information, and the level information includes the inheritance relationship between the view and other views.
- the control UIButton inherits from the control UIView, and the control UIButton is the next level view of the control UIView.
- the server builds a multi-fork tree corresponding to the current page of the application according to the attribute information of the view, generates a hierarchical path of the touchable control according to the multi-fork tree, and adds a corresponding buried border to the touchable control according to the hierarchical path in the screenshot of the page.
- the server establishes a highest level array, extracts a view identifier of a view having the same view name as the preset root view, and adds the extracted view identifier to the highest level. Do not array.
- the highest level array can be A1[ID 6].
- the server marks the extracted view as a parent view, and traverses the view data according to the hierarchical information of the parent view to detect whether the child view corresponding to the parent view exists.
- the server establishes a sub-high level array, extracts the view identifier of the subview corresponding to the parent view in the view data, and adds the extracted view identifier to the next highest level array.
- the next highest level array can be A2[ID 2, ID7, ID 8].
- the server uses the extracted subview as the parent view and queries the view data for the corresponding subview.
- the server creates an next level array as described above.
- next level array can be A3[ID 1, ID 4, ID5], and the lowest level array can be A4[ID3, ID 9, ID10, ID 11, ID 12].
- the server Each time the server generates an array, the corresponding array element is added as a node to the multi-fork tree. Specifically, after generating the highest level array, the server queries the view name corresponding to the array element of the highest level array, and marks the view name corresponding to the array element of the highest level array as the root node of the multi-fork tree. For example, as shown in FIG. 3, the root node of the multi-fork tree is the view name UIWindow corresponding to the array element ID 6 of the highest-level array A1.
- the server After obtaining the root node of the multi-fork tree, the server generates the next-highest level array in the above manner, queries the view name corresponding to the array element of the next-highest level array, and marks the view name corresponding to the array element of the next-highest level array as a multi-fork tree.
- the child node of the middle root node connects the child node to the root node by using a preset connection line to form a plurality of branches of the multi-fork tree. It can be understood that the root node is also the parent node of the above child nodes. For example, as shown in FIG.
- the preset connection line may be a line segment with an arrow, and the child node of the root node is a view name UIView (view) corresponding to three array elements ID2, ID7, and ID8 of the next highest level array A2. , ViewController (view controller) and UIView, corresponding to the three branches forming a multi-fork tree.
- the server After obtaining the child node of the root node of the multi-fork tree, the server generates the next-level array according to the above manner, and uses the child node as the parent node of the array element in the next-level array, and queries the view corresponding to the array element of the next-level array. Name, using the default connection line to connect the view name corresponding to the array element in the next level array to the corresponding parent node to extend the branch of the multi-tree. Change sentence In other words, the server queries the next level view of the corresponding view of each child node according to the hierarchical information of the corresponding view of each child node, and connects the view name corresponding to the corresponding array element in the next level array to the corresponding child node by using a preset connection line.
- the next level array A3 includes three array elements ID1, ID4, and ID5, and the corresponding view names are UIView, ChildController (child controller), and ChildController.
- the array element ID2 of the next highest level array A2 does not have a next level view corresponding to the view
- the next level view of the array element ID7 corresponding to the view includes the view corresponding to the array element ID1
- the array element ID8 corresponds to the next level view of the view including the array element.
- the view corresponding to the ID4 corresponds to the view corresponding to the array element ID5, and the view name UIView corresponding to the view of the array element ID1 is connected to the view name ViewController of the view corresponding to the array element ID7, and the view name ChildController and the array element ID5 corresponding to the view of the array element ID4 are corresponding.
- the view name of the view, ChildController is connected to the view name UIView of the view corresponding to the array element ID8.
- the server sequentially adds the view name of the corresponding view of the array element in each array as a node to the multi-fork tree in the above manner, and forms a multi-fork tree corresponding to the current page of the application.
- the view data uploaded by the first terminal to the server may not have a hierarchical structure after format conversion, and the view data only contains the hierarchical information of a single view, so that the hierarchical relationship between the multiple views is concealed and scattered, and it is difficult to reflect the application as a whole.
- the hierarchical structure between multiple views of the current page may integrate attribute information of multiple views in the current page of the application according to view data without a hierarchical structure, and extract a multi-fork tree that can reflect the hierarchical structure between multiple views of the current page as a whole. .
- a hierarchical path corresponding to each of the plurality of touchable controls is generated according to the multi-fork tree, and each of the touchable controls is positioned according to the hierarchical path.
- the server adds a corresponding buried border to the touchable control according to the positioning.
- the buried border can respond to clicks by the application developer.
- the shape and size of the buried border may be the same as the shape and size of the icon of the corresponding view.
- the server sends a screenshot of the page with the buried border to the preset terminal, that is, the second terminal.
- the second terminal displays a screenshot of the page with the buried border.
- the application developer can implement the burying point setting by clicking the burying border on the screenshot of the second terminal and inputting the corresponding touch event identifier.
- Server based on multi-fork The tree generates a hierarchical path corresponding to the buried point control, and sends the hierarchical path of the buried control to the third terminal, so that when the third terminal intercepts the touch event corresponding to the touched control, the touched control is controlled according to the hierarchical path. Buried point control to match.
- the view identifiers of different views may be added as an array element to multiple arrays; according to the view identifiers of the different levels of the array, the view name of the corresponding view may be queried; Mark the view name corresponding to the view ID in the highest level array as the parent node, mark the view name corresponding to the view ID in the next highest level array as the child node of the parent node, and use the child node as the next level array
- the parent node of the view name corresponding to the view identifier is iterated, and the multi-fork tree corresponding to the current page of the application can be constructed; the multi-fork tree constructed according to the hierarchical information of the view can reflect the hierarchical structure of multiple views of the current page as a whole, According to the hierarchical path of the view generated by the multi-fork tree, it is possible to accurately add a buried border to the screenshot of the page, or to accurately locate each view.
- the step of generating a hierarchical path corresponding to each of the multiple views according to the multi-fork tree includes: querying the corresponding node in the multi-fork tree according to the view identifier of the multiple views to be displayed, marking the node as the target a node; the first preset identifier is used to sequentially splicing the view names corresponding to the plurality of nodes of the root node to the target node to obtain a directory string, and the directory string is used as the view path of the corresponding node corresponding to the view;
- the views corresponding to the hierarchical nodes are separately numbered, and the different types of views corresponding to the same hierarchical node are separately numbered, and the number is used as the view index of the corresponding view; the second preset identifier is used to separate the root node to the multiple nodes of the target node.
- the corresponding view indexes are sequentially spliced to obtain an index string, and the index string is used as an index path of the corresponding
- the different nodes have different levels in the multi-fork tree.
- the array element in the highest level array corresponds to the first hierarchical node
- the array element in the next highest level array corresponds to the second hierarchical node
- the array element in the next level array corresponds to the third hierarchical node
- the array in the next level array corresponds to the fourth level node, so recursive. For example, as shown in FIG.
- the root node UIwindow corresponding to the array element ID 6 of the highest level array A1 is the first hierarchical node, and the array elements ID2, ID7, and ID8 of the next highest level array A2 are respectively corresponding.
- the nodes UIView, ViewController, and RootController are second-level nodes.
- the server numbers each node of the multi-fork tree so that the view corresponding to each node has a view index.
- the server separately numbers the views corresponding to the different hierarchical nodes in the multi-fork tree, and separately numbers the different types of views corresponding to the same hierarchical node, and sequentially numbers the same type views corresponding to the same hierarchical node, and uses the number as The view index of the corresponding view.
- the server can record the view index as a subscript of the view name of the corresponding view. For example, as shown in FIG. 3, the view indexes corresponding to the first hierarchical node UIwindow and the second hierarchical node UIwiew may be initial numbers, respectively.
- the initial number can be 0.
- Different types of view UIButton (button) and UILabel (label) are numbered separately in multiple fourth-level nodes.
- the view index corresponding to three identical button type views can be UIButton 0 , UIButton 1 and UIButton 2 , two identical tag types.
- the view index corresponding to the view can be UILabel 0 and UILabel 1 .
- the server renumbers only the views of the same type as the newly added or deleted views. For example, when the button control UIButton 1 is deleted, only UIButton 2 is changed to UIButton 1 and has no effect on the three tab controls. Different types of views of the same level are separately numbered, which can minimize the impact of adding or deleting views on the control index, and has a certain index path anti-interference effect.
- the server queries the corresponding node in the multi-fork tree according to the view identifier of the touchable view, and marks the node as the target node.
- the server uses the first preset identifier to splicing the view names corresponding to the multiple nodes in the multi-fork tree to the target nodes in sequence, and obtains the directory string, and uses the directory string as the view path of the target node corresponding view.
- the server uses the second preset identifier to splicing the view indexes corresponding to the plurality of nodes in the multi-fork tree to the target node in sequence, and obtains an index string, and uses the index string as an index path of the corresponding node of the target node.
- the first preset identifier and the second preset identifier may be “/”, “_”, “#”, “@” or “*”, etc., respectively.
- Each view name that constitutes a view path corresponds to a view of a different level, so the view path can distinguish between views of different levels.
- the view path corresponding to the control UIButton 1 in the above example is /UIwindow/ViewController/UIView/UIButton
- the UIwindow is the highest level view
- the ViewController is the next level view of the UIwindow
- the UIView is the next level view of the ViewController.
- the UIButton is the next level view of the UIView.
- Multiple views can inherit from the same view, that is, multiple views corresponding to the upper level view can be the same view, such as the control UIButton 0 , the control UIButton 1 and the control UIButton 2 can inherit from the same control UIView.
- the index path can reflect the display hierarchy relationship of a view in the corresponding upper level view, that is, different views of the same level can be distinguished. For example, suppose the index path corresponding to the control UIButton 1 in the above example is 0_1_2_1, indicating that the UIwindow is the highest level view, the view controller ViewController is the second child view of the upper level view UIwindow, and the control UIView is the upper level view ViewController. In the third subview, the control UIButton is the second child view of the upper level view UIView.
- a view path can distinguish between views of different levels.
- the index path can distinguish different views of the same level, so that the combination of the view path and the index path can jointly complete the unique positioning of the control.
- the hierarchical path can also be combined with the index path and the index path.
- the view index is used as a subscript of the view name of the corresponding view, and the plurality of subtitled view names are successively spliced in the above manner by using the first preset identifier or the second preset identifier to obtain the following hierarchical path: UIwindow 0 /ViewController 1 /UIView 2 /UIButton 1 .
- the view path distinguishes the controls of different levels, and the index path distinguishes multiple different controls in the same level, and the view path and the index path can accurately locate the view on the screenshot of the page, so that the view can be on the page screenshot. Accurately add a buried border.
- a method for processing a burying point is provided.
- the method is applied to the first terminal as an example, and specifically includes the following steps:
- Step 502 Obtain attribute information of the control in the current page of the application; the attribute information includes a control name, a basic attribute, and an access attribute.
- Step 504 Send attribute information to the server; enable the server to identify whether the control is a touchable control according to the basic attribute, and identify whether the control name is a collection element in the target set and whether the access attribute has a preset attribute when the control is not a touchable control. Value, and mark the control as a touchable control when the control name is a collection element in the target collection and the access property has a preset property value.
- Step 506 Receive the buried point information corresponding to the touchable control returned by the server.
- the step of acquiring the attribute information of the control in the current page of the application comprises: sending a visual burying point request to the server; the receiving server returns a configuration table according to the visual burying point request, and the configuration table records the plurality of configuration items;
- the current page of the application is parsed according to the configuration item, and the attribute information corresponding to the control in the current page is obtained; and the configuration item corresponding to the attribute information is added to the configuration table.
- the first terminal When it is necessary to set a burying point for the application, the first terminal sends a visual burying point request to the server on the current page where the application needs to set the burying point.
- the server performs a preset burying point preparation task according to the visual burying point request, and after preparing for the burying point, returns a screen capture request to the first terminal.
- the screencast request carries an empty configuration table, and the configuration table records multiple configuration items. Configuration items include view names and corresponding attribute names, such as basic attributes and access attributes.
- the configuration table can be pre-configured by the application developer on the server.
- the first terminal uses the SDK to parse the current page of the application, obtains the attribute information corresponding to the multiple views in the current page, and adds the attribute information corresponding configuration item to the configuration table to configure the configuration table. Fill in and send the completed configuration form to the server.
- the server reads the attribute information of the view in the configuration table, generates a view path and an index path of the plurality of buried control according to the attribute information, and sends the view path and the index path of the plurality of buried control to the third terminal.
- the application developer may add missing configuration items to the configuration table according to requirements, and may also delete unnecessary configuration items, such as a control background image with a large amount of data, to prevent the first terminal from reporting some redundancy.
- the data can optimize the attribute information of the reported view to a certain extent, and can also reduce the attribute information of the first terminal to obtain the view and the time for filling in the configuration table, thereby improving the recognition efficiency of the server for the touchable control.
- the step of sending a visual burying point request to the server includes: acquiring a target configuration file of the application; adding a white list allowing the user to log in to the target configuration file; and identifying the whitelist and the corresponding parameter data association correspondingly a code; when receiving a scan operation corresponding to the identification code, sending a visual burying point request to the server.
- the first terminal pre-adds a specific whitelist in the application's target profile.
- the target configuration file includes the info.plist file, and the whitelist includes UrlScheme (a protocol that allows applications to jump between each other).
- the application opener can initiate a visual burying request to the server through a third-party application running on the first terminal.
- An identifier can be obtained by a third-party application, and the identifier is generated by the first terminal by using a white list and corresponding parameter data.
- the identification code can be a two-dimensional code or a barcode or the like.
- the first terminal When receiving the scan operation corresponding to the identifier, the first terminal uses the white list carried by the identifier and the corresponding parameter data to jump from the third-party application to the application that needs to set the buried point, triggering the application
- the SDK enables the SDK to establish a long connection with the server using WebSocket (a network protocol) to send a visual burying request to the server.
- the scanning embedding point can be triggered by scanning the identification code, and the operation is simple and convenient, and conforms to the current user habit.
- the step of transmitting a visual burying point request to the server comprises: obtaining an input gesture on a current page of the application; when the input gesture is a preset specific gesture, and the duration of the input gesture reaches a threshold, the server is Send a visual burying request.
- the first terminal configures a specific gesture in advance as a trigger condition of the SDK in the application.
- the first terminal acquires the input gesture and the corresponding duration, matches the input gesture with the preset specific gesture, and compares the duration of the input gesture with the threshold.
- the preset specific gestures and thresholds can be freely set according to preferences.
- the specific gesture can be four fingers simultaneously touching the current page of the application, and the threshold can be 5 seconds.
- the SDK is triggered, so that the SDK establishes a long connection with the server by using WebSocket, and sends a visual burying request to the server.
- the first terminal when the first terminal successfully establishes a long connection with the server, the first terminal displays the connected prompt information at the edge position of the current page of the application; when the first terminal disconnects the long connection with the server, the connected terminal is connected.
- the prompt information disappears, which is convenient for the application developer to know the connection status between the first terminal and the server.
- the edge position may be the top, bottom or side of the current page of the application, and the connected prompt information may be a progress bar having a preset pixel height or the like.
- the visual burying point can be triggered by inputting a specific gesture, and the operation is simple; the specific gesture is different from the common gesture when the user operates the first terminal, and the erroneous operation can also be reduced.
- the buried point information includes a view path and an index path of the plurality of buried control units; after receiving the step of the buried point information corresponding to the touchable control returned by the server, the method further includes: acquiring a touch event of the touchable control Obtaining a touch event; obtaining a view path and an index path of the touched touchable control; matching a view path of the touched touchable control with a view path of the buried control, and touching the touchable control The index path is matched with the index path of the buried control; when the touched control of the touchable control is successfully matched with the view path and the index path of the buried control, multiple pre-configured server identifiers are obtained, and the screening resource is least occupied.
- the server identifier reports the touch event to the corresponding server.
- the third terminal uses the SDK to cache the buried point information of the buried point control.
- the third terminal also uses the SDK to collect and cache attribute information of multiple views of the current page of the application.
- Views include controls and view controllers.
- the control is visible to the user, the view controller is invisible to the user, and the user can touch the control.
- the view controller is invisible to the user, but the control and the view controller together can reflect the overall hierarchical structure of multiple views in the current page of the application, so the view controller is also used to construct the view of the control. Path and index path.
- the attribute information includes a view name and a view index.
- the view name can be the control name or the controller name
- the view index can be a view control index or a controller index.
- the view name can directly reflect the view type. For example, UIWindow belongs to the window type control, UIButton belongs to the button type control, and RootViewController belongs to the root view controller.
- the view index may be that the SDK allocates a plurality of views in advance according to a hierarchical relationship between multiple views of the current page of the application. According to the hierarchical relationship, the SDK separately numbers the views of different levels, and separately numbers the different types of views of the same level, and uses the number as the view index corresponding to the corresponding view.
- the control index corresponding to the three button type controls can be 0, 1, and 2 in sequence.
- the SDK can record the view index as a subscript of the view name of the corresponding view, such as UIButton 0 , UIButton 1 and UIButton 2 .
- the attribute information also includes hierarchical information for multiple views of the current page of the application. Each view has corresponding level information, and the level information includes an inheritance relationship between the view and one or more other views.
- the control UIButton inherits from the control UIView
- the control UIView inherits from the view controller ViewController
- the control UIView is the upper level view of the control UIButton
- the view controller ViewController is the upper level view of the control UIView.
- the third terminal acquires the attribute information of the touched control by using the SDK, and obtains the hierarchical path of the touched control according to the attribute information.
- Hierarchical paths include view paths and index paths.
- the SDK backtracks step by step according to the hierarchical information of the touched control, that is, whether the touched control has a higher level view. It is easy to understand that when the touched control is the highest level view of the current page of the application, the touched control does not have a higher level view.
- the touched control has a hierarchical view, the view name and view index of the upper level view are extracted.
- the SDK continues to go back up step by step according to the hierarchical information of the touched control, that is, whether the corresponding upper level view still exists in the upper level view of the touched control, and if so, extract the corresponding view name and view index until the highest level view.
- the SDK uses the first preset identifier to splicing the extracted plurality of view names step by step, that is, splicing the view names of the plurality of views of the touched control from the highest level view to the directory name, to obtain a directory string.
- the directory string is used as the view path corresponding to the touched control.
- the SDK uses the second preset identifier to splicing the extracted multiple view indexes step by step, that is, splicing the view indexes of the plurality of views of the touched control from the highest level view to the index index, and obtaining the index string, and the index string is touched.
- the index path corresponding to the control thereby obtaining the hierarchical path corresponding to the touched control.
- the first preset identifier and the second preset identifier may be “/”, “_”, “#”, “@” or “*”, etc., respectively.
- Multiple views can inherit from the same view, that is, multiple views corresponding to the upper level view can be the same view, such as the control UIButton 0 , the control UIButton 1 and the control UIButton 2 can inherit from the same control UIView.
- the index path can reflect the display hierarchy relationship of a view in the corresponding upper level view.
- the corresponding view path is /UIwindow/ViewController/UIView/UIButton
- the index path is 0_1_2_1, indicating that the UIwindow is the first child view of the highest level view
- the view controller ViewController is the second subview of the upper level view UIwindow
- the control UIView is the third subview of the upper level view ViewController
- the control UIButton is the second subview of the upper level view UIView.
- the hierarchical path can also be combined with the index path and the index path.
- the view index is used as a subscript of the view name of the corresponding view, and the plurality of subscripted view names are successively spliced in the above manner by using the first preset identifier or the second preset identifier, such as /UIwindow 0 /ViewController 1 /UIView 2 /UIButton 1 .
- the third terminal uses the SDK to read the view path and the index path of the cached plurality of buried point controls, and uses the view path and the index path of the buried control as matching reference objects, and respectively matches the view path and the index path of the touched control.
- the reference object is matched.
- the relative order of multiple view names in the same view path can reflect the depth of each view in the view path.
- the first view name in the view path corresponds to the first view depth
- the second view name corresponds to the second view depth, so recursive.
- the UIwindow in the view path/UIwindow/ViewController/UIView/UIButton corresponds to the first view depth
- the ViewController corresponds to the second view depth
- the UIView corresponds to the third view depth
- the UIButton corresponds to the fourth view depth.
- the SDK culls the hierarchical path of the touched control with the hierarchical path of the plurality of buried control according to the view depth of each view in the hierarchical path, and gradually reduces the buried control as the matching reference object. Quantity to reduce unnecessary matches.
- the SDK performs the first round matching, and the view name and the corresponding view index of the first view depth in the touch control hierarchical path are respectively associated with the view name of the first view depth in the plurality of buried control view paths and corresponding The view index is matched, and the view name of the first view depth and the corresponding view index respectively match the view path of the successfully one or more buried control.
- the SDK performs the second round of matching, and the view name and the corresponding view index of the second view depth in the touched control view path are respectively corresponding to the view name and the corresponding view of the second view depth in the filtered plurality of buried control view paths.
- the view index is matched, so that after multiple rounds of matching, the view name and the view index of the touched control in the touched control view path are also matched.
- the combination of view path and index path can work together to uniquely locate the control. Easy to understand, The simple view path matching succeeds, and the corresponding relationship between the touched control and the buried control cannot be determined.
- the hierarchical path of the buried control is consistent with the hierarchical path of the touched control, that is, the view path of the buried control matches the view path of the touched control, and the index path of the buried control and the touched control
- the index paths match, it indicates that the touched control belongs to the buried control, and the touch event corresponding to the touched control needs to be reported to the server.
- the server that receives the touch event reporting information and the server that sends the buried point information to the third terminal may be the same server or different servers.
- the touch event corresponding to the touched control in the current page of the application may be intercepted; after the touch event is intercepted, the path information of the touched control is obtained, and is sent according to the server.
- the path information of the plurality of buried control controls is matched with the path information of the touched control to determine whether the touch event needs to be reported; when the view path of the buried control is matched with the view path of the touched control, and the When the index path of the buried control matches the index path of the touched control, the touch event is reported to the server.
- the path information includes not only the view path corresponding to the control but also the index path.
- the view path can distinguish the controls corresponding to different hierarchical views.
- the index path can distinguish different controls corresponding to the same hierarchical view.
- the view path and the index path are The combination can jointly complete the unique positioning of the control, thereby improving the matching precision of the control, and thus accurately reporting the touch event of the control.
- a buried point processing apparatus including: an acquisition module 602, an identification module 604, and a buried point module 606, wherein:
- the obtaining module 602 is configured to receive attribute information of a control in a current page of the application sent by the terminal; the attribute information includes a control name, a basic attribute, and an access attribute;
- the identification module 604 is configured to identify, according to the basic attribute, whether the control is a touchable control, and when the control is not a touchable control, identify whether the control name is a set element in the target set and whether the access attribute has a preset attribute value;
- a burying module 606 configured to: when the control name is a collection element in the target collection, and access the attribute When the preset attribute value is used, the control is marked as a touchable control, and the buried point information corresponding to the circled touchable control is obtained, and the buried point information is sent to the terminal.
- the buried point processing apparatus described above can be implemented in the form of a computer readable instruction that can be executed on a computer device as shown in FIG.
- a computer device is provided, as shown in FIG. 7, which includes a processor, a storage device, and a network interface connected by a system bus.
- the processor of the computer device is used to provide computing and control capabilities.
- the storage device of the computer device includes one or more non-volatile storage media, one or more internal memories.
- the server's non-volatile storage medium stores operating system and computer readable instructions.
- the internal memory of the computer device provides an environment for the operation of an operating system and computer readable instructions in a non-volatile storage medium.
- the network interface of the computer device is used for communicating with an external terminal through a network connection, for example, receiving a screenshot of a current page of the application sent by the first terminal, and attribute information of multiple views.
- the computer readable instructions are executed by the processor to implement a buried point processing method. When the computer readable instructions are executed by the processor, the one or more processors are caused to perform the steps of the buried point processing method of the various embodiments described above.
- FIG. 7 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the server to which the solution of the present application is applied.
- the specific server may include a ratio. More or fewer components are shown in the figures, or some components are combined, or have different component arrangements.
- one or more non-volatile storage media having computer readable instructions that, when executed by one or more processors, cause one or more processors to perform each of The steps of the buried point processing method in the embodiment.
- the computer readable instructions when executed, may include the flow of an embodiment of the methods as described above.
- the storage medium may be a magnetic disk, an optical disk, a read only memory (ReCd-Only Memory, ROM), or the like.
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种埋点处理方法,包括:接收终端发送的应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性;根据基本属性识别控件是否为可触摸控件;当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值;当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端。
Description
本申请要求于2017年11月1日提交中国专利局,申请号为2017110589548,申请名称为“埋点处理方法、装置、计算机设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及计算机技术领域,特别是涉及埋点处理方法、装置、计算机设备和存储介质。
在APP(Application,应用程序)中设置埋点是很多APP开发商收集用户行为数据的重要手段。目前,在APP中设置埋点有多种方案,如代码埋点、可视化埋点和无埋点等。其中,可视化埋点的方案是通过将安装有APP的终端连接至Web服务器,Web服务器通过Web页面同步显示终端屏幕上的APP页面,并对APP页面中可触摸的控件进行识别,APP开发商在Web页面圈选可触摸的控件,实现可视化埋点。传统的可视化埋点工具,例如,TalkingData、友盟等,根据控件名称对APP页面中可触摸的控件进行识别,但这种方式仅适用于Native APP(原生APP),对于Web APP(一种基于网络访问的APP)或混合APP中的动态页面,如H5(HTML5,超文本标记语言)页面中可触摸的控件无法准确识别。
发明内容
根据本申请公开的各种实施例,提供一种埋点处理方法、装置、计算机设备和存储介质。
一种埋点处理方法,包括:
接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;
根据所述基本属性识别控件是否为可触摸控件;
当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及所述访问属性是否具有预设的属性值;及
当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
一种埋点处理方法,包括:
获取应用程序当前页面中控件的属性信息;所述属性信息包括基本属性和访问属性;
将所述属性信息发送至服务器;使服务器根据所述基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时识别控件名称是否为目标集合中的集合元素及所述访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸控件;及接收所述服务器返回的可触摸控件对应的埋点信息。
一种埋点处理装置,包括:
获取模块,用于接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;
识别模块,用于根据所述基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及所述访问属性是否具有预设的属性值;及
埋点模块,用于当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
一种计算机设备,包括存储器和处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行以
下步骤:接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;
根据所述基本属性识别控件是否为可触摸控件;
当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及所述访问属性是否具有预设的属性值;及
当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
一个或多个存储有计算机可读指令的非易失性存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;
根据所述基本属性识别控件是否为可触摸控件;
当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及所述访问属性是否具有预设的属性值;及
当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征和优点将从说明书、附图以及权利要求书变得明显。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为一个实施例中埋点处理方法的应用场景图;
图2为一个实施例中埋点处理方法的流程图;
图3为一个实施例中应用程序当前页面对应的多叉树的示意图;
图4为一个实施例中在页面截图中添加埋点边框的示意图;
图5为另一个实施例中埋点处理方法的流程图;
图6为一个实施例中埋点处理装置的框图;
图7为一个实施例中计算机设备的框图。
为了使本申请的技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。
本申请提供一种埋点处理方法,可以应用于如图1所示的应用环境中。其中,第一终端102、第二终端104与第三终端106分别通过网路与服务器108连接。第一终端102、第二终端104和第三终端106分别可以是智能手机、平板电脑、台式计算机、车载电脑中的至少一种,但并不局限于此。服务器108可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群。第一终端102与第三终端106上分别运行了需要设置埋点的应用程序。第一终端102对应应用程序开发商,第三终端106对应应用程序用户。第一终端102与第三终端106可以是同一终端,也可以是不同终端。第一终端102与第三终端106上运行的应用程序可以是原生应用程序(Native APP),也可以是网络应用程序(Web APP),还可以是混合应用程序。第一终端102和第三终端106在应用程序中分别预安装了插件SDK(Software Development Kit,
软件开发工具包)。SDK是基于开源的UI(User Interface,用户界面)跨平台框架预先开发生成的脚本。UI跨平台框架可以是React Native框架或Weex框架(一种开源的UI跨平台框架)等。SDK包括数据采集脚本、触摸事件拦截脚本、控件匹配脚本和触摸事件上报脚本等,用于数据采集、触摸事件拦截、控件匹配和触摸事件上报等。
当需要对应用程序设置埋点时,第一终端102利用SDK获取应用程序当前页面的视图数据,将视图数据发送至服务器108。视图数据包括当前页面的页面截图及多个视图的属性信息,属性信息包括控件名称、基本属性和访问属性。服务器108根据基本属性识别页面截图中多个控件是否为可触摸控件。若不是,服务器108识别控件的控件名称是否为目标集合中的集合元素,以及该控件对应的访问属性是否具有预设的属性值。当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,服务器将该控件标记为可触摸控件,对可触摸控件添加对应的埋点边框,将设有埋点边框的页面截图发送至第二终端104。第二终端通过Web页面对页面截图进行展示。应用程序开发商可以通过第二终端104对页面截图中多个设有埋点边框的控件进行埋点操作。第二终端104将被埋点控件对应的埋点信息返回至服务器108。服务器108将被埋点控件的埋点信息发送至第三终端106,以对第三终端106上的应用程序部署埋点。结合基本属性和访问属性,可以对多种类型的应用程序页面对应的页面截图中的可触摸控件进行识别。
图2为本申请一个实施例的方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图2所示,提供了一种埋点处理方法,以该方法应用于服务器为例进行说明,具体包括以下步骤:
步骤202,接收终端发送的应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性。
当需要对应用程序设置埋点时,第一终端利用SDK对应用程序当前页面进行解析,采集应用程序当前页面多个控件的属性信息。当应用程序为原生APP时,属性信息包括控件名称和基本属性。控件名称可以直接反映控件类型,如UIwindow(一种控件名称)属于窗口类型控件,UIButton(一种控件名称)属于按钮类型控件等。基本属性包括透明属性、隐藏属性和交互属性等。交互属性包括userInteractionEnabled(一种属性名称)属性。容易理解,基本属性还可以包括其他信息,如位置坐标和层级信息等,对此不作限定。第一终端还利用SDK获取应用程序当前页面的页面截图,将页面截图以及多个控件的属性信息发送至服务器。
步骤204,根据基本属性识别控件是否为可触摸控件。
在一个实施例中,根据基本属性识别控件是否为可触摸控件的步骤,包括:识别控件名称是否为预设集合中的集合元素;当控件类型属于预设集合中的元素时,识别控件的透明属性、隐藏属性和交互属性是否均具有各自的预设属性值;当控件的透明属性、隐藏属性和交互属性均具有各自的预设属性值时,将控件标记为可触摸控件。
服务器存储了预设集合。预设集合将可以进行触摸操作的多个控件的控件名称作为集合元素进行记录。触摸操作包括点击、长按、短按或滑动等。其中,可以进行触摸操作的多个控件的控件名称包括UIControl,UITableViewCell、UICollectionViewCell,UIView(一种控件名称)及分别对应的子类控件的控件名称。例如,UIView对应的子类控件包括UIButton,UILabel等。
服务器识别控件的控件名称是否属于预设集合中的集合元素。当控件名称不属于预设集合中的集合元素时,则表示该控件不可以进行触摸操作。当
控件名称属于预设集合中的集合元素时,服务器获取该控件的透明属性、隐藏属性和交互属性各自的属性值,识别三个属性值是否分别达到各自的预设属性值。当透明属性的属性值为对应的预设属性值时,表示该控件是不透明的。当隐藏属性的属性值为对应的预设属性值时,表示该控件是可见的。当交互属性的属性值为对应的预设属性值时,表示该控件可以与用户交互,即该控件可以响应用户的触摸操作。当控件的透明属性、隐藏属性和交互属性均具有各自对应的预设属性值时,服务器将该控件标记为可触摸控件。
步骤206,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值。
步骤208,当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端。
针对原生APP,服务器根据控件的基本属性即可识别该控件是否可以进行触摸操作。Web APP或者混合APP中存在跨平台页面,如H5页面。由于跨平台页面是由JS(JavaScript,直译式脚本语言)引擎翻译而成,使得跨平台页面中控件的控件名称并不属于预设集合中的集合元素。即使跨平台页面中的控件实际属于可触摸控件,服务器也可能因为其控件名称不属于预设集合中的集合元素,而将可触摸控件判定为无法进行触摸操作的控件,进而无法对该控件设置埋点。
当根据基本属性将控件识别为不可以进行触摸操作的控件时,尚不能确定该控件不能进行触摸操作,服务器识别控件的控件名称是否属于目标集合中的集合元素。目标集合可以是应用程序开发商预先在服务器配置的。目标集合也将可以进行触摸操作的多个控件的控件名称作为集合元素进行记录。目标集合中的控件名称包括RCTView(一种控件名称)及其子类控件的控件名称。
当控件名称不属于目标集合中的集合元素时,则表示该控件不可以进行触摸操作。当应用程序为Web APP或者混合APP时,第一终端利用SDK获
取的属性信息还包括访问属性。访问属性包括isAccessibilityElement(一种属性名称)属性。当控件名称属于目标集合中的集合元素时,服务器获取访问属性的属性值,判断该属性值是否为预设的属性值。当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,服务器将控件标记为可触摸控件。
服务器对可触摸控件添加对应的埋点边框,将添加了埋点边框的页面截图发送至第二终端。第二终端通过Web页面展示页面截图。当第二终端接收到应用程序开发商对埋点边框的埋点操作时,获取埋点边框对应的控件的埋点信息,将埋点信息发送至服务器。服务器将控件的埋点信息发送至第三终端,使第三终端在获取到控件对应的触摸事件时,根据埋点信息对触摸事件进行上报。
本实施例中,根据应用程序当前页面中控件的基本属性,可以对控件是否为可触摸控件及时初步识别,根据应用程序当前页面中控件的访问属性是否具有预设的属性值及控件名称是否为目标集合中的集合元素,可以对控件是否为可触摸控件作进一步识别;若控件为可触摸控件,将被圈选的可触摸控件对应的埋点信息发送至终端。当应用程序为原生APP时,根据基本属性即可对应用程序当前页面中的可触摸控件进行识别;当应用程序为Web APP或者混合APP时,可以根据访问属性对对应用程序当前页面中的可触摸控件进行识别,使得该可触摸控件识别方法对于多种类型的应用程序均可以通用。
在一个实施例中,视图数据还包括多个视图的视图标识、视图名称和层级信息;视图包括控件;在获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端的步骤之前,还包括:按照预设规则将多个视图标识作为数组元素添加至多个数组;多个数组具有不同的级别;查询最高级别数组中的视图标识对应的视图名称,将最高级别数组中的视图标识对应的视图名称标记为父节点;查询次高级别数组中的视图标识对应的视图名称,根据层级信息,将次高级别数组中的视图标识对应的视图名称标记为父节点的子节点;将子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭
代,直至最低级别数组,得到应用程序页面的多叉树;根据多叉树生成多个视图分别对应的层级路径,根据层级路径在页面截图对相应的视图添加对应的埋点边框,将设有埋点边框的页面截图发送至预设终端,使预设终端对设有埋点边框的页面截图进行展示,并获取对埋点边框对应控件的埋点操作;接收预设终端返回的被埋点的控件的埋点信息,根据多叉树生成被埋点的控件的层级路径,将被埋点的控件的层级路径发送至指定终端。
当需要对应用程序设置埋点时,第一终端利用SDK获取应用程序当前页面的视图数据,将应用程序当前页面的视图数据封装为预设格式,并对视图数据进行压缩,将压缩后的视图数据加密传输至服务器。预设格式可以是具有数据层级结构的数据格式,如HDF(层次型数据格式)。预设格式也可以是不具有层级结构的数据格式,如采用扁平化结构存储的JSON格式(一种数据交换格式)。
视图数据包括应用程序当前页面的页面截图和当前页面内多个视图的属性信息。页面截图为静态的屏幕截图。视图包括控件和视图控制器。在应用程序当前页面,视图控制器用于创建和管理控件,对用户是不可见的。用户可以对可见的控件进行触摸操作。触摸操作包括点击、长按、短按或滑动等。属性信息包括视图名称、视图标识和层级信息。容易理解,视图名称可以是控件名称或控制器名称,视图标识可以是控件标识或控制器标识。视图名称可以直接反映视图类型,如UIwindow属于窗口类型控件,RootViewController属于根视图控制器等。视图标识可以唯一识别一个视图,可以是视图编号,如IDn(n=1,2…)等。每个视图具有对应的层级信息,层级信息包括该视图与其他视图之间的继承关系。例如,控件UIButton继承于控件UIView,则控件UIButton为控件UIView的下一层级视图。
服务器根据视图的属性信息构建应用程序当前页面对应的多叉树,根据多叉树生成可触摸控件的层级路径,根据层级路径在页面截图对可触摸控件添加对应的埋点边框。具体的,服务器建立最高级别数组,提取与预设根视图具有相同视图名称的视图的视图标识,将提取到的视图标识添加至最高级
别数组。例如,最高级别数组可以是A1[ID 6]。服务器将提取到的视图标记为父视图,根据该父视图的层级信息,对视图数据进行遍历,检测是否存在该父视图对应的子视图。当视图数据中存在对应的子视图时,服务器建立次高级别数组,在视图数据中提取该父视图对应的子视图的视图标识,将提取到的视图标识添加至次高级别数组。例如,次高级别数组可以是A2[ID 2,ID7,ID 8]。服务器将提取到的子视图作为父视图,在视图数据中查询是否存在对应的子视图。当视图数据中存在对应的子视图时,服务器按照上述方式建立再下一级别数组。如此循环,直至视图数据中不存在对应的子视图时,得到最低级别数组。例如,下一级别数组可以是A3[ID 1,ID 4,ID5],最低级别数组可以是A4[ID3,ID 9,ID10,ID 11,ID 12]。
服务器每生成一个数组,将对应的数组元素作为节点添加至多叉树中。具体的,在生成最高级别数组后,服务器查询最高级别数组的数组元素对应的视图名称,将最高级别数组的数组元素对应的视图名称标记为多叉树的根节点。例如,如图3所示,多叉树的根节点为最高级别数组A1的数组元素ID 6对应的视图名称UIWindow(窗口)。
在得到多叉树的根节点后,服务器按照上述方式生成次高级别数组,查询次高级别数组的数组元素对应的视图名称,将次高级别数组的数组元素对应的视图名称标记为多叉树中根节点的子节点,利用预设连接线将子节点连接至根节点,形成多叉树的多个树枝。可以理解,根节点也是上述子节点的父节点。例如,如图3所示,预设连接线可以是带有箭头的线段,根节点的子节点为次高级别数组A2的三个数组元素ID2、ID7和ID8分别对应的视图名称UIView(视图)、ViewController(视图控制器)和UIView,对应形成多叉树的三个树枝。
在得到多叉树根节点的子节点后,服务器按照上述方式生成下一级别数组,将上述子节点作为该下一级别数组中数组元素的父节点,查询下一级别数组的数组元素对应的视图名称,利用预设连接线将下一级别数组中数组元素对应的视图名称连接至对应的父节点,以对多叉树的树枝进行延长。换句
话说,服务器根据上述每个子节点对应视图的层级信息,查询每个子节点对应视图的下一层级视图,利用预设连接线将下一级别数组中相应数组元素对应的视图名称连接至对应的子节点。例如,如图3所示,下一级别数组A3包括三个数组元素ID1、ID4和ID5,分别对应的视图名称为UIView、ChildController(子控制器)和ChildController。假设次高级别数组A2的数组元素ID2对应视图不存在下一层级视图,数组元素ID7对应视图的下一层级视图包括数组元素ID1对应的视图,数组元素ID8对应视图的下一层级视图包括数组元素ID4对应的视图和数组元素ID5对应的视图,则将数组元素ID1对应视图的视图名称UIView连接至数组元素ID7对应视图的视图名称ViewController,将数组元素ID4对应视图的视图名称ChildController和数组元素ID5对应视图的视图名称ChildController分别连接至数组元素ID8对应视图的视图名称UIView。
服务器按照上述方式依次将每个数组中数组元素对应视图的视图名称作为节点添加至多叉树中,形成应用程序当前页面最终对应的多叉树。
第一终端上传至服务器的视图数据经过格式转换后可能不具有层级结构,且视图数据仅包含单个视图的层级信息,使得多个视图之间的层级关系隐蔽且分散,难以从整体上反应应用程序当前页面多个视图间的层级结构。本实施例中,服务器可以根据不具有层级结构的视图数据,对应用程序当前页面中多个视图的属性信息进行整合,提炼出可以从整体上反应当前页面多个视图间层级结构的多叉树。
根据多叉树生成多个可触摸控件分别对应的层级路径,根据层级路径对每个可触摸控件进行定位。如图4所示,服务器根据定位对可触摸控件添加对应的埋点边框。埋点边框可以响应应用程序开发商的点击操作。埋点边框的形状与大小可以是与对应视图的图标的形状与大小一致。服务器将设有埋点边框的页面截图发送至预设终端,即第二终端。第二终端对设有埋点边框的页面截图进行展示。应用程序开发商可以通过在第二终端对页面截图上点击埋点边框,并输入对应的触摸事件标识,实现埋点设置。服务器根据多叉
树生成被埋点控件对应的层级路径,将被埋点控件的层级路径发送至第三终端,使第三终端在拦截到被触摸控件对应的触摸事件时,根据层级路径对被触摸控件和被埋点控件进行匹配。
本实施例中,根据应用程序当前页面多个视图的层级信息,可以将不同视图的视图标识作为数组元素添加至多个数组;根据不同级别数组包含的视图标识,可以查询对应视图的视图名称;通过将最高级别数组中的视图标识对应的视图名称标记为父节点,将次高级别数组中的视图标识对应的视图名称标记为该父节点的子节点,将该子节点作为下一级别数组中的视图标识对应的视图名称的父节点进行迭代,可以构建应用程序当前页面对应的多叉树;根据视图的层级信息构建的多叉树,可以从整体上反应当前页面多个视图的层级结构,由此根据多叉树生成的视图的层级路径,可以准确在页面截图添加埋点边框,也可以对每个视图进行准确定位。
在一个实施例中,根据多叉树生成多个视图分别对应的层级路径的步骤,包括:根据需要展示的多个视图的视图标识,在多叉树中查询对应的节点,将节点标记为目标节点;利用第一预设标识将根节点至目标节点的多个节点分别对应的视图名称依次拼接,得到目录字符串,将目录字符串作为目标节点对应视图的视图路径;对多叉树中不同层级节点对应的视图分别进行单独编号,对同一层级节点对应的不同类型视图分别进行单独编号,将编号作为对应视图的视图索引;利用第二预设标识将根节点至目标节点的多个节点分别对应的视图索引依次拼接,得到索引字符串,将索引字符串作为目标节点对应视图的索引路径。
根据节点对应数组元素所属数组的级别,不同节点在多叉树中具有不同层级。为了方便描述,规定最高级别数组中数组元素对应第一层级节点,次高级别数组中数组元素对应第二层级节点,下一级别数组中数组元素对应第三层级节点,再下一级别数组中数组元素对应第四层级节点,如此递推。例如,如图3所示,最高级别数组A1的数组元素ID 6对应的根节点UIwindow为第一层级节点,次高级别数组A2的数组元素ID2、ID7和ID8分别对应的
节点UIView、ViewController和RootController为第二层级节点。
服务器在多叉树构建过程中,对多叉树每个节点进行编号,以使每个节点对应的视图具有视图索引。具体的,服务器对多叉树中不同层级节点对应的视图分别进行单独编号,对同一层级节点对应的不同类型视图分别进行单独编号,对同一层级节点对应的相同类型视图进行连续编号,将编号作为对应视图的视图索引。服务器可以将视图索引作为对应视图的视图名称的下标进行记录。例如,如图3所示,第一层级节点UIwindow与第二层级节点UIwiew对应的视图索引分别可以是初始编号。初始编号可以是0。多个第四层级节点中不同类型视图UIButton(按钮)和UILabel(标签)单独编号,三个相同的按钮类型视图对应的视图索引可以是UIButton0,UIButton1和UIButton2,两个相同的标签类型视图对应的视图索引可以是UILabel0和UILabel1。
当应用程序当前页面新增或删除视图时,服务器仅对与新增或删除的视图相同类型的视图重新进行单独编号。例如,当将按钮控件UIButton1删除时,仅UIButton2变更为UIButton1,而对三个标签控件没有影响。对同一层级的不同类型的视图分别进行单独编号,可以尽量减少新增或删除视图对控件索引的影响,具有一定的索引路径抗干扰作用。
服务器根据可触摸视图的视图标识,在多叉树中查询对应的节点,将该节点标记为目标节点。服务器利用第一预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图名称依次拼接,得到目录字符串,将目录字符串作为目标节点对应视图的视图路径。服务器利用第二预设标识将多叉树中根节点至目标节点的多个节点分别对应的视图索引依次拼接,得到索引字符串,将索引字符串作为目标节点对应视图的索引路径。第一预设标识和第二预设标识分别可以是“/”,“_”,“#”,“@”或“*”等。
组成视图路径的各个视图名称分别对应不同层级的视图,故视图路径可以对不同层级的视图进行区分。例如,假设上述举例中的控件UIButton1对应的视图路径为/UIwindow/ViewController/UIView/UIButton,则表示UIwindow为最高层级视图,ViewController为UIwindow的下一层级视图,UIView为
ViewController的下一层级视图,UIButton为UIView的下一层级视图。
多个视图可以继承于同一视图,即多个视图分别对应的上一层级视图可以是同一视图,如控件UIButton0,控件UIButton1和控件UIButton2可以继承于同一控件UIView。索引路径可以反映对一个视图在对应的上一层级视图中的显示层级关系,即可以对同一层级的不同视图进行区分。例如,假设上述举例中的控件UIButton1对应的索引路径为0_1_2_1,则表示UIwindow为最高层级视图,视图控制器ViewController为上一层级视图UIwindow的第2个子视图,控件UIView为上一层级视图ViewController的第3个子视图,控件UIButton为上一层级视图UIView的第2个子视图。
视图路径可以对不同层级的视图进行区分,索引路径可以对同一层级的不同视图进行区分,从而视图路径和索引路径的结合可以共同完成控件唯一性定位。可以理解,层级路径也可以将视图路径与索引路径结合展示。例如,将视图索引作为对应视图的视图名称的下标,利用第一预设标识或第二预设标识按照上述方式将多个带有下标的视图名称进行逐级拼接,得到如下层级路径:/UIwindow0/ViewController1/UIView2/UIButton1。
本实施例中,视图路径对不同层级的控件进行区分,索引路径对同一层级多个不同控件进行区分,结合视图路径和索引路径可以对页面截图上的视图进行准确定位,从而可以在页面截图上准确添加埋点边框。
在一个实施例中,如图5所示,提供了一种埋点处理方法,以该方法应用于第一终端为例进行说明,具体包括以下步骤:
步骤502,获取应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性。
步骤504,将属性信息发送至服务器;使服务器根据基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸控件。
步骤506,接收服务器返回的可触摸控件对应的埋点信息。
在一个实施例中,获取应用程序当前页面中控件的属性信息的步骤,包括:向服务器发送可视化埋点请求;接收服务器根据可视化埋点请求返回的配置表,配置表记录了多个配置项;根据配置项对应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;将属性信息对应配置项添加至配置表。
当需要对应用程序设置埋点时,第一终端在应用程序需要设置埋点的当前页面向服务器发送可视化埋点请求。服务器根据可视化埋点请求执行预设的埋点准备任务,作好埋点准备后,向第一终端返回截屏请求。截屏请求中携带了空的配置表,配置表记录了多个配置项。配置项包括视图名称及对应的属性名称等,如基本属性和访问属性等。配置表可以是应用程序开发商预先配置在服务器中的。根据截屏请求及携带的配置表,第一终端利用SDK对应用程序当前页面进行解析,获取当前页面中多个视图对应的属性信息,将属性信息对应配置项添加至配置表中,以对配置表进行填写,将填写后的配置表发送至服务器。
服务器在配置表中读取视图的属性信息,根据属性信息生成多个被埋点控件的视图路径和索引路径,将多个被埋点控件的视图路径和索引路径发送至第三终端。
本实施例中,应用程序开发商可以根据需求及时在配置表中添加遗漏的配置项,也可以删除不必要的配置项,如数据量较大的控件背景图片,避免第一终端上报一些冗余的数据,可以对上报的视图的属性信息进行一定程度上的优化,也可以减少第一终端获取视图的属性信息以及填写配置表的时间,进而可以提高服务器对可触摸控件的识别效率。
在一个实施例中,向服务器发送可视化埋点请求的步骤,包括:获取应用程序的目标配置文件;在目标配置文件中添加允许用户登录的白名单;对白名单及对应的参数数据关联对应的识别码;当接收到识别码对应的扫描操作时,向服务器发送可视化埋点请求。
第一终端在应用程序的目标配置文件中预先添加了特定的白名单。目标配置文件包括info.plist文件,白名单包括UrlScheme(一种可以让应用程序相互之间发生跳转的协议)。通过白名单,使应用程序开放商可以通过运行在第一终端上的第三方应用程序向服务器发起可视化埋点请求。通过第三方的应用程序可以获取一个识别码,该识别码是第一终端利用白名单及对应的参数数据生成的。识别码可以是二维码或条形码等。当接收到识别码对应的扫描操作时,第一终端利用识别码携带的白名单及对应的参数数据,从第三方的应用程序跳转至需要设置埋点的应用程序,触发该应用程序中的SDK,使SDK采用WebSocket(一种网络协议)与服务器建立长连接,向服务器发送可视化埋点请求。
本实施例中,通过扫描识别码即可触发可视化埋点,操作简便,且符合当下用户习惯。
在一个实施例中,向服务器发送可视化埋点请求的步骤,包括:获取在应用程序当前页面的输入手势;当输入手势为预设的特定手势,且输入手势的持续时间达到阈值时,向服务器发送可视化埋点请求。
第一终端预先将特定手势配置为应用程序中SDK的触发条件。当用户在第一终端应用程序当前页面进行手势输入时,第一终端获取输入手势及对应的持续时间,将输入手势与预设的特定手势进行匹配,将输入手势的持续时间与阈值进行比较。预设的特定手势及阈值均可以根据喜好自由设置,如特定手势可以是四个手指同时触摸应用程序当前页面,阈值可以是5秒。当输入手势为预设的特定手势,且输入手势的持续时间达到阈值时,SDK被触发,使SDK采用WebSocket与服务器建立长连接,向服务器发送可视化埋点请求。
在其中一个实施例中,当第一终端与服务器成功建立长连接时,第一终端在应用程序当前页面的边缘位置显示已连接提示信息;当第一终端与服务器断开长连接时,已连接提示信息消失,方便应用程序开发商及时了解第一终端与服务器的连接状况。边缘位置可以是应用程序当前页面的顶部、底部或侧部等,已连接提示信息可以是具有预设像素高度的进度条等。
本实施例中,通过输入特定手势即可触发可视化埋点,操作简单;特定手势不同于用户操作第一终端时常用手势,也可以减少误操作。
在一个实施例中,埋点信息包括多个被埋点控件的视图路径和索引路径;在接收服务器返回的可触摸控件对应的埋点信息的步骤之后,还包括:获取可触摸控件的触摸事件,对触摸事件进行拦截;获取被触摸的可触摸控件的视图路径和索引路径;将被触摸的可触摸控件的视图路径与被埋点控件的视图路径进行匹配,将被触摸的可触摸控件的索引路径与被埋点控件的索引路径进行匹配;当被触摸的可触摸控件的与被埋点控件的视图路径和索引路径分别匹配成功时,获取预先配置的多个服务器标识,筛选资源占用最少的服务器标识,将触摸事件上报至对应的服务器。
当服务器将被埋点控件的埋点信息发送至第三终端时,第三终端利用SDK对被埋点控件的埋点信息进行缓存。第三终端还利用SDK采集并缓存了应用程序当前页面多个视图的属性信息。视图包括控件和视图控制器。在应用程序当前页面,控件对用户可见,视图控制器对用户不可见,用户可以对控件进行触摸操作。需要说明的是,视图控制器对用户虽是不可见的,但控件和视图控制器一起才能够反映应用程序当前页面中多个视图整体的层级结构,故视图控制器也用于构建控件的视图路径和索引路径。
属性信息包括视图名称和视图索引。容易理解,视图名称可以是控件名称或控制器名称,视图索引可以是视图控件索引或控制器索引。视图名称可以直接反映视图类型,如UIwindow属于窗口类型控件,UIButton属于按钮类型控件,RootViewController属于根视图控制器等。视图索引可以是SDK根据应用程序当前页面多个视图之间的层级关系预先给多个视图分配的。SDK根据该层级关系对不同层级的视图分别进行单独编号,对同一层级的不同类型的视图分别进行单独编号,将该编号作为相应视图对应的视图索引。例如,假设在同一层级的视图中存在三个按钮类型控件,则三个按钮类型控件对应的控件索引依次可以是0,1和2。SDK可以将视图索引作为对应视图的视图名称的下标进行记录,如UIButton0,UIButton1和UIButton2。
属性信息还包括应用程序当前页面多个视图的层级信息。每个视图具有对应的层级信息,层级信息包括该视图与其他一个或多个视图之间的继承关系。例如,控件UIButton继承于控件UIView,控件UIView继承于视图控制器ViewController,则控件UIView为控件UIButton的上一层级视图,视图控制器ViewController为控件UIView的上一层级视图。
当用户通过第三终端对应用程序当前页面的某个控件进行触摸操作时,第三终端利用SDK获取被触摸控件的属性信息,根据属性信息得到被触摸控件的层级路径。层级路径包括视图路径和索引路径。具体的,SDK根据被触摸控件的层级信息向上逐级回溯,即识别被触摸控件是否存在上一层级视图。容易理解,当被触摸控件为应用程序当前页面的最高层级视图时,被触摸控件不存在上一层级视图。当被触摸控件存在上一层级视图时,提取该上一层级视图的视图名称和视图索引。SDK根据被触摸控件的层级信息继续向上逐级回溯,即识别被触摸控件的上一层级视图是否仍存在对应的上一层级视图,若存在,则提取对应的视图名称和视图索引,直至最高层级视图。
根据被触摸控件的层级信息,SDK利用第一预设标识将提取到的多个视图名称逐级拼接,即将最高层级视图至被触摸控件的多个视图的视图名称依次拼接,得到目录字符串,将该目录字符串作为被触摸控件对应的视图路径。SDK利用第二预设标识将提取到的多个视图索引逐级拼接,即将最高层级视图至被触摸控件的多个视图的视图索引依次拼接,得到索引字符串,将该索引字符串作为被触摸控件对应的索引路径,从而得到被触摸控件对应的层级路径。第一预设标识和第二预设标识分别可以是“/”,“_”,“#”,“@”或“*”等。
多个视图可以继承于同一视图,即多个视图分别对应的上一层级视图可以是同一视图,如控件UIButton0,控件UIButton1和控件UIButton2可以继承于同一控件UIView。索引路径可以反映一个视图在对应的上一层级视图中的显示层级关系。例如,假设被触摸控件为上述举例中的控件UIButton1,对应的视图路径为/UIwindow/ViewController/UIView/UIButton,索引路径为0_1_2_1,则表示UIwindow为最高层级视图的第1个子视图,视图控制器
ViewController为上一层级视图UIwindow的第2个子视图,控件UIView为上一层级视图ViewController的第3个子视图,控件UIButton为上一层级视图UIView的第2个子视图。可以理解,层级路径也可以将视图路径与索引路径结合展示。例如,将视图索引作为对应视图的视图名称的下标,利用第一预设标识或第二预设标识按照上述方式将多个带有下标的视图名称进行逐级拼接,如/UIwindow0/ViewController1/UIView2/UIButton1。
第三终端利用SDK读取缓存的多个埋点控件的视图路径和索引路径,将被埋点控件的视图路径和索引路径作为匹配参考对象,将被触摸控件的视图路径和索引路径分别与匹配参考对象进行匹配。
同一视图路径中多个视图名称的相对顺序可以反映每个视图在视图路径中的视图深度。为了描述方便,规定视图路径中第一个视图名称对应第一视图深度,第二个视图名称对应第二视图深度,如此递推。例如,视图路径/UIwindow/ViewController/UIView/UIButton中UIwindow对应第一视图深度,ViewController对应第二视图深度,UIView对应第三视图深度,UIButton对应第四视图深度。
为了提高匹配效率,SDK根据层级路径中每个视图的视图深度,将被触摸控件的层级路径与多个被埋点控件的层级路径进行剔除式匹配,逐渐减少被埋点控件作为匹配参考对象的数量,以减少不必要的匹配。具体的,SDK进行第一轮匹配,将被触摸控件层级路径中第一视图深度的视图名称和对应的视图索引分别与多个被埋点控件视图路径中第一视图深度的视图名称和对应的视图索引进行匹配,筛选第一视图深度的视图名称和对应的视图索引分别匹配成功的一个或多个被埋点控件的视图路径。SDK进行第二轮匹配,将被触摸控件视图路径中第二视图深度的视图名称和对应的视图索引分别与筛选出的多个被埋点控件视图路径中第二视图深度的视图名称和对应的视图索引进行匹配,如此经过多轮匹配,直至被触摸控件视图路径中被触摸控件的视图名称和视图索引也完成匹配。
视图路径和索引路径的结合可以共同完成控件唯一性定位。容易理解,
单纯的视图路径匹配成功,尚不能确定被触摸控件与被埋点控件的对应关系。当存在被埋点控件的层级路径与被触摸控件的层级路径一致,即存在被埋点控件的视图路径与被触摸控件的视图路径相匹配,且该被埋点控件的索引路径与被触摸控件的索引路径相匹配时,表示被触摸控件属于被埋点控件,需要对被触摸控件对应的触摸事件上报至服务器。需要说明的是,接收触摸事件上报信息的服务器与向第三终端下发埋点信息的服务器可以是同一服务器,也可以是不同的服务器。
本实施例中,当用户触摸应用程序当前页面的控件时,可以对应用程序当前页面中被触摸控件对应的触摸事件进行拦截;在拦截触摸事件后,获取被触摸控件的路径信息,根据服务器发送的多个被埋点控件的路径信息与被触摸控件的路径信息进行匹配,判断是否需要对触摸事件进行上报;当存在被埋点控件的视图路径与被触摸控件的视图路径相匹配,且该被埋点控件的索引路径与被触摸控件的索引路径相匹配时,将触摸事件上报至服务器。由于路径信息不仅包括控件对应的视图路径,还包括其索引路径,视图路径可以对不同层级视图对应的控件进行区分,索引路径可以对同一层级视图对应的不同控件进行区分,视图路径和索引路径的结合可以共同完成控件唯一性定位,从而能够提高控件匹配精度,进而可以对控件的触摸事件进行准确上报。
在一个实施例中,如图6所示,提供了一种埋点处理装置,包括:获取模块602,识别模块604和埋点模块606,其中:
获取模块602,用于接收终端发送的应用程序当前页面中控件的属性信息;属性信息包括控件名称、基本属性和访问属性;
识别模块604,用于根据基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及访问属性是否具有预设的属性值;
埋点模块606,用于当控件名称为目标集合中的集合元素,且访问属性
具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将埋点信息发送至终端。
上述的埋点处理装置可以实现为一种计算机可读指令的形式,计算机可读指令可在如图7所示的计算机设备上运行。
在一个实施例中,提供了一种计算机设备,如图7所示,该计算机设备包括通过***总线连接的处理器、存储装置和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储装置包括一个或多个非易失性存储介质、一个或多个内存储器。该服务器的非易失性存储介质存储有操作***和计算机可读指令。该计算机设备的内存储器为非易失性存储介质中的操作***和计算机可读指令的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信,比如,接收第一终端发送的应用程序当前页面的页面截图及多个视图的属性信息等。该计算机可读指令被处理器执行时以实现一种埋点处理方法。计算机可读指令被处理器执行时,使得一个或多个处理器执行上述各个实施例中埋点处理方法的步骤。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一个或多个存储有计算机可读指令的非易失性存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各个实施例中埋点处理方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,前述计算机可读指令可存储于一非易失性存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(ReCd-Only Memory,ROM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上
述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (20)
- 一种埋点处理方法,包括:接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;根据所述基本属性识别控件是否为可触摸控件;当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素以及所述访问属性是否具有预设的属性值;及当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
- 根据权利要求1所述的方法,其特征在于,所述基本属性包括透明属性、隐藏属性和交互属性,所述根据所述基本属性识别控件是否为可触摸控件,包括:识别控件名称是否为预设集合中的集合元素;当控件类型属于预设集合中的元素时,识别控件的透明属性、隐藏属性和交互属性是否均具有各自的预设属性值;及当控件的透明属性、隐藏属性和交互属性均具有各自的预设属性值时,将控件标记为可触摸控件。
- 一种埋点处理方法,包括:获取应用程序当前页面中控件的属性信息;所述属性信息包括基本属性和访问属性;将所述属性信息发送至服务器;使服务器根据所述基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素以及所述访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸控件;及接收所述服务器返回的可触摸控件对应的埋点信息。
- 根据权利要求3所述的方法,其特征在于,所述获取应用程序当前页面中控件的属性信息,包括:向所述服务器发送可视化埋点请求;接收所述服务器根据所述可视化埋点请求返回的配置表,所述配置表记录了多个配置项;根据所述配置项对所述应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;及将所述属性信息对应所述配置项添加至所述配置表。
- 根据权利要求4所述的方法,其特征在于,所述向所述服务器发送可视化埋点请求,包括:获取所述应用程序的目标配置文件;在所述目标配置文件中添加允许用户登录的白名单;对所述白名单及对应的参数数据关联对应的识别码;及当接收到所述识别码对应的扫描操作时,向服务器发送可视化埋点请求。
- 根据权利要求4所述的方法,其特征在于,所述向所述服务器发送可视化埋点请求,包括:获取在应用程序当前页面的输入手势;及当所述输入手势为预设的特定手势,且所述输入手势的持续时间达到阈值时,向所述服务器发送可视化埋点请求。
- 根据权利要求3所述的方法,其特征在于,所述埋点信息包括多个被埋点控件的视图路径和索引路径;在所述接收所述服务器返回的可触摸控件对应的埋点信息之后,还包括:获取可触摸控件的触摸事件,对所述触摸事件进行拦截;获取被触摸的可触摸控件的视图路径和索引路径;将所述被触摸的可触摸控件的视图路径与被埋点控件的视图路径进行匹配,将所述被触摸的可触摸控件的索引路径与被埋点控件的索引路径进行匹配;及当所述被触摸的可触摸控件的与被埋点控件的视图路径和索引路径分别匹配成功时,获取预先配置的多个服务器标识,筛选资源占用最少的服务器标识,将所述触摸事件上报至对应的服务器。
- 一种埋点处理装置,包括:获取模块,用于接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;识别模块,用于根据所述基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素及所述访问属性是否具有预设的属性值;及埋点模块,用于当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
- 一种计算机设备,包括存储器及处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行以下步骤:接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;根据所述基本属性识别控件是否为可触摸控件;当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素以及所述访问属性是否具有预设的属性值;及当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
- 一种计算机设备,包括存储器及处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行以下步骤:获取应用程序当前页面中控件的属性信息;所述属性信息包括基本属性 和访问属性;将所述属性信息发送至服务器;使服务器根据所述基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素以及所述访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸控件;及接收所述服务器返回的可触摸控件对应的埋点信息。
- 根据权利要求10所述的计算机设备,其特征在于,所述处理器还用于执行:向所述服务器发送可视化埋点请求;接收所述服务器根据所述可视化埋点请求返回的配置表,所述配置表记录了多个配置项;根据所述配置项对所述应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;及将所述属性信息对应所述配置项添加至所述配置表。
- 根据权利要求11所述的计算机设备,其特征在于,所述处理器还用于执行:获取所述应用程序的目标配置文件;在所述目标配置文件中添加允许用户登录的白名单;对所述白名单及对应的参数数据关联对应的识别码;及当接收到所述识别码对应的扫描操作时,向服务器发送可视化埋点请求。
- 根据权利要求11所述的计算机设备,其特征在于,所述处理器还用于执行:获取在应用程序当前页面的输入手势;及当所述输入手势为预设的特定手势,且所述输入手势的持续时间达到阈值时,向所述服务器发送可视化埋点请求。
- 根据权利要求10所述的计算机设备,其特征在于,所述埋点信息包 括多个被埋点控件的视图路径和索引路径;所述处理器还用于执行:获取可触摸控件的触摸事件,对所述触摸事件进行拦截;获取被触摸的可触摸控件的视图路径和索引路径;将所述被触摸的可触摸控件的视图路径与被埋点控件的视图路径进行匹配,将所述被触摸的可触摸控件的索引路径与被埋点控件的索引路径进行匹配;及当所述被触摸的可触摸控件的与被埋点控件的视图路径和索引路径分别匹配成功时,获取预先配置的多个服务器标识,筛选资源占用最少的服务器标识,将所述触摸事件上报至对应的服务器。
- 一个或多个存储有计算机可读指令的非易失性存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:接收终端发送的应用程序当前页面中控件的属性信息;所述属性信息包括控件名称、基本属性和访问属性;根据所述基本属性识别控件是否为可触摸控件;当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素以及所述访问属性是否具有预设的属性值;及当控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时,将控件标记为可触摸控件,获取被圈选的可触摸控件对应的埋点信息,将所述埋点信息发送至终端。
- 一个或多个存储有计算机可读指令的非易失性存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:获取应用程序当前页面中控件的属性信息;所述属性信息包括基本属性和访问属性;将所述属性信息发送至服务器;使服务器根据所述基本属性识别控件是否为可触摸控件,当控件不是可触摸控件时,识别控件名称是否为目标集合中的集合元素以及所述访问属性是否具有预设的属性值,并在控件名称为目标集合中的集合元素,且访问属性具有预设的属性值时将控件标记为可触摸 控件;及接收所述服务器返回的可触摸控件对应的埋点信息。
- 根据权利要求16所述的存储介质,其特征在于,所述处理器还用于执行:向所述服务器发送可视化埋点请求;接收所述服务器根据所述可视化埋点请求返回的配置表,所述配置表记录了多个配置项;根据所述配置项对所述应用程序当前页面进行解析,获取当前页面中控件对应的属性信息;及将所述属性信息对应所述配置项添加至所述配置表。
- 根据权利要求17所述的存储介质,其特征在于,所述处理器还用于执行:获取所述应用程序的目标配置文件;在所述目标配置文件中添加允许用户登录的白名单;对所述白名单及对应的参数数据关联对应的识别码;及当接收到所述识别码对应的扫描操作时,向服务器发送可视化埋点请求。
- 根据权利要求17所述的存储介质,其特征在于,所述处理器还用于执行:获取在应用程序当前页面的输入手势;及当所述输入手势为预设的特定手势,且所述输入手势的持续时间达到阈值时,向所述服务器发送可视化埋点请求。
- 根据权利要求16所述的存储介质,其特征在于,所述埋点信息包括多个被埋点控件的视图路径和索引路径;所述处理器还用于执行:获取可触摸控件的触摸事件,对所述触摸事件进行拦截;获取被触摸的可触摸控件的视图路径和索引路径;将所述被触摸的可触摸控件的视图路径与被埋点控件的视图路径进行匹配,将所述被触摸的可触摸控件的索引路径与被埋点控件的索引路径进行匹 配;及当所述被触摸的可触摸控件的与被埋点控件的视图路径和索引路径分别匹配成功时,获取预先配置的多个服务器标识,筛选资源占用最少的服务器标识,将所述触摸事件上报至对应的服务器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711058954.8 | 2017-11-01 | ||
CN201711058954.8A CN107818162B (zh) | 2017-11-01 | 2017-11-01 | 埋点处理方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019085084A1 true WO2019085084A1 (zh) | 2019-05-09 |
Family
ID=61604546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/112673 WO2019085084A1 (zh) | 2017-11-01 | 2017-11-23 | 埋点处理方法、装置、计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107818162B (zh) |
WO (1) | WO2019085084A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187880A (zh) * | 2019-05-30 | 2019-08-30 | 北京腾云天下科技有限公司 | 一种同类元素识别方法、装置和计算设备 |
CN112258218A (zh) * | 2020-09-29 | 2021-01-22 | 京东数字科技控股股份有限公司 | 一种推荐产品的方法和装置 |
CN115484189A (zh) * | 2022-08-31 | 2022-12-16 | 未来电视有限公司 | 数据合规测试方法、装置、电子设备及存储介质 |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020332B (zh) * | 2017-07-25 | 2021-06-04 | 北京国双科技有限公司 | 一种基于圈选元素的事件生成方法及装置 |
CN108536589A (zh) * | 2018-03-26 | 2018-09-14 | 广州小鹏汽车科技有限公司 | 一种应用程序埋点方法及*** |
CN108829391B (zh) * | 2018-05-04 | 2021-08-31 | 武汉极意网络科技有限公司 | 一种Fragment中控件识别方法及*** |
CN108920354B (zh) * | 2018-05-07 | 2021-01-01 | 未鲲(上海)科技服务有限公司 | 埋点管理方法、装置、计算机设备和存储介质 |
CN108874641A (zh) * | 2018-06-01 | 2018-11-23 | 平安科技(深圳)有限公司 | 一种埋点数据的分析方法及装置 |
CN108877796A (zh) * | 2018-06-14 | 2018-11-23 | 合肥品冠慧享家智能家居科技有限责任公司 | 语音控制智能设备终端操作的方法和装置 |
CN108874566A (zh) * | 2018-07-11 | 2018-11-23 | 深圳市分期乐网络科技有限公司 | 页面通信方法、装置、设备及存储介质 |
CN110837368B (zh) * | 2018-08-17 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法、装置及电子设备 |
CN109508186A (zh) * | 2018-09-18 | 2019-03-22 | 众安信息技术服务有限公司 | 一种基于iOS可视化埋点的数据采集分析方法及*** |
CN109409934B (zh) * | 2018-09-27 | 2023-08-18 | 湖南优讯银态优服科技有限公司 | 一种产品体验定位与反馈激励机制的设计方法及*** |
CN109521919B (zh) * | 2018-10-17 | 2022-03-01 | 深圳壹账通智能科技有限公司 | 基于浮层界面的埋点方法、装置、设备及存储介质 |
CN109597949B (zh) * | 2018-10-22 | 2024-04-02 | 平安科技(深圳)有限公司 | 基于数据标准化的第三方埋点标识生成方法和设备 |
CN111131369B (zh) * | 2018-11-01 | 2022-09-27 | 百度在线网络技术(北京)有限公司 | App使用情况的传输方法、装置、电子设备及存储介质 |
CN111367562B (zh) * | 2018-12-25 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 数据采集方法、装置、存储介质及处理器 |
CN110099101A (zh) * | 2019-04-01 | 2019-08-06 | 厦门美柚信息科技有限公司 | 一种埋点动态设置的方法、***、设备及其存储介质 |
CN110457089B (zh) * | 2019-07-05 | 2023-09-26 | 中国平安人寿保险股份有限公司 | 数据采集方法、装置、计算机可读存储介质和计算机设备 |
CN110399067A (zh) * | 2019-07-31 | 2019-11-01 | 江苏满运软件科技有限公司 | 可视化埋点方法、装置、电子设备、存储介质 |
CN110704270A (zh) * | 2019-08-20 | 2020-01-17 | 北京奇艺世纪科技有限公司 | 零埋点数据采集方法、装置、电子设备及存储介质 |
CN110704863B (zh) * | 2019-08-23 | 2021-11-26 | 深圳市铭数信息有限公司 | 配置信息处理方法、装置、计算机设备和存储介质 |
CN110674022B (zh) * | 2019-09-27 | 2021-04-27 | 北京三快在线科技有限公司 | 行为数据获取方法、装置及存储介质 |
CN110908879B (zh) * | 2019-10-16 | 2023-10-20 | 陕西合友网络科技有限公司 | 埋点数据的上报方法、装置、终端和存储介质 |
CN110888573A (zh) * | 2019-11-08 | 2020-03-17 | 爱钱进(北京)信息科技有限公司 | 对控件进行标识的方法、装置以及存储介质 |
CN111143526B (zh) * | 2019-12-18 | 2024-03-22 | 口碑(上海)信息技术有限公司 | 一种咨询服务控件配置信息的生成、控制方法及装置 |
CN111290931B (zh) * | 2020-02-18 | 2022-05-13 | 支付宝(杭州)信息技术有限公司 | 用于可视化展示埋点数据的方法及装置 |
CN112214155B (zh) * | 2020-06-09 | 2022-04-26 | 北京沃东天骏信息技术有限公司 | 一种视图信息播放方法、装置、设备和存储介质 |
CN112711400B (zh) * | 2020-12-31 | 2023-07-25 | 北京字跳网络技术有限公司 | 视图的处理方法、设备及存储介质 |
CN113254009B (zh) * | 2021-06-25 | 2021-10-22 | 北京达佳互联信息技术有限公司 | 同类元素确定方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120135755A1 (en) * | 2010-11-25 | 2012-05-31 | Electronics And Telecommunications Research Institute | Apparatus and method for providing contents services |
CN104572043A (zh) * | 2013-10-16 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
CN106066826A (zh) * | 2016-05-24 | 2016-11-02 | 北京金山安全软件有限公司 | 埋点的自动测试方法、装置以及终端 |
CN106776247A (zh) * | 2016-11-23 | 2017-05-31 | 腾云天宇科技(北京)有限公司 | 一种监控应用中控件的方法、服务器及*** |
CN106933472A (zh) * | 2017-05-20 | 2017-07-07 | 南京西桥科技有限公司 | 一种基于手机app的用户行为数据采集***及其控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446752B (zh) * | 2014-06-30 | 2019-05-28 | 北京金山安全软件有限公司 | 应用程序中控件的触发方法、装置及移动终端 |
-
2017
- 2017-11-01 CN CN201711058954.8A patent/CN107818162B/zh active Active
- 2017-11-23 WO PCT/CN2017/112673 patent/WO2019085084A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120135755A1 (en) * | 2010-11-25 | 2012-05-31 | Electronics And Telecommunications Research Institute | Apparatus and method for providing contents services |
CN104572043A (zh) * | 2013-10-16 | 2015-04-29 | 阿里巴巴集团控股有限公司 | 一种对客户端应用的控件进行实时埋点的方法及装置 |
CN106066826A (zh) * | 2016-05-24 | 2016-11-02 | 北京金山安全软件有限公司 | 埋点的自动测试方法、装置以及终端 |
CN106776247A (zh) * | 2016-11-23 | 2017-05-31 | 腾云天宇科技(北京)有限公司 | 一种监控应用中控件的方法、服务器及*** |
CN106933472A (zh) * | 2017-05-20 | 2017-07-07 | 南京西桥科技有限公司 | 一种基于手机app的用户行为数据采集***及其控制方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187880A (zh) * | 2019-05-30 | 2019-08-30 | 北京腾云天下科技有限公司 | 一种同类元素识别方法、装置和计算设备 |
CN110187880B (zh) * | 2019-05-30 | 2022-12-16 | 北京腾云天下科技有限公司 | 一种同类元素识别方法、装置和计算设备 |
CN112258218A (zh) * | 2020-09-29 | 2021-01-22 | 京东数字科技控股股份有限公司 | 一种推荐产品的方法和装置 |
CN115484189A (zh) * | 2022-08-31 | 2022-12-16 | 未来电视有限公司 | 数据合规测试方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107818162A (zh) | 2018-03-20 |
CN107818162B (zh) | 2019-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019085084A1 (zh) | 埋点处理方法、装置、计算机设备和存储介质 | |
US11163851B2 (en) | Method, apparatus, computer device and storage medium of page displaying | |
CN107861655B (zh) | 控件匹配方法、装置、计算机设备和存储介质 | |
US11169991B2 (en) | System and method for extracting and sharing application-related user data | |
US10496267B2 (en) | Operation method and terminal device | |
US10621276B2 (en) | User interface virtualization for web applications | |
US9274742B2 (en) | Visual-symbolic control of remote devices having display-based user interfaces | |
US20170185617A1 (en) | Data Object Based Application State Sharing Methods for User Devices | |
EP3543847B1 (en) | Service processing method and device | |
CN110750197B (zh) | 文件共享方法、装置、***、相应设备及存储介质 | |
US11200293B2 (en) | Method and system for controlling presentation of web resources in a browser window | |
US20150106723A1 (en) | Tools for locating, curating, editing, and using content of an online library | |
TW201508639A (zh) | 透過捕捉服務捕捉網站內容 | |
US11416319B1 (en) | User interface for searching and generating graphical objects linked to third-party content | |
CN114064024A (zh) | 微应用的开发方法、装置、设备、存储介质及程序产品 | |
CN112667795B (zh) | 对话树构建方法和装置、对话树运行方法、装置以及*** | |
US20230421489A1 (en) | Discovery and routing service for a cloud infrastructure | |
CN104978171A (zh) | 可识别标识的输出方法及装置 | |
CN113407241A (zh) | 交互配置方法、装置、***及电子设备 | |
US10853470B2 (en) | Configuration of applications to desired application states | |
CN105450501A (zh) | 设置定制化回复功能的方法及装置 | |
TW201629808A (zh) | 辨識、標記及重建用於內容共享之元素 | |
CN104166562B (zh) | 用于视窗操作***中应用程序磁贴的生成方法及装置 | |
KR102114260B1 (ko) | 스크립트 생성 장치, 방법 및 컴퓨터로 판독 가능한 기록매체 | |
CN118312179A (zh) | 页面生成方法、装置和计算机相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 07.10.2020) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17931041 Country of ref document: EP Kind code of ref document: A1 |