IP Library Granted Patent US 11,074,599
Granted Patent B2
US 11,074,599 · App. 15/373,291 · Granted Jul 27, 2021

Determining usage data of mobile applications for a population

Inventor: Paul Stolorz (San Francisco, CA)
Assignee: App Annie Inc.
G06Q30/0204G06N5/04G06N20/00G06Q30/0254G06Q30/0269G06F15/173
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,074,599
App. No.
15/373,291
Granted
Jul 27, 2021
Kind
B2
Abstract

A utility application for a mobile device inspects data packets from other mobile applications running on the device to gather and record usage data about those applications. Since users of the utility application may not reflect the true population for which the usage data is desired, a system de-biases the data reported from the utility applications using a machine learning model to predict demographics of the users of the utility application. To determine a training data set for the model, the system requests a user to provide a desired user attribute by way of an in-app questionnaire. This enables labeling utility usage data with the demographics, which can be weighted and extrapolated to determine usage across the population as a whole.

Claims (52)

1. A method for determining usage data of one or more mobile applications for a desired population, the method comprising:

obtaining, via a utility application inspecting data packets on each of a plurality of mobile devices, network usage data for a plurality of mobile applications, each mobile application installed on one of the plurality of mobile devices;

for each of a plurality of users who have the utility application installed on one of the plurality of mobile devices, predicting, based on output from a machine learning model formed by inputting the network usage data into the machine learning model, whether the user has a user attribute, wherein the machine learning model is trained by:

identifying an advertisement for a downloadable application served to a client device, the advertisement having targeting criteria;

determining whether the downloadable application was installed by the user;

responsive to determining that the downloadable application was installed by the user, generating an association between an identifier of the client device to the assigned targeting criteria;

as network traffic is received from the client device, generating training data comprising network activity of the client device that is labeled using the targeting criteria; and

training the machine learning model using the generated training data;

determining that the network usage data is biased based on a comparison of an aggregate of the predictions of whether each of the plurality of users has the user attribute with an aggregate of the user attribute for a desired population;

de-biasing the obtained biased network usage data by weighting the obtained biased network usage data based on the comparison of the aggregates of the user attribute; and

generating a report of network usage data for the desired population based on the weighted biased network usage data.

2. The method of claim 1 , wherein the biased network usage data for the plurality of mobile applications is extrapolated to determine network usage data for a user of the plurality of users who have the utility application installed on one of the plurality of mobile devices.

3. The method of claim 1 , further comprising assigning the obtained biased network usage data a confidence score by aggregating confidence scores associated with the predictions of whether each of the plurality of users has the user attribute.

4. The method of claim 3 , wherein the weighting of the obtained biased network usage data is discounted by the assigned confidence score of the obtained biased network usage data.

5. The method of claim 1 , wherein the utility application is a data collecting utility application.

6. The method of claim 1 , further comprising generating the machine learning model, the generating comprising:

requesting each of a second plurality of users to input a user demographic attribute into an in-app questionnaire;

receiving, based on the input as received from the second plurality of users, a value for the user demographic attribute for at least a subset of the second plurality of users;

assigning the user demographic attribute to each of the subset of the second plurality of users; and

training the model for predicting whether a user has the user demographic attribute using a training set including the assigned user demographic attributes.

7. A computer program product for tracking usage of applications on a mobile device, the computer program product comprising a computer-readable storage medium comprising computer program code for:

obtaining, by a utility application inspecting data packets, network usage data for a plurality of mobile applications, each mobile application installed on one of a plurality of mobile devices;

for each of a plurality of users who have the utility application installed on one of the plurality of mobile devices, predicting, based on output from a machine learning model, whether the user has a user attribute, wherein the machine learning model is trained by:

identifying an advertisement for a downloadable application served to a client device, the advertisement having targeting criteria;

determining whether the downloadable application was installed by the user;

responsive to determining that the downloadable application was installed by the user, generating an association between an identifier of the client device to the assigned targeting criteria;

as network traffic is received from the client device, generating training data comprising network activity of the client device that is labeled using the targeting criteria; and

training the machine learning model using the generated training data;

