# US 12,010,582 B2 · Context sensitive presentation of content

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,010,582 B2
- Document ID: US12010582B2
- Status: Granted
- Kind: B2
- Application number: 18/111,763
- Filed: 2023-02-20
- Published: 2023-06-29
- Granted: 2024-06-11
- Earliest claimed: 2017-10-09
- Assignees: Snap Inc.
- Applicants: Snap Inc.
- Inventors: William Alexander Strand; Travis M. Grigsby; Benjamin Ralph Hollis; Bobby Lo; Christie Marie Heikkinen
- Web page: https://patentgrep.com/patent/US12010582B2

## CPC

- G06Q 10/02: Reservations, e.g. for tickets, services or events
- G06F 16/29: Geographical information databases
- G06F 16/313: {Selection or weighting of terms for indexing}
- G06Q 10/40: Business processes related to social networking or social networking services
- G06Q 10/42: Determination of affinities or common interests between users
- G06Q 10/48: using social graphs
- H04W 4/024: Guidance services
- H04W 4/027: {using movement velocity, acceleration information}
- H04W 4/21: for social networking applications
- H04W 4/023: {using mutual or relative location information between multiple location based services [LBS] targets or of distance thresholds}
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

Disclosed are systems, methods, and computer-readable storage media for displaying widgets. In some aspects, criteria for ranking widgets may be dynamically evaluated based on conditions associated with each widget. In some aspects, the conditions may consider a time or location of an event a social network user is scheduled to attend, and a relation to that time and location to a current time and/or current user location. Evaluation of the conditions may contribute to the determination of weights for each of the respective widgets, with the ranking based on the weights. Widgets with the highest rank may be invoked, and selectively displayed on an electronic display. Multiple possible parameter values for the displayed widgets may also be dynamically ranked and selected values applied when invoking the widget.

## Claims

### Claim 1

A method comprising:
determining that a geographic location of a user system corresponds to a location of a venue;
accessing an event database that stores an event identifier of an event and a user identifier;
determining that the user identifier in the event database corresponds to the user system and the user identifier is associated with the event identifier;
in response to determining that the user identifier in the event database corresponds to the user system and the user identifier is associated with the event identifier, determining that a user of the user system is scheduled to attend the event;
determining that a first widget of a plurality of widgets is venue oriented;
assigning a first rank to the first widget that is greater than a second rank assigned to a second widget in response to determining that the first widget is venue oriented and in response to determining that the user of the user system is scheduled to attend the event based on the event database; and
causing display, on the user system, of at least some of the plurality of widgets based on the assigned first and second ranks.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining a weight for each of the plurality of widgets;
detecting that the user system has transgressed a given velocity; and
in response to detecting that the user system has transgressed the given velocity, modifying the determined weight for each of the plurality of widgets.

### Claim 3 (depends on 2)

The method of claim 2, wherein the given velocity represents vehicle motion.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
displaying the plurality of widgets;
identifying, for each of the plurality of widgets, one or more conditions associated with a respective widget; and
determining a weight for each of the plurality of widgets by aggregating weights associated with a subset of the one or more conditions associated with the respective widget which are determined to have been satisfied.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
detecting input that expands a given widget of the plurality of widgets;
determining a type of the given widget in response to detecting the input that expands the given widget; and
displaying one or more additional widgets that correspond to the determined type of the given widget in response to detecting the input that expands the given widget.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
determining that the first widget of the plurality of widgets is configured to assist the user to travel to the event; and
assigning the first rank to the first widget that is greater than the second rank in response to determining that the first widget is configured to assist the user to travel to the event.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
determining a start time and an end time for an event at the venue;
assigning a weight for at least one of the plurality of widgets based on whether a current time is before the start time, between the start time and the end time, or after the end time;
increasing a weight for the first widget of the plurality of widgets in response to determining that a current time is past the end time by a first threshold amount of time; and
causing the second widget of the plurality of widgets to play music related to the event in response to determining that the current time is prior to the start time of the event by a second threshold amount of time.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first widget of the plurality of widgets has a first functionality, and a first condition associated with the first widget returns a true value if a current time is within a threshold time period before an event, and a first weight is associated with the first condition, and a second condition associated with the first widget returns a true value if the current time is not within a threshold time period before the time period, and a second weight is associated with the second condition, wherein the second weight is lower than the first weight.

### Claim 9 (depends on 8)

The method of claim 8, wherein the first functionality includes ridesharing functionality, the first widget being a first ridesharing widget, and the method further comprises displaying a user interface element for the first ridesharing widget on an electronic display, and wherein selection of the user interface element for the first ridesharing widget increases a weight of a second ride sharing widget.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
determining one or more friends of a user;
determining one or more geographic locations of the one or more friends of the user; and
determining weights for the plurality of widgets based on the determined one or more geographic locations of the one or more friends of the user.

### Claim 11

An apparatus, comprising:
hardware processing circuitry; and
a hardware memory storing instructions that when executed configure the hardware processing circuitry to perform operations comprising:
determining that a geographic location of a user system corresponds to a location of a venue;
accessing an event database that stores an event identifier of an event and a user identifier;
determining that the user identifier in the event database corresponds to the user system and the user identifier is associated with the event identifier;
in response to determining that the user identifier in the event database corresponds to the user system and the user identifier is associated with the event identifier, determining that a user of the user system is scheduled to attend the event;
determining that a first widget of a plurality of widgets is venue oriented;
assigning a first rank to the first widget that is greater than a second rank assigned to a second widget in response to determining that the first widget is venue oriented and in response to determining that the user of the user system is scheduled to attend the event based on the event database; and
causing display, on the user system, of at least some of the plurality of widgets based on the assigned first and second ranks.

### Claim 12 (depends on 11)

The apparatus of claim 11, further comprising operations for:
determining a weight for each of the plurality of widgets;
detecting that the user system has transgressed a given velocity; and
in response to detecting that the user system has transgressed the given velocity, modifying the determined weight for each of the plurality of widgets.

### Claim 13 (depends on 11)

The apparatus of claim 11, the operations comprising:
increasing a weight for the first widget in response to determining that a current time is past an end time by a first threshold amount of time.

### Claim 14 (depends on 13)

The apparatus of claim 13, further comprising operations for:
causing the second widget to play music related to the event in response to determining that the current time is prior to a start time of the event by a second threshold amount of time.

### Claim 15 (depends on 11)

The apparatus of claim 11, further comprising operations for:
detecting input that expands a given widget of the plurality of widgets;
determining a type of the given widget in response to detecting the input that expands the given widget; and
displaying one or more additional widgets that correspond to the determined type of the given widget in response to detecting the input that expands the given widget.

### Claim 16 (depends on 11)

The apparatus of claim 11, further comprising operations for:
determining that a user is scheduled to attend an event at the venue;
determining that the first widget of the plurality of widgets is configured to assist the user to travel to the event; and
assigning the first rank to the first widget that is greater than the second rank in response to determining that the first widget is configured to assist the user to travel to the event.

### Claim 17 (depends on 11)

The apparatus of claim 11, wherein the first of the plurality of widgets has a first functionality, and a first condition associated with the first widget returns a true value if a current time is within a threshold time period before the event, and a first weight is associated with the first condition, and a second condition associated with the first widget returns a true value if the current time is not within the threshold time period, and a second weight is associated with the second condition, wherein the second weight is lower than the first weight.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the first functionality includes ridesharing functionality, wherein the first widget is a first ridesharing widget, and wherein the operations further comprise displaying a first ridesharing widget user interface element on an electronic display, and wherein selection of the first ridesharing user interface element increases a weight of a second ride sharing widget.

### Claim 19

A non-transitory machine-readable storage medium including instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:
determining that a geographic location of a user system corresponds to a location of a venue;
accessing an event database that stores an event identifier of an event and a user identifier;
determining that the user identifier in the event database corresponds to the user system and the user identifier is associated with the event identifier;
in response to determining that the user identifier in the event database corresponds to the user system and the user identifier is associated with the event identifier, determining that a user of the user system is scheduled to attend the event;
determining that a first widget of a plurality of widgets is venue oriented;
assigning a first rank to the first widget that is greater than a second rank assigned to a second widget in response to determining that the first widget is venue oriented and in response to determining that the user of the user system is scheduled to attend the event based on the event database; and
causing display, on the user system, of at least some of the plurality of widgets based on the assigned first and second ranks.

### Claim 20 (depends on 19)

The non-transitory machine-readable storage medium of claim 19, further comprising operations for:
determining a weight for each of the plurality of widgets;
detecting that the user system has transgressed a given velocity; and
in response to detecting that the user system has transgressed the given velocity, modifying the determined weight for each of the plurality of widgets.
