Patent Publication Number: US-2023147537-A1

Title: Method and system for generating a data collection process in a user device

Description:
FIELD OF THE INVENTION 
     The present invention relates to a method and system for generating a data collection process in a user device. In particular, the invention relates to the generation of a data collection process which is adapted to suit an individual and specific user and user device in order to simplify data collection from such individual and specific user and user device. 
     BACKGROUND OF THE INVENTION 
     Many organizations with an online presence want to ask their users for some personal information or other data. Many times, this data collection is a required step to start using the product or service provided. It is therefore desirable to simplify this step for the user in order to increase the number of users performing such steps, and thereby increasing the use of the product, service or similar that is being offered. 
     Online methods of data collection and customer registration/sign ups on web sites and the like have more or less had the same look and feel during numerous years. Through existing methods, individuals and users are requested to use standardized and static online forms to manually fill in data or manually verify certain pre-populated data, mainly through the use of keyboards. Existing methods of data collection are often standardized, not taking individual user parameters and/or user device information into account. 
     An important metric for web site operators and other parties using an online registration or data collection process is user conversion, or user conversion rate, which defines the number or percentage of users initiating a data collection process that proceeds to complete the process. In order to improve user conversion, tools such as an autofill functionality and other means for automatically gathering user information can be employed. However, many existing data collection procedures may still be seen as tedious and/or complicated, making the data collection process an obstacle for the user. 
     Accordingly, it is desirable to further simplify the registration/data collection process on e.g. web sites in order to increase user conversion. 
     SUMMARY 
     In view of the above-mentioned and other drawbacks of already existing art, an object of the present invention is to provide an improved method and system for simplifying the data collection process for a user when such user is required to provide information, e.g. when signing up for services or when sharing data on a website. This is achieved by an automated and interactive method and system for generating an optimized (i) method and manner to collect the required data from an individual user, and (ii) data collection sequence in such user device. 
     According to a first aspect of the invention, a computer implemented method for generating a data collection process is provided, including both the sequence and manner in which the data is collected in a user device. The method comprises: by a user device, connecting to a portal server hosting a portal website comprising at least one link to a service provider; by the user device, selecting a service provider on the portal website; receiving, at a third-party server having at least one processor, an instruction to begin a data collection process for a user operating a user device; providing static data from the user device to the third-party server; determining, at the third-party server, a set of data to be collected from the user, the set of data comprising at least one data item; generating, at the third-party server, code for a first data collection module based on the set of data to be collected from the user, the first data collection module being configured to collect at least one data item from the set of data to be collected from the user; providing, from the third-party server, the code for generating the first data collection module to the user device; by the user device, generating the first data collection module; receiving, at the third-party server, confirmation that a user of the user device has provided the information required by the first data collection module to the service provider server; and determining, in the third-party server, based on the received confirmation, if the user has provided the set of data to be collected from the user to the service provider server. 
     In the present context, a service provider may be considered to include any online service provider providing a service which requires actively collecting data from a user. The service provider may for example be a payment service provider, an insurance provider, a gambling service provider, a bank, an authority or any other online service provider. Moreover, the data collection process may be part of a sign-up or registration process such as the creation of a user account, or it may be used for gathering user information for other purposes. 
     Moreover, the described portal server is a server hosting a portal website comprising at least one link to a service provider. The portal server thereby acts as an intermediary between the user and a service provider, where a website hosted by the portal server for example presents a plurality of links to one type of service provider as described above in order to simplify a selection process for a user. 
     A further advantage of the claimed invention is that the visiting time of the portal website is increased compared to if the portal website would simply redirect the user to a server provider website. User (i.e. client) visiting time can be important since it may be a factor in determining page ranking in searches, thereby making the described method an attractive solution for a portal server provider. Moreover, if the user changes his or her mind during the data collection process, the user will still remain at the portal website making it easier to select another service provider, compared to if the user is actually redirected to another website, thereby improving the usability of the portal website. 
     The described “remote” solution also enables the portal server to know if a registration has completed and that the user actually completed the data collection process, e.g. signed up to get the service. This enables the portal server provider to e.g. implement a pricing model or to tailor advertisements based on a user conversion rate. 
     The user device can be any electronic device which can be used to access the portal server, for example via a web site hosted by the portal server. The user device may for example be a stationary computer, a laptop, a tablet computer, a smartphone, a smartwatch or other types of user terminals capable of connecting to the portal server and generating content based on code provided by the portal server. Preferably, the user device is capable of generating a web page based on code provided by the service provider server, such as html code or similar. Moreover, the user device can be any device which is configured to be used by a user in order to provide information in some form. Accordingly, an interaction with the user device, by the user, is required for providing the required information to the service provider server. In other words, the generated data collection process includes prompting a user to interact with the user device, meaning that the user device is equipped with some form of user interface comprising both output and input means. The user device may for example be provided with output means such as a display, a speaker or haptic technology, and with input means such as a touch sensitive display, a keyboard, a joystick, a microphone, a camera, motion sensors and the like. The user device may thus be equipped with a graphical user interface, an audio user interface, and/or a haptic user interface. 
     The third-party server, which may comprise one or more processors and data storage units, is responsible for generating the code resulting in a data collection process where at least one data item is provided by the user via the user device and transmitted on to the service provider server. The data collection process includes generating code for individually adapted data collection modules to be presented on or otherwise executed by the user device. Accordingly, the functionality of the third-party server, which may be collectively referred to as a data collection framework, generates code corresponding to a data collection module most suitable for the individual user and user device, wherein the code in turn is transmitted to the user device. When the code is executed on the user device, a data collection module specifically targeting the individual user is generated on the user device and presented to the user by means of any of the aforementioned interfaces. 
     The present method is further based on the realization that the user experience of a data collection process can be significantly improved by adapting the process based on information available on the user device (static data) which is used to perform the data collection, based on the user interactions and input behavioral patterns (dynamic data), and based on data already collected from the user so that the data collection process can be optimized based on the specific circumstances of a given user and user device. The described data collection process including the generation of code for data collection modules to be presented to the user is thereby based on input parameters such as time of day, what type of data to collect, statistical analysis of behavioral patterns of users and historical success rates of certain registration modules. By improving the user experience, the user conversion rate is also increased, i.e. the likelihood that the user completes the data collection process. 
     The described third-party server can furthermore in principle be seamlessly inserted in the communication between the user device and the portal server and can be branded so that the use of the third-party server for optimizing the data collection process may be invisible to the user. However, no personal data needs to be stored on the third-party server, even though the third-party server is responsible for managing the data collection process. Thereby, privacy concerns and other legal requirements relating to handling of personal and identifying data does not primarily have to be addressed by the operator of the third-party server. It should be noted that it would in principle be possible to store user data on the third-party server, either temporarily or permanently, should that be desirable. 
     A further advantage of the claimed invention is that there is no need for the service provider to substantially modify the internal workings of its systems for improving an existing data collection process. Instead, the service provider can adopt the data collection framework provided by the third-party server e.g. by inserting a script or code snippet on a portal server web page which calls the third-party server and initiates the data collection process when a user has selected a service provider on the portal server and reaches the information gathering step of the described method for data collection. 
     Moreover, for a data collection process requiring a number of data items to be collected, the data collection process may result in a sequence and design of data collection modules, where the resulting sequence and design are determined by the data collection framework on the third-party server. Here, it should be noted that the sequence of data items to be collected as such is not predetermined. Instead, for each data item to be collected the most suitable data collection module is selected and generated, meaning that for a given set of data to be collected, the specific sequence or way of collecting the data items may be different for different users and user devices. 
     The third-party server, the portal server and the service provider server may be implemented in a cloud computing environment. The functionality of the servers may thereby be distributed across several different locations and physical systems. 
     According to one embodiment of the invention, the method further comprises, on the user device, opening a background-frame of the service provider server. Moreover, user input provided to the data collection module of the user device is communicated to the service provider server via the background-frame. A presentation frame is generated on the user device and presented to the user. The presentation frame could for example be an inline frame in a html implementation. Via the presentation frame the user can provide information to be subsequently provided to the service provider server, where the communication between the user device and the service provider is handled by the background frame. The described communication between frames of the user device can be implemented as “iframe to iframe” communication, where iframe is an inline frame element used in HTML. The background frame can be hidden, obscured in the background, minimized or remain as a visible object in an html implementation. 
     According to one embodiment of the invention, the portal server comprises initialization code configured to control the user device to retrieve/receive code form the third party server. The initialization code thereby establishes the connection between the user device and the third-party server so that code for the third-party server for data collection can be provided to the user device, thereby enabling the data collection process. The initialization code may for example be a script triggering the user device to fetch further code from the third-party server. 
     The initialization code can be configured to be executed when a service provider is selected by the user device, or when a predetermined portal webpage is loaded in the user device, depending on the preferences of the portal server operator. In other words, the initialization code can be executed “on page load” or “on click” or as part of any other event, such as any html-event. The code for generating the first data collection module is thereby provided to the user device directly from the third-party server, and there is thus no need for either of the portal server or the service provider server to store or manage the third-party code required for data collection. 
     According to one embodiment of the invention, the method further comprises: if it is determined that the user has provided the set of data to be collected from the user to the service provider server, redirecting the user device to a website of the selected service provider. Accordingly, if the data collection process is completed, the user may automatically leave the portal server to be redirected to the selected service provider website. If the data collection process is a registration process including a login procedure, the user may reach the service provider website in a logged in mode so that the user immediately can access information on the service provider website. 
     According to a second aspect of the invention, there is provided a computer implemented method for initiating a data collection process for a user device. The method comprises: by a user device, connecting to a portal server hosting a portal website comprising at least one link to a service provider; by the user device, selecting a service provider on the portal website; receiving, at a third-party server having at least one processor, an instruction to begin a data collection process for a user operating a user device and providing code for generating a data collection module to the user device; by the user device, opening a hidden background-frame of a selected service provider; by the user device, opening a data collection frame visible to the user; by the user device, generating a first data collection module; presenting the first data collection module in the data collection frame; and for information provided by the user to the first data collection module, communicating the provided information from the data collection-frame to the background frame. 
     The use of a hidden background-frame enables a seamless user experience where a connection to the service provider server is formed in the background, and where the user only experiences the data collection frame. The hidden service provider background frame also loads code from the third-party server enabling the communication between the background frame and the data collection frame and thereby enables subsequent processing/saving of data from the data collection frame to the hidden background frame service provider. Moreover, the hidden background frame of the service provider allows the browser of the user device to save data to the service provider in a way so that correct session data, cookies and parameters are set. Thereby, when the user interface visible part is redirected to the service provider it will be within the same session as the hidden frame was. 
     According to a third aspect of the invention, there is provided a system for generating a data collection process in a user device. The system comprises: a third-party server having at least one processor; a user device having at least one processor; a portal server having at least one processor, the portal server hosting a portal website comprising at least one link to a service provider; and a service provider server having at least one processor. 
     The system is configured to: by the user operated user device, selecting a service provider on the portal website; by the service provider server of the selected service provider, send an instruction to begin a data collection process for the user device to the third-party server; provide static data from the user device to the third-party server; by the third-party server, initiate a data collection sequence generator upon receipt of the instruction to begin a data collection process from the third party-server; by the third-party server, determine a set of data set to be collected from the user; by the third-party server, generate code for a first data collection module based on the static data and on the set of data to be collected from the user, the first data collection module being configured to collect at least one data item from the set of data to be collected from the user; by the third-party server, provide the code for generating the first data collection module to the user device; by the user device, generating the first data collection module and prompting the user to provide information by interacting with the data collection module; by the user device, provide the information acquired by the first data collection module to the service provider server; by the third-party server, receive confirmation that a user of the user device has provided the information required by the first data collection module to the service provider server; and, by the third-party server, determine, based on the received confirmation, if the user has provided the set of data to be collected from the user to the service provider server. 
     Additional effects and features of the second and third aspects of the invention are largely analogous to those described above in connection with the first aspect of the invention. 
     Further features of, and advantages with, the present invention will become apparent when studying the appended claims and the following description. The skilled person realizes that different features of the present invention may be combined to create embodiments other than those described in the following, without departing from the scope of the present invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       These and other aspects of the present invention will now be described in more detail, with reference to the appended drawings showing an example embodiment of the invention, wherein: 
         FIG.  1    schematically illustrates a system for generating a data collection process in a user device according to an embodiment of the invention; 
         FIG.  2    is a flow chart outlining general steps of a computer implemented method for generating a data collection process in a user device according to an embodiment of the invention; 
         FIG.  3    is a flow chart outlining further steps of the computer implemented method for generating a data collection process in a user device according to an embodiment of the invention 
         FIG.  4    schematically illustrate steps of a method and parts of a system according to an embodiment of the invention; and 
         FIG.  5    is a flow chart outlining further steps of a computer implemented method for generating a data collection process in a user device according to an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS 
     The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which currently preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided for thoroughness and completeness, and convey examples of the scope of the invention to the skilled person. Like reference characters refer to like elements throughout. 
     In the present detailed description, various embodiments of the system and method according to the present invention are mainly described with reference to a data collection process where a user visits a service provider web site by means of a user device such as a smartphone, and where the service provider requires a number of data items to be provided for completing the collection of data from the user. However, the skilled person readily realizes that the described data collection process is applicable for a range of different applications. 
       FIG.  1    is a schematic illustration of a system  100  for generating a data collection process comprising a third-party server  102  having at least one processor, a user device  104  having at least one processor; a portal server  105  having at least one processor, and a service provider server  106  having at least one processor. 
     The functionality of the described components is governed by software algorithms executed on the respective processors. Preferably, the software algorithm is implemented as coded instructions stored in a memory and executed by the processor. The processor is a hardware device for executing such coded instructions. The processor can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the memory, a semiconductor-based microprocessor (in the form of a microchip or chip set), or generally any device for executing coded instructions. The processor is configured to execute software stored within the memory to communicate data to and from the memory, and to generally control operations pursuant to the coded instructions. In an exemplary embodiment, the processor may include a mobile optimized processor, such as one optimized for power consumption and mobile applications. I/O interfaces can be used to receive user input and/or for providing system output. User input can be provided via, for example, a keypad, a touch screen, a scroll ball, a scroll bar, buttons, and/or the like. System output can be provided via a display device, such as a liquid crystal display (LCD), touch screen, and/or the like. The I/O interfaces can also include, for example, a serial port, a parallel port, a small computer system interface (SCSI), an infrared (IR) interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, and/or the like. The I/O interfaces can include a GUI that enables a user to interact with the memory. Additionally, the I/O interfaces may further include an imaging device, i.e. camera, video camera, sensors, etc., as described herein. 
     Moreover, the described portal server  105 , third-party server  102  and service provider server  106  may be implemented in a cloud computing environment where both data processing and memory is distributed over a number of physical devices which may be located at different geographical locations. 
     The memory may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, etc.), and combinations thereof. Moreover, the memory may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory may have a distributed architecture, where various components are situated remotely from one another, but can be accessed by the processor. The software in the memory can include one or more software programs, each of which includes an ordered listing of executable instructions for implementing logical functions. The software in the memory includes a suitable operating system (O/S) and programs. The operating system essentially controls the execution of other computer programs, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. The programs may include various applications, add-ons, etc. configured to provide end user functionality. The programs can include an application or “app” which provides various functionalities. 
       FIG.  2    is a flow chart outlining the general steps of the computer implemented method for generating a data collection process for a user device. Accordingly, the flow chart can be seen as an illustration of the algorithm being executed by the processor of the third-party server, i.e., the processor of the third-party server  102  is programmed and configured to perform the described steps of the computer implemented method. The method will be described with reference to  FIG.  1    outlining the communication between the third-party server  102 , the user device  104 , the portal server  105  and the service provider server  106  for selected steps of the method. 
     The method comprises, by the user device  104 , connecting  200  to a portal server  105  hosting a portal website comprising at least one link  107  to a service provider. At the portal website, the user may be presented with a plurality of options corresponding to different service providers for a given service, where each service provider in turn is hosted by a corresponding service provider server  106 . The portal website may for example display links  107  to a number of different insurance companies to help a user who seeks to sign up for an insurance. In another non-limiting example, the service provider server  106  may for example be a server operated and controlled by a bank and the user may be an individual desiring to become a customer at the bank. 
     Next, the method comprises, by the user operated user device  104  selecting  202  a service provider on the portal website. Once the user has selected, e.g. clicked on, a link  107  to a service provider on the portal website, the service provider server  106  of the selected service provider sends  202  an instruction to begin a data collection process for the user device  104  to the third-party server  102 . Furthermore, static data is provided  206  from the user device  104  to the third-party server  102 . 
     In the present context, static data is non-personal data that defines the state of the user device  104  at the start of the data collection process, and which for example may be retrieved from a memory unit of the user device  104 . 
     The static data is in general data that does not change during the data collection process, or at least not during a data collection session. A data collection session can be seen as an uninterrupted data collection process which is not aborted by either the user, the user device  104  or by the service provider server  106 . The static data received from the user device  104  may comprise one or more of the following data items: Timestamp, Day of month, Month, Day of week, Hour of day, deviceType, Seen before, userlD, Device, Device version, Distance from latest device version, Browser, Browser Version, Distance from latest browser version OS, OS Version, Distance from latest OS version, partnerld, screen resolution (multiplied), country, Language, Landscape orientation and Network latency. Accordingly, certain data is static in the sense that it does not change at all during the data collection session, while some static data may change, such as timestamp, date and the like. According to an embodiment, static data is only collected at one point in time, which is at the start of the data collection process. However, it would in principle be possible to update the static data at selected times during the data collection process. The static data may for example be retrieved from a local data storage of the user device  104  where information corresponding to the above described static data is stored. 
     In practice, code for gathering static data on the user device  104  may be embedded in the portal website or at the service provider server  106  so that when user device  104  selects a service provider, the code for gathering static data is executed on the user device  104 , and static data is automatically gathered on the user device  104  and transmitted to the third-party server  102 . The method may for example comprise receiving, at the user device  104 , code from the service provider server  106 ; and executing the code on the user device  104 , wherein the code is configured to make the user device  104  request code from the third-party server  102 . Accordingly, the user device  104  may receive code from the portal server  105  or from the service provider server  106  making the user device  104  call the third-party server  102  requesting code for e.g. providing static data. 
     The described method may thus comprise, at the third-party server  102 , generating code for gathering static data that when executed on the user device  104  gathers static data from the user device  104  and sends the gathered static data to the third-party server  102 . Thereby, the user device  104  is provided with code enabling communication between the user device  104  and the third-party server  102 . 
     According to one embodiment of the invention, the portal server  105  may comprise initialization code configured to control the user device  104  to retrieve code form third party server  102 . The user device  104  will then retrieve the code required for starting the data collection process, which for example may be conde for providing static data to the third-party server  102 . 
     The initialization code can for example be configured to be provided to and executed by the user device  104  when a service provider is selected by the user device  104  or to be provided to and executed by the user device  104  when a predetermined portal webpage is loaded in the user device  104 . Thereby, the initialization code may be ready to be executed on the user device  104  immediately when a service provider is selected. 
     In the following step, a set of data to be collected from the user is determined  207  at the third-party server  102 , the set of data comprising at least one data item. The set of data to be collected is defined by the one or more data items to be collected from the user. 
     The information describing a set of data to be collected from the user may be predefined, and such information defining a set of data may be stored on a data storage unit of the third-party server  102  for a given known service provider server  106 . It would also be possible to retrieve, by the third-party server  102 , information related to the set of data to be collected from the service provider server  106 . In other words, at the start of the data collection process, information defining the data items to be collected may be transmitted from the service provider server  106  to the third-party server  102 . Each data item defines a certain type of information about the user such as the name of the user, user address, user identifying number, phone number, email address and the like. Accordingly, a data item describes the type of information to be requested from the user. 
     The next step of the method comprises generating  210 , at the third-party server  102 , code for a first data collection module based on the set of data to be collected from the user, the first data collection module being configured to collect information defined by at least one data item from the set of data to be collected from the user. 
     The software on the third-party server  102  responsible for generating the code for the one or more data collection module(s) can be seen as a data collection framework which is initiated upon receipt of the instruction to begin the data collection process. The software framework and functionality of the third-party server  102  may also be referred to as a data collection sequence generator. That the third-party server  102  generates the data collection process should be understood as the third-party server  102  being responsible for generating the code required for performing the data collection process on the user device  104 , and that the data collection process is controlled by the third-party server  102 . 
     The code for the first data collection module is further based on static data so that the resulting data collection module is optimized based on the static data. Moreover, the first data collection module may be selected from a library comprising module templates where, the template (i.e. the method of data collection as well as the design of the module to be presented to the user) for collecting a certain data item can be adapted and optimized based on the static data. The library of data collection module templates may be stored locally on the third-party server  102 , or it may be stored at a remote location accessible by the third-party server  102 . 
     Furthermore, the set of data items to be gathered can be seen as a list of data items, and the first data collection module can be selected to collect one or more of the data items from the list of data items. Moreover, the data items do not have to be collected in any specific or predetermined order. 
     Once the described code has been generated at the third-party server  102 , the method comprises providing  212 , from the third-party server  102 , the code for generating the first data collection module to the user device  104 . 
     In the next step, When the code for generating the first data collection module is executed on the user device  104  causing the user device  104  to generate  214  the first data collection module, the user is presented with a data collection module aiming to collect at least one data item from the user. The data collection module is thus automatically generated by the user device  104  without any input from the user. The data collection module may include one or more input fields prompting the user to provide information into the input field followed by a confirmation that the input is completed. However, the data collection module may be manifested in many different ways as will be described in further detail in the following. 
     Moreover, the data collection module may read information from a local data storage of the user device  104  and present the information to the user for verification, for example where an autofill-functionality of a web-browser of the user device  104  is utilized for populating one or more fields of a data collection module. In the described example, the user will be prompted to confirm the information provided to a data collection module prior to providing the data to the service provider server  106 . Accordingly, the information is not provided to the service provider server  106  without approval from the user. Moreover, the approval is preferably explicit meaning that an action needs to be taken by the user to give the approval. Thereby, prompting the user to approve information is connected to a request for action from the user. It may be required that the user is prompted to approve any information to be provided to the service provider server  106 . 
     The data collection modules may be generated in many different forms and a data collection module for collecting a specific data item, such as an email address, may be presented in many different ways in terms of graphical appearance and in terms of the input means required for interacting with the data collection module. In principle, the data collection module does not have to include a visual or graphical component, the data collection module may instead be audio-based. Accordingly, the data collection module is fully customizable to suit a specific user and user device  104  in a specific situation. 
     Moreover, the method may comprise, at the third-party server  102 , adapting a visual appearance of a data collection module based on a visual appearance of the service provider website. A graphical profile of the service provider website may be pre-stored on the third-party server  102  so that data collection modules are generated and branded to have a similar graphical profile, thereby providing a seamless experience for the user where the data collection modules are recognizable as belonging to the visited website. It is also possible that the third-party server  102  comprises functionality for scanning a website of the service provider server  106  to determine a visual appearance of the website, and to subsequently generate code for generating a data collection module based on the determined visual appearance. The data collection modules can thereby be styled to match the graphical profile of a service provider without any prior knowledge of the service provider. The visual appearance of a data collection module may also be further modified by a machine learning or artificial intelligence algorithm. 
     It should be noted that the main goal when selecting which data collection module to be used is to make the user complete the data collection process. Accordingly, a data collection module is not selected based only on a likelihood that the user will provide information corresponding to the currently requested data item. Instead, the selection of the data collection module for a given data item is selected based on a likelihood that the user will complete the data collection process. Thereby, the likelihood that the user completes the data collection process can be maximized through the selection of data collection modules for the different data items. 
     When the user has provided the requested information to the data collection module, the information is transmitted from the user device  104  to the service provider server  106 . The initialization of the data collection process may also include loading a receiver script at the service provider server  106  such that the information gathered by the data collection module in the user device  104  can be properly communicated to the service provider server  106 . 
     Thereby, the method further comprises, receiving  216 , at the third-party server  102 , confirmation that a user of the user device  104  has provided the information required by the first data collection module to the service provider server  106 . Since the third-party server  102  only receives a confirmation that the information is sent from the user device  104  to the server-provider server  106 , the specific information entered into or otherwise provided to the data collection module by the user does not have to be transmitted to the third-party server  102 . The third-party server  102  may also receive a confirmation from the service provider server  106  verifying that the information has been properly received by the service provider server  106  and that the information is valid. 
     It may be preferred that the data item is removed from the set of data items to be collected from the user only when the third-party server  102  has received confirmation that the information corresponding to a specific data item has been properly received by the service provider server  106 . 
     There may be situations where the information provided to the server-provider server  106  is not valid, meaning that the data item or items cannot be removed from the list of data items to be requested from the user. One such example is if the user is prompted to provide a username, and if the provided username is not available, thereby requiring the user to enter another username. In such a situation, it is not required that the data collection module requesting a data item such as the username for the second time is the same as the data collection module used for requesting data item the first time. 
     When the user has provided the requested information to the data collection module, the information is transmitted  216  from the user device  104  to the service provider server  106 . Moreover, the method further comprises, receiving  218 , at the third-party server  102 , confirmation that a user of the user device  104  has provided the information required by the first data collection module to the service provider server  106 . Since the third-party server  102  only receives a confirmation that the information is sent from the user device  104  to the server-provider server  106 , the specific information entered into or otherwise provided to the data collection module by the user does not have to be transmitted to the third-party server  102 . The third-party server  102  may also receive a confirmation from the service provider server  106  verifying that the information has been properly received by the service provider server  106  and that the information is valid. 
     It may be preferred that the data item is removed from the set of data items to be collected from the user only when the third-party server  102  has received confirmation that the information corresponding to a specific data item has been properly received by the service provider server  106 . 
     Furthermore, the final step of the described method comprises determining  220 , in the third-party server  102 , based on the received confirmation, if the user has provided the set of data to be collected from the user to the service provider server  106 . If the set of data is defined as a list of data items, a confirmation that the set of data to be collected has been provided to the service provider server  106  may comprise receiving a confirmation that the last, or only remaining, data item on the list of data items has been properly received by the service provider server  106 . If it can be confirmed that all of the data items have been provided, the data collection process is completed, and the third-party server  102  can end the data collection process. Ending the data collection process on the third-party server  102  may for example comprise providing information to the user device  104  and/or to the service provider server  106  that all of the data items in the set of data to be collected from the user has been confirmed as received by the service provider server  106 . 
     It is also possible to use the described functionality of generating code for data collection modules on the third-party server  102  in order to provide modules to the user device  104  which are of an informative nature, i.e. which are not aimed at collecting information from the user but that instead may be used to guide the user through the data collection process. 
     As illustrated by the flow chart of  FIG.  3   , the method may further comprise: if  300  it is determined that the user has not provided the set of data to be collected from the user to the service provider server  106 , updating  302  the set of data to be collected from the user; generating, by the third-party server  102 , code for a next data collection module based on the updated set of data to be collected from the user, the next data collection module being configured to collect at least one data item from the updated set of data to be collected from the user; and providing  304  the code for generating the next data collection module to the user device  104 . Accordingly, if the data collection process is not completed, a next data collection module is required. 
     A call from the user device  104  to the service provider server  106  providing the information of a data collection module may at the same time include a request for a next data collection module from the third-party server  102 . 
     The code for the next data collection module, and any following required data collection modules, may be generated not only based on the static data but also based on dynamic data acquired by the third-party server  102  during the data collection process, e.g. during user interaction with previous data collection modules on the user device  104 . The computer implemented method may thus comprise, at the third-party server  102 , generating code for gathering dynamic data that when executed on the user device  104  gathers dynamic data and sends the gathered dynamic data to the third-party server  102 . 
     The dynamic data is data that could be expected to change during the data collection process. Examples of dynamic data include which data items remain to be collected, the type of input used by the user for the latest or any previous data collection module, the data collection module or modules that have been shown to the user, average keystroke latency, median keystroke latency per input field group for a data collection module comprising input fields, tab key usage frequency, enter key usage frequency, touchscreen interaction patterns, completion time, first input time, click patterns on the page, data connectivity speeds, user device privacy approvals and any other type of information describing the behavior of the user and/or which makes it possible to identify a pattern of the user. The code for a data collection module may also be generated based only on dynamic data gathered during the data collection session and on the set of data to be collected from the user. Accordingly, the method may also comprise providing code from the third-party server  102  to the user device  104  for gathering dynamic data from the user device  104 . Such code may be provided at the start of the data collection process so that dynamic data is continuously gathered, or it may be a part of the functionality of the data collection modules. 
     Thereby, according to an embodiment, the code for a data collection module is generated, by the third-party server  102 , based on a generated data collection module previously provided to the user device  104 . An advantage of the described method is thus that a next data collection module can be adapted based on how a user interacted with a previous data collection module, i.e. based on dynamic data. For example, if the user took a longer time than expected to interact with a previous module, this may be an indication that the user had difficulties in interacting with the data collection module and another type of module may be selected as the next module. Thereby, the data collection process can be continuously adapted based on the detected user interaction. This also means that the third-party server  102  gathers dynamic data throughout the data collection process in order to optimize the data collection process based on the detected user interaction with the data collection modules. 
     Moreover, when a first data collection module is completed, the data item or items corresponding to the data collected by the first data collection module is removed from the set of data to be collected, and an updated set of data is formed. Forming an updated set of data may for example include reorganizing the list of data items so that the data collection sequence is changed. Which data item to select next from the updated set of data can thereby be based on both static and dynamic data, which in turn results in a sequence of data collection modules which is determined dynamically as a result of various parameters of the data collection session. 
     According to one embodiment of the invention, the method may thus further comprise repeating the steps of generating code for a data collection module and providing the code for the data collection module to the user device  104  until it is determined at the third-party server  102  that the user has provided the set of data to be collected from the user to the service provider server  106 . 
     The third-party server  102  may further comprise a machine learning algorithm configured to modify the generation of code for each data collection module based on the user&#39;s interaction with a previously generated data collection module. Thereby, the software framework for generating the data collection modules can operate based on previously acquired knowledge of user behavior, and also change the functionality and design based on observed behavior during the current data collection session. The software framework of the third-party server  102  including the machine learning algorithm can be seen as an artificial intelligence which is using historical data, static data and dynamic data to determine both how each data collection module is to be presented to a user, and also in which order the required information is collected. 
     The technical purpose of the machine learning algorithm is to present a data collection module to the user which leads to the highest likelihood that the data collection process is completed. If a previous data collection process was unsuccessful or aborted by the user for a given type of user and user device  104 , the machine learning algorithm may adapt and change the choice or presentation of data collection modules for a user and user device  104  of the same type. The technical effect of the described machine learning algorithm is that the code defining data collection modules is generated based on previously stored knowledge of user behavior so that the data collection process can be optimized based on the user and the user device  104 . 
     A further embodiment of the invention is illustrated in  FIG.  4    and outlined by the flow chart of  FIG.  5   . The computer implemented method for initiating a data collection process for a user device  104  comprises, by the user device  104 , connecting  500  to the portal server  105  hosting the portal website comprising at least one link  107  to a service provider, by the user device  104 , selecting  502  a service provider on the portal website; and receiving  504 , at a third-party server  102  having at least one processor, an instruction to begin a data collection process for a user operating the user device  104  and providing code for generating a data collection module to the user device  104 . The aforementioned steps are similar to the method described with reference to  FIGS.  1 - 2   . 
     Further, the method comprises, by the user device  104 , opening  506  a hidden background-frame  402  of a selected service provider. That the frame  402  is opened in the background means that it is not visible to the user. The contents and functionality of the frame is defined by the service provider and code for generating the background frame  402  may be retrieved from the service provider server  106 . 
     Next, the user device  104  opens  508  a data collection frame  404  which is visible to the user, generates  510  a first data collection module  406  and presents  512  the first data collection module  406  in the data collection frame  404 . 
     Moreover, information provided by the user to the first data collection module  406  is communicated  514  from the data collection frame  404  to the background frame  402 . The user input provided to the first data collection module  406  of the user device  104  is subsequently communicated to the service provider server  106  by posting messages via the background-frame  402  as illustrated in  FIG.  4   . 
     The method may comprise, if it is determined that the user has provided the set of data to be collected from the user to the service provider server  106 , redirecting the user device  104  to a website of the selected service provider  106 . Redirecting the user may also include providing session data from the background-frame  402  to the service provider server  106  so that the service provider website is generated in the same session as the background-frame  402  and being presented to the user in a seamless manner. This means that the user may be directly logged in to a website of the service provider through the provision of session data. 
     Even though the invention has been described with reference to specific exemplifying embodiments thereof, many different alterations, modifications and the like will become apparent for those skilled in the art. Also, it should be noted that parts of the method and system may be omitted, interchanged or arranged in various ways, the method and system yet being able to perform the functionality of the present invention. 
     By means of the various embodiments of the current invention, an individually adapted and user-friendly data collection process is provided. Throughout the data collection process, the experience is individually adapted to the user and user device  104  so that for example the sequence in which such data is collected, the design of how data is collected and the manner in which such data is to be collected is dependent on information available regarding the user and user device  104 , thereby maximizing the likelihood that each user completes the data collection process. 
     Additionally, variations to the disclosed embodiments can be understood and effected by the skilled person in practicing the claimed invention, from a study of the drawings, the disclosure, and the appended claims. In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.