determining that the network usage data is biased based on a comparison of an aggregate of the predictions of whether each of the plurality of users has the user attribute with an aggregate of the user attribute for a desired population;

de-biasing the obtained biased network usage data by weighting the obtained biased network usage data based on the comparison of the aggregates of the user attribute; and

generating a report of network usage data for the desired population based on the weighted biased network usage data.

8. The computer program product of claim 7 , wherein the computer-readable storage medium further comprises computer program code for extrapolating the obtained biased network usage data for the plurality of mobile applications to determine network usage data for a user of the plurality of users who have the utility application installed on one of the plurality of mobile devices.

9. The computer program product of claim 7 , wherein the computer-readable storage medium further comprises computer program code for assigning the obtained biased network usage data a confidence score by aggregating confidence scores associated with the predictions of whether each of the plurality of users has the user attribute.

10. The computer program product of claim 9 , wherein the weighting of the network usage data is discounted by the assigned confidence score of the obtained biased network usage data.

11. The computer program product of claim 7 , wherein the utility application is a virtual private network (VPN) application.

12. The computer program product of claim 7 , wherein the utility application is a data collecting utility application.

13. A system for determining network usage data of one or more mobile applications for a desired population, the system comprising:

one or more computer processors; and

a non-transitory computer-readable storage medium comprising computer executable code that when executed by the one or more processors causes the one or more processors to perform operations comprising:

obtain, by a VPN application inspecting data packets, network usage data for a plurality of mobile applications, each mobile application installed on one of a plurality of mobile devices;

for each of a plurality of users who have the VPN application installed on one of the plurality of mobile devices, predict, based on output from a machine learning model formed by inputting the network usage data into the machine learning model, whether the user has a user attribute, wherein the machine learning model is trained by:

identifying an advertisement for a downloadable application served to a client device, the advertisement having targeting criteria;

determining whether the downloadable application was installed by the user;

responsive to determining that the downloadable application was installed by the user, generating an association between an identifier of the client device to the assigned targeting criteria;

as network traffic is received from the client device, generating training data comprising network activity of the client device that is labeled using the targeting criteria; and

training the machine learning model using the generated training data;

determine that the network usage data is biased based on a comparison of an aggregate of the predictions of whether each of the plurality of users has the user attribute with an aggregate of the user attribute for a desired population;

de-bias the obtained biased network usage data by weighting the obtained biased network usage data based on the comparison of the aggregates of the user attribute; and

generate a report of network usage data for the desired population based on the weighted biased network usage data.

14. The system of claim 13 , wherein the operations further comprise extrapolating the biased network usage data for the plurality of mobile applications to determine network usage data for a user of the plurality of users who have the utility application installed on one of the plurality of mobile devices.

15. The system of claim 13 , wherein the operations further comprise assigning the obtained network usage data a confidence score by aggregating confidence scores associated with the predictions of whether each of the plurality of users has the user attribute.

16. The system of claim 15 , wherein the weighting of the network usage data is discounted by the assigned confidence score of the obtained biased network usage data.

Assignments (6)
SECURITY INTEREST Recorded Mar 15, 2024
From: PATHMATICS, INC.; DATA. AI INC.
To: BAIN CAPITAL CREDIT, LP
Reel/Frame 066781/0974 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2024
From: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY
To: DATA.AI INC. (PREVIOUSLY KNOWN AS “APP ANNIE INC.”)
Reel/Frame 066792/0448 →
CHANGE OF NAME Recorded Aug 10, 2023
From: APP ANNIE INC.
To: DATA.AI INC.
Reel/Frame 064563/0363 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 31, 2019
From: APP ANNIE INC.
To: SILICON VALLEY BANK
Reel/Frame 049916/0386 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INVENTOR NAME PREVIOUSLY RECORDED ON REEL 041909 FRAME 0730. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 8, 2019
From: STOLORZ, PAUL ERNEST
To: APP ANNIE INC.
Reel/Frame 049122/0133 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2017
From: STOLORZ, PAUL
To: APP ANNIE INC.
Reel/Frame 041909/0730 →
Continuity (1)
Related Publication 20180165697A1 · Jun 14, 2018
Cited By (2)
US 12,393,871 US 12,694,330