`Pasha et al .
`
`( 10 ) Patent No . : US 10 , 353 , 686 B1
`( 45 ) Date of Patent :
`Jul . 16 , 2019
`
`US010353686B1
`
`( 54 ) APPLICATION INSTALLATION SYSTEM
`( 71 ) Applicant : Facebook , Inc . , Menlo Park , CA ( US )
`( 72 ) Inventors : Zain Pasha , Fremont , CA ( US ) ; John
`Stephen Ketchpaw , Seattle , WA ( US ) ;
`Tong Man , Bellevue , WA ( US ) ;
`Stephanie Shum , Sunnyvale , CA ( US ) ;
`Mina Maher Shawky Abouseif ,
`Sammamish , WA ( US ) ; Robert Huang ,
`Seattle , WA ( US )
`( 73 ) Assignee : Facebook , Inc . , Menlo Park , CA ( US )
`Subject to any disclaimer , the term of this
`( * ) Notice :
`patent is extended or adjusted under 35
`U . S . C . 154 ( b ) by 0 days .
`( 21 ) Appl . No . : 15 / 392 , 945
`( 22 ) Filed :
`Dec . 28 , 2016
`( 51 ) Int . Ci .
`H04L 29 / 08
`( 2006 . 01 )
`( 2018 . 01 )
`G06F 8 / 61
`( 52 ) U . S . CI .
`CPC . . . . . . . . . . . . . . . G06F 8 / 61 ( 2013 . 01 ) ; H04L 67 / 34
`( 2013 . 01 )
`Field of Classification Search
`CPC . . . . . . . . . . . . . . . G06F 8 / 60 ; G06F 8 / 61 ; H04L 67 / 34
`USPC . . . . . . . . . . . . . . . .
`. . . . . . . . . . 717 / 168 - 178
`See application file for complete search history .
`References Cited
`U . S . PATENT DOCUMENTS
`6 , 775 , 830 B1 *
`8 / 2004 Matsunami . . . . . . . . . . . . . G06F 8 / 61
`717 / 174
`7 , 774 , 762 B2 *
`8 / 2010 Rochette
`GO6F 8 / 61
`717 / 138
`8 , 024 , 815 B2 *
`9 / 2011 Lorch . . . . . . . . . . . . . . . . HO4N 21 / 4435
`726 / 29
`
`( 56 )
`
`( 58 )
`
`8 , 074 , 231 B2 * 12 / 2011 Hunt . . . . . . . . . . . . . . . . . . . GO6F 9 / 4411
`719 / 321
`8 , 156 , 488 B2 *
`4 / 2012 Kotamarthi . . . . . . . . . GO6F 21 / 6281
`717 / 174
`8 , 255 , 991 B1 *
`8 / 2012 Hackborn . . . . . . . . . . . . . . . . . G06F 8 / 61
`726 / 21
`( Continued )
`OTHER PUBLICATIONS
`G . Chen , J . H . Cox A . S . Uluagac and J . A . Copeland , “ In - Depth
`Survey of Digital Advertising Technologies , " in IEEE Communi
`cations Surveys & Tutorials , vol . 18 , No . 3 , pp . 2124 - 2148 , third
`quarter 2016 . ( Year : 2016 ) . *
`( Continued )
`Primary Examiner — Andrew M . Lyons
`( 74 ) Attorney , Agent , or Firm — Baker Botts L . L . P .
`ABSTRACT
`( 57 )
`In one embodiment , a method includes presenting , in a user
`interface of a host application , content that includes a
`download link referencing a downloadable application ,
`wherein the user interface of the host application performs
`operations unrelated to downloading applications , receiving ,
`in the host application , selection of the download link , and
`downloading and installing the host application while the
`host application performs the operations unrelated to down
`loading applications . The downloading and installing com
`prises sending , to a server computer system , a request to
`download the downloadable application , receiving an appli
`cation package that corresponds to the downloadable appli
`cation , and installing the downloadable application on the
`computer system from the application package by executing
`program code having permission to install applications . The
`content may include an advertisement for the application ,
`and the advertisement may include the download link . The
`download link may identify the server computer system and
`the application package .
`20 Claims , 6 Drawing Sheets
`
`1010
`
`164
`DATA
`STORE
`
`160
`
`SOCIAL NETWORKING SYSTEM
`
`CONTENT
`164
`APP
`DOWNLOAD
`LINKS
`166
`
`SERVER
`162
`
`APP
`DOWNLOAD
`PAGE
`168
`
`APP
`PACKAGE
`172
`
`1302
`
`CLIENT SYSTEM
`
`HOST
`APPLICATION
`132
`
`CONTENT
`164
`APP
`DOWNLOAD
`LINKS
`166
`APP
`DOWNLOAD
`PAGE
`168
`
`INSTALLED
`APP
`184
`
`APP
`PACKAGE
`172
`REQUESTED
`PERMS .
`174
`
`ACCEPTED
`PERMS .
`176
`
`APP
`MANAGER
`180
`
`INSTALLER
`182
`
`NETWORK
`110
`
`1507
`
`THIRD - PARTY
`SYSTEM
`
`ironSource Exhibit 1003
`
`
`
`US 10 , 353 , 686 B1
`Page 2
`
`( 56 )
`
`References Cited
`U . S . PATENT DOCUMENTS
`8 , 332 , 936 B1 * 12 / 2012 Hackborn . . . . . . . . . . . . . . G06F 8 / 61
`713 / 176
`8 , 341 , 631 B2 *
`12 / 2012 Havemose
`GO6F 8 / 62
`718 / 100
`8 , 484 , 728 B2 *
`7 / 2013 De Atley . . . . . . . . . . . . . . . G06F 21 / 51
`711 / 154
`8 , 528 , 062 B1 *
`9 / 2013 Connor . . . . . . . . . . . . . . . H04L 63 / 14
`713 / 187
`8 , 640 , 187 B2 *
`1 / 2014 Walsh . . . . . . . . . . . . . . . . . G06F 21 / 10
`726 / 1
`8 , 868 , 692 B1 *
`10 / 2014 Khanna . . . . . . . . . . . . . . H04L 41 / 0866
`709 / 219
`9 , 032 , 387 B1 *
`5 / 2015 Hill . . . . . . . . . . . . . . . . . . . . . . . . . . GO6F 8 / 61
`717 / 173
`9 , 183 , 259 B1 * 11 / 2015 Marra . . . . . . . . . . . . . . . GO6F 17 / 30867
`GO6F 9 / 445
`9 , 830 , 169 B2 * 11 / 2017 Chakrabarti
`. . . . . . . . . . . .
`G06F 21 / 53
`2006 / 0069692 A1 *
`3 / 2006 Pernia
`2007 / 0260749 A1 * 11 / 2007 Lahdensivu . . . . . . . . . . . . G06F 9 / 451
`709 / 246
`2009 / 0300596 Al * 12 / 2009 Tyhurst . . . . . . . . . . . . . . . . . G06F 8 / 65
`717 / 173
`2010 / 0077475 A1 *
`3 / 2010 Deschenes . . . . . . . . . . . . . GO6F 8 / 61
`726 / 21
`2010 / 0078018 A1 *
`4 / 2010 Heinonen . . . . . . . . . . . . . A61M 16 / 01
`128 / 202 . 22
`2010 / 0313196 A1 * 12 / 2010 De Atley . . . . . . . . . . . . . . . GOOF 8 / 61
`717 / 174
`2011 / 0099516 A1 *
`4 / 2011 Hughes
`GO6F 8 / 61
`715 / 810
`2011 / 0173251 A1 *
`7 / 2011 Sandhu . . . . . . . . . . . . . .
`GO6F 8 / 61
`709 / 203
`2011 / 0265080 A1 * 10 / 2011 Matthew . . . . . . . . . . . . . . . . . GO6F 8 / 61
`717 / 176
`2011 / 0276396 A1 * 11 / 2011 Rathod . . . . . . . . . . . . GO6F 17 / 30867
`705 / 14 . 49
`2012 / 0084292 A1 *
`4 / 2012 Liang . . . . . . . . . . . . . . . . GO6F 17 / 30899
`707 / 741
`2012 / 0209946 A1 *
`8 / 2012 McClure . . . . . . . . . . . . . . HO4N 21 / 233
`709 / 217
`2013 / 0159996 A1 *
`6 / 2013 Lin . . . . . . . . . . . . . . . . . . . . . . . . . . G06F 8 / 60
`717 / 178
`2013 / 0263113 A1 * 10 / 2013 Cavazza . . . . . . . . . . . . . . . . G06F 8 / 63
`717 / 178
`
`2 / 2014 Kirkham . . . . . . . . . . . . G06Q 30 / 0631
`2014 / 0052683 A1 *
`706 / 46
`12 / 2014 Rosenberg . . . . . . . . . . . . . . . . GO6F 8 / 61
`2014 / 0359408 A1 *
`715 / 205
`2 / 2015 Schechter . . . . . . . . . . . . . . . G06F 9 / 542
`2015 / 0046934 Al *
`719 / 318
`3 / 2015 Brown . . . . . . . . . . . . . . . G06Q 30 / 0246
`2015 / 0073892 A1 *
`705 / 14 . 45
`4 / 2015 Chakrabarti . . . . . . . . . . . . GO6F 9 / 445
`2015 / 0095905 Al *
`717 / 178
`9 / 2015 Niemoeller . . . . . . . . . . . H04W 4 / 001
`2015 / 0249673 A1 *
`726 / 4
`2015 / 0281238 A1 * 10 / 2015 Ramachandran . . . . . . . G06F 21 / 51
`726 / 4
`2015 / 0347123 A1 * 12 / 2015 Zhu . . . . . . . . . . . . . . . . . . . . . . . . . . H04L 67 / 10
`717 / 172
`2015 / 0378709 A1 * 12 / 2015 D ' Amico . . . . . . . . . . . . . . . G06F 8 / 61
`717 / 176
`2016 / 0085521 Al *
`3 / 2016 Savliwala . . . . . . . . . G06F 17 / 30867
`717 / 108
`2016 / 0085533 Al *
`3 / 2016 Jayanti Venkata . . . . . . . . GO6F 8 / 60
`717 / 175
`2016 / 0085977 A1 *
`3 / 2016 Oh
`G06F 8 / 61
`726 / 20
`2016 / 0092186 A1 *
`3 / 2016 Cross . . . . . . . . .
`G06F 8 / 61
`717 / 177
`2016 / 0188671 A1 *
`6 / 2016 Gupta . . . . . . . . . . . . . . . GO6F 17 / 30528
`707 / 722
`3 / 2017 Rajwat . . . . . . . . . . . . . . . . . . . . . . H04L 67 / 34
`2017 / 0078444 A1 *
`2017 / 0169343 A1 *
`6 / 2017 Kirkham . . . . . . . . .
`GOON 5 / 04
`7 / 2017 Ben - Tzur
`. . . . . . . G06F 8 / 34
`2017 / 0206065 A1 *
`
`OTHER PUBLICATIONS
`B . Christophe , M . Narganes , V . Antila and L . Maknavicius , “ Mobile
`execution environment for non - intermediated content distribution , ”
`in Bell Labs Technical Journal , vol . 15 , No . 4 , pp . 117 - 134 , Mar .
`2011 . ( Year : 2011 ) . *
`I . Ullah , R . Boreli , M . A . Kaafar and S . S . Kanhere , “ Characterising
`user targeting for in - App Mobile Ads , ” 2014 IEEE Conference on
`Computer Communications Workshops ( INFOCOM WKSHPS ) ,
`Toronto , ON , 2014 , pp . 547 - 552 . ( Year : 2014 ) . *
`* cited by examiner
`
`
`
`U . S . Patent
`
`Jul . 16 , 2019
`
`Sheet 1 of 6
`
`US 10 , 353 , 686 B1
`
`100
`
`164
`DATA
`STORE
`
`160
`
`SOCIAL NETWORKING SYSTEM
`
`CONTENT
`164
`APP
`DOWNLOAD
`LINKS
`166
`
`SERVER
`162
`
`APP
`DOWNLOAD
`PAGE
`168
`
`APP
`PACKAGE
`172
`
`1307
`
`CLIENT SYSTEM
`
`HOST
`APPLICATION
`132
`
`CONTENT
`164
`APP
`DOWNLOAD
`LINKS
`166
`
`APP
`DOWNLOAD
`PAGE
`168
`
`INSTALLED
`APP
`184
`
`APP
`PACKAGE
`172
`REQUESTED
`PERMS .
`174
`
`ACCEPTED
`PERMS .
`176
`
`APP
`MANAGER
`180
`
`INSTALLER
`182
`
`FIG . 1
`
`150 75
`NETWORK
`110
`
`150 5
`
`170 -
`
`THIRD - PARTY
`SYSTEM
`
`
`
`U . S . Patent
`
`Jul . 16 , 2019
`
`Sheet 2 of 6
`
`US 10 , 353 , 686 B1
`
`204
`
`202
`
`App “ All About Recipes "
`
`User “ E ”
`
`used
`
`like
`
`206
`
`204
`
`206 -
`
`- 206
`
`200
`
`206
`
`204
`
`Song “ Imagine ”
`
`| played
`
`listened
`
`206 -
`
`- 206
`
`attended
`
`School “ Stanford ”
`
`206
`
`- 204
`206
`
`App “ Spotify
`206
`
`used
`
`User “ C ”
`
`202
`
`Location
`
`Pro "
`" Old
`
`like
`
`- 206
`
`friend
`
`worked at
`
`206
`
`204 -
`
`worked at
`
`206 -
`
`User
`
`2027
`
`worked at
`
`204 -
`
`206
`
`worked at
`
`206 -
`
`“ D ”
`
`User
`
`2027
`
`- 204
`
`206
`
`202
`
`App
`" Online Poker "
`
`played
`
`User " F "
`
`- 204
`
`Recipe “ Chicken
`Parmesan "
`
`recommended
`
`cooked
`
`User “ B ”
`
`206
`watched
`
`friend
`
`- 204
`
`Redemption "
`Movie “ Shawshank
`
`FIG . 2
`
`- 202
`
`User User
`
`“ A ”
`
`friend
`friend
`
`206
`
`206 -
`
`202
`
`like
`
`Company
`
`“ Acme "
`
`
`
`206 med
`
`
`
`U . S . Patent
`
`Jul . 16 , 2019
`
`Sheet 3 of 6
`
`US 10 , 353 , 686 B1
`
`300
`
`3100
`
`Presenting , in a user interface of a host application , content
`that includes a download link referencing a downloadable
`application , wherein the user interface of the host application
`performs operations unrelated to downloading applications
`
`320 -
`
`Receiving , in the host application , selection of the download
`link
`
`3300
`
`Sending , to a server computer system , a request to download
`the downloadable application
`
`340
`
`350
`
`Receiving an application package that corresponds to the
`downloadable application
`
`Installing the downloadable application on the computer
`system from the application package by executing program
`code having permission to install applications
`
`FIG . 3
`
`
`
`U . S . Patent
`
`Jul . 16 , 2019
`
`Sheet 4 of 6
`
`US 10 , 353 , 686 B1
`
`400
`
`Client System
`130
`
`Web Server
`162a
`
`Download Server
`162b
`
`Host application
`requests content
`402
`
`Display
`content
`406
`
`Receive
`selection of
`download link
`408
`
`Send request to
`download app
`referenced by
`selected link
`410
`
`Download app
`package
`416
`
`Send content that
`includes link to
`downloadable app
`404
`
`Receive request for app
`412
`
`Send app package to
`client system
`414
`
`FIG . 4
`
`
`
`U . S . Patent
`
`Jul . 16 , 2019
`
`Sheet 5 of 6
`
`US 10 , 353 , 686 B1
`
`500
`
`510
`
`Receive app package from server , updating a download
`progress indicator as data is received
`
`520 -
`
`Extract requested permissions from app package
`
`iser
`
`5400
`
`Receive accepted permissions from user
`
`550 ~
`
`Compare requested permissions to accepted permissions
`
`5304 UUUUU Present request to grant requested permissions to user
`
`HIR HIHIHIHIHI
`
`560
`
`4
`
`Are accepted
`permissions sufficient to
`install app ?
`
`YES
`
`5705
`- NO Do not install
`app
`
`580
`
`Request and receive any additional portions of app package
`
`590
`
`Invoke Installer to install received app package
`
`FIG . 5
`
`
`
`atent
`
`Jul . 16 , 2019
`
`Sheet 6 of 6
`
`US 10 , 353 , 686 B1
`
`COMPUTER SYSTEM
`
`612
`
`PROCESSOR
`
`MEMORY
`
`STORAGE
`
`- A 600
`
`t602
`
`+
`
`604
`
`I / O INTERFACE
`
`COMMUNICATION
`INTERFACE
`
`1
`
`608
`
`-
`
`610
`
`—
`
`—
`
`—
`
`—
`
`—
`
`—
`
`-
`
`-
`
`-
`
`-
`
`FIG . 6
`
`
`
`US 10 , 353 , 686 B1
`
`permissions , or the user has previously granted the permis
`APPLICATION INSTALLATION SYSTEM
`sions , then the download and install may be performed in a
`TECHNICAL FIELD
`single user interaction , e . g . , with no further interactions by
`the user after the link has been selected . In particular
`This disclosure generally relates to installing applications 5 embodiments , third - party applications such as those pro
`on computing devices .
`vided by third - party application developers are not permitted
`to download and install other applications , and such per
`BACKGROUND
`mission cannot be granted by the user . The direct install
`feature may , however , be implemented by delegating down
`A social - networking system , which may include a social - 10 load requests from applications to particular computer pro
`gram code that is authorized to download and install appli
`networking website , may enable its users ( such as persons or
`organizations ) to interact with it and with each other through
`cations . The program code may have been authorized at the
`it . The social - networking system may , with input from a
`time of the device ' s manufacture , for example .
`user , create and store in the social - networking system a user
`profile associated with the user . The user profile may include 15
`BRIEF DESCRIPTION OF THE DRAWINGS
`demographic information , communication - channel informa
`tion , and information on personal interests of the user . The
`FIG . 1 illustrates an example network environment asso
`social - networking system may also , with input from a user ,
`ciated with application installation in a social - networking
`create and store a record of relationships of the user with
`system .
`other users of the social - networking system , as well as 20
`FIG . 2 illustrates an example social graph .
`provide services ( e . g . , wall posts , photo - sharing , event orga -
`FIG . 3 illustrates an example method for downloading
`nization , messaging , games , or advertisements ) to facilitate
`and installing applications .
`FIG . 4 illustrates an example interaction diagram for
`social interaction between or among users .
`The social - networking system may send over one or more
`requesting and downloading applications .
`FIG . 5 illustrates an example method for receiving and
`networks content or messages related to its services to a 25
`mobile or other computing device of a user . A user may also
`installing applications .
`install software applications on a mobile or other computing
`FIG . 6 illustrates an example computer system .
`device of the user for accessing a user profile of the user and
`DESCRIPTION OF EXAMPLE EMBODIMENTS
`other data within the social - networking system . The social
`networking system may generate a personalized set of 30
`FIG . 1 illustrates an example network environment 100
`content objects to display to a user , such as a newsfeed of
`aggregated stories of other users connected to the user .
`associated with a social networking system . Network envi
`ronment 100 includes a client system 130 , a social - network
`SUMMARY OF PARTICULAR EMBODIMENTS
`ing system 160 , and a third - party system 170 connected to
`35 each other by a network 110 . Although FIG . 1 illustrates a
`In particular embodiments , a direct application install
`particular arrangement of client system 130 , social - network
`ing system 160 , third - party system 170 , and network 110 ,
`feature may be used by third - party applications to download
`and install additional applications onto a mobile device . This
`this disclosure contemplates any suitable arrangement of
`direct install feature can be used to provide download links
`client system 130 , social - networking system 160 , third - party
`or buttons in third - party applications that may download and 40 system 170 , and network 110 . As an example and not by way
`install applications in response to a single user action , such
`of limitation , two or more of client system 130 , social
`as touching the link or button . The direct install feature
`networking system 160 , and third - party system 170 may be
`simplifies the user interface aspects of downloading and
`connected to each other directly , bypassing network 110 . As
`installing applications from third - party applications such as
`another example , two or more of client system 130 , social
`social - networking applications , web browsers , and the like . 45 networking system 160 , and third - party system 170 may be
`For example , an advertisement for an application on a web
`physically or logically co - located with each other in whole
`site or in another application many include a link that the
`or in part . Moreover , although FIG . 1 illustrates a particular
`user can select to download and install another application
`number of client systems 130 , social networking systems
`without leaving the application in which the advertisement
`160 , third - party systems 170 , and networks 110 , this disclo
`was presented . In particular embodiments , the direct install 50 sure contemplates any suitable number of client systems
`feature may be used by an application that presents content ,
`130 , social networking systems 160 , third - party systems
`such as advertisements , to download and install other appli -
`170 , and networks 110 . As an example and not by way of
`cations directly , e . g . , without requiring the user to interact
`limitation , network environment 100 may include multiple
`with another application such as an app store . That is , an
`client system 130 , social - networking systems 160 , third
`application can be downloaded and installed when a user 55 party systems 170 , and networks 110 .
`selects an advertisement , without requiring the user to leave
`This disclosure contemplates any suitable network 110 .
`the application that displays the advertisement . This direct
`As an example and not by way of limitation , one or more
`application install feature can increase the number of users
`portions of network 110 may include an ad hoc network , an
`who download applications linked to by advertisements or
`intranet , an extranet , a virtual private network ( VPN ) , a local
`other content , because users are more likely to download 60 area network ( LAN ) , a wireless LAN ( WLAN ) , a wide area
`applications when the process is simple and non - intrusive
`network ( WAN ) , a wireless WAN ( WWAN ) , a metropolitan
`The application to be downloaded may request permission
`area network ( MAN ) , a portion of the Internet , a portion of
`to perform particular types of operations on the mobile
`the Public Switched Telephone Network ( PSTN ) , a cellular
`device , such as accessing network or storage resources , in
`telephone network , or a combination of two or more of
`which case the user may be prompted to grant the requested 65 these . Network 110 may include one or more networks 110 .
`permission in a dialog box or other user interface element .
`Links 150 may connect client system 130 , social - net
`If the application to be downloaded does not request such
`working system 160 , and third - party system 170 to commu
`
`
`
`US 10 , 353 , 686 B1
`
`5
`
`host an online social network . Social - networking system
`nication network 110 or to each other . This disclosure
`160 may generate , store , receive , and send social network
`contemplates any suitable links 150 . In particular embodi -
`ing data , such as , for example , user - profile data , concept
`ments , one or more links 150 include one or more wireline
`profile data , social - graph information , or other suitable data
`( such as for example Digital Subscriber Line ( DSL ) or Data
`related to the online social network . Social - networking
`Over Cable Service Interface Specification ( DOCSIS ) ) ,
`System 160 may be accessed by the other components of
`wireless ( such as for example Wi - Fi or Worldwide Interop
`network environment 100 either directly or via network 110 .
`erability for Microwave Access ( WiMAX ) ) , or optical ( such
`As an example and not by way of limitation , client system
`as for example Synchronous Optical Network ( SONET ) or
`130 may access social - networking system 160 using a web
`Synchronous Digital Hierarchy ( SDH ) ) links . In particular
`embodiments , one or more links 150 each include an ad hoc 10 browser 132 , or a native application associated with social
`network , an intranet , an extranet , a VPN , a LAN , a WLAN ,
`networking system 160 ( e . g . , a mobile social - networking
`a WAN , a WWAN , a MAN , a portion of the Internet , a
`application , a messaging application , another suitable appli
`portion of the PSTN , a cellular technology - based network , a
`cation , or any combination thereof ) either directly or via
`satellite
`communications technology - based network ,
`network 110 . In particular embodiments , social - networking
`another link 150 , or a combination of two or more such links 15 system 160 may include one or more servers 162 . Each
`150 . Links 150 need not necessarily be the same throughout
`server 162 may be a unitary server or a distributed server
`network environment 100 . One or more first links 150 may
`spanning multiple computers or multiple datacenters . Serv
`differ in one or more respects from one or more second links
`ers 162 may be of various types , such as , for example and
`without limitation , web server , news server , mail server ,
`150 .
`In particular embodiments , client system 130 may be an 20 message server , advertising server , file server , application
`server , exchange server , database server , proxy server ,
`electronic device including hardware , software , or embed
`ded logic components or a combination of two or more such
`another server suitable for performing functions or processes
`components and capable of carrying out the appropriate
`described herein , or any combination thereof . In particular
`functionalities implemented or supported by client system
`embodiments , each server 162 may include hardware , soft
`130 . As an example and not by way of limitation , a client 25 ware , or embedded logic components or a combination of
`system 130 may include a computer system such as a
`two or more such components for carry
`desktop computer , notebook or laptop computer , netbook , a
`priate functionalities implemented or supported by server
`tablet computer , e - book reader , GPS device , camera , per -
`162 . In particular embodiments , social - networking system
`sonal digital assistant ( PDA ) , handheld electronic device ,
`160 may include one or more data stores 164 . Data stores
`cellular telephone , smartphone , augmented / virtual reality 30 164 may be used to store various types of information . In
`device , other suitable electronic device , or any suitable
`particular embodiments , the information stored in data
`combination thereof . This disclosure contemplates any suit -
`stores 164 may be organized according to specific data
`able client systems 130 . A client system 130 may enable a
`structures . In particular embodiments , each data store 164
`network user at client system 130 to access network 110 . A
`may be a relational , columnar , correlation , or other suitable
`client system 130 may enable its user to communicate with 35 database . Although this disclosure describes or illustrates
`particular types of databases , this disclosure contemplates
`other users at other client systems 130 .
`In particular embodiments , client system 130 may include
`any suitable types of databases . Particular embodiments may
`a web browser 132 , such as MICROSOFT INTERNET
`provide interfaces that enable a client system 130 , a social
`EXPLORER , GOOGLE CHROME or MOZILLA FIRE -
`networking system 160 , or a third - party system 170 to
`FOX , and may have one or more add - ons , plug - ins , or other 40 manage , retrieve , modify , add , or delete , the information
`extensions , such as TOOLBAR or YAHOO TOOLBAR . A
`stored in data store 164 .
`user at client system 130 may enter a Uniform Resource
`In particular embodiments , social - networking system 160
`Locator ( URL ) or other address directing the web browser
`may store one or more social graphs in one or more data
`132 to a particular server ( such as server 162 , or a server
`stores 164 . In particular embodiments , a social graph may
`associated with a third - party system 170 ) , and the web 45 include multiple nodes — which may include multiple user
`browser 132 may generate a Hyper Text Transfer Protocol
`nodes ( each corresponding to a particular user ) or multiple
`( HTTP ) request and communicate the HTTP request to
`concept nodes ( each corresponding to a particular con
`server . The server may accept the HTTP request and com -
`cept ) — and multiple edges connecting the nodes . Social
`municate to client system 130 one or more Hyper Text
`networking system 160 may provide users of the online
`Markup Language ( HTML ) files responsive to the HTTP 50 social network the ability to communicate and interact with
`request . Client system 130 may render a webpage based on
`other users . In particular embodiments , users may join the
`the HTML files from the server for presentation to the user
`online social network via social - networking system 160 and
`This disclosure contemplates any suitable webpage files . As
`then add connections ( e . g . , relationships ) to a number of
`an example and not by way of limitation , webpages may
`other users of social - networking system 160 to whom they
`render from HTML files , Extensible Hyper Text Markup 55 want to be connected . Herein , the term “ friend ” may refer to
`Language ( XHTML ) files , or Extensible Markup Language
`any other user of social - networking system 160 with whom
`( XML ) files , according to particular needs . Such pages may
`a user has formed a connection , association , or relationship
`also execute scripts such as , for example and without
`via social - networking system 160 .
`limitation , those written in JAVASCRIPT , JAVA , MICRO -
`In particular embodiments , social - networking system 160
`SOFT SILVERLIGHT , combinations of markup language 60 may provide users with the ability to take actions on various
`and scripts such as AJAX ( Asynchronous JAVASCRIPT and
`types of items or objects , supported by social networking
`XML ) , and the like . Herein , reference to a webpage encom
`system 160 . As an example and not by way of limitation , the
`passes one or more corresponding webpage files ( which a
`items and objects may include groups or social networks to
`browser may use to render the webpage ) and vice versa ,
`which users of social networking system 160 may belong ,
`where appropriate .
`65 events or calendar entries in which a user might be inter
`In particular embodiments , social - networking system 160
`ested , computer - based applications that a user may use ,
`transactions that allow users to buy or sell items via the
`may be a network - addressable computing system that can
`
`
`
`US 10 , 353 , 686 B1
`
`module , user - interface module , user - profile store , connec
`service , interactions with advertisements that a user may
`tion store , third - party content store , or location store . Social
`perform , or other suitable items or objects . A user may
`networking system 160 may also include suitable compo
`interact with anything that is capable of being represented in
`nents such as network interfaces , security mechanisms , load
`social - networking system 160 or by an external system of
`5 balancers , failover servers , management - and - network - op
`third - party system 170 , which is separate from social - net -
`erations consoles , other suitable components , or any suitable
`working system 160 and coupled to social - networking sys -
`combination thereof . In particular embodiments , social
`tem 160 via a network 110 .
`networking system 160 may include one or more user
`In particular embodiments , social - networking system 160
`profile stores for storing user profiles . A user profile may
`may be capable of linking a variety of entities . As an
`example and not by way of limitation , social networking 10 include , for example , biographic information , demographic
`system 160 may enable users to interact with each other as
`information , behavioral information , social information , or
`well as receive content from third - party systems 170 or other
`other types of descriptive information , such as work expe
`entities , or to allow users to interact with these entities
`rience , educational history , hobbies or preferences , interests ,
`through an application programming interfaces ( API ) or
`affinities , or location . Interest information may include inter
`15 ests related to one or more categories . Categories may be
`other communication channels .
`In particular embodiments , a third - party system 170 may
`general or specific . As an example and not by way of
`include one or more types of servers , one or more data
`limitation , if a user “ likes ” an article about a brand of shoes
`stores , one or more interfaces , including but not limited to
`the category may be the brand , or the general category of
`APIs , one or more web services , one or more content
`“ shoes ” or “ clothing . " A connection store may be used for
`sources , one or more networks , or any other suitable com - 20 storing connection information about users . The connection
`ponents , e . g . , that servers may communicate with . A third -
`information may indicate users who have similar or common
`party system 170 may be operated by a different entity from
`work experience , group memberships , hobbies , educational
`an entity operating social networking system 160 . In par -
`history , or are in any way related or share common attri
`ticular embodiments , however , social - networking system
`butes . The connection information may also include user
`160 and third - party systems 170 may operate in conjunction 25 defined connections between different users and content
`with each other to provide social networking services to
`( both internal and external ) . A web server may be used for
`users of social - networking system 160 or third - party sys -
`linking social - networking system 160 to one or more client
`tems 170 . In this sense , social - networking system 160 may
`systems 130 or one or more third - party system 170 via
`provide a platform , or backbone , which other systems , such
`network 110 . The web server may include a mail server or
`as third - party systems 170 , may use to provide social - 30 other messaging functionality for receiving and routing
`networking services and functionality to users across the
`messages between social networking system 160 and one or
`more client systems 130 . An API - request server may allow
`Internet .
`In particular embodiments , a third - party system 170 may
`a third - party system 170 to access information from social
`include a third - party content object provider . A third - party
`networking system 160 by calling one or more APIs . An
`content object provider may include one or more sources of 35 action logger may be used to receive communications from
`content objects , which may be communicated to a client
`a web server about a user ' s actions on or off social
`system 130 . As an example and not by way of limitation ,
`networking system 160 . In conjunction with the action log ,
`content objects may include information regarding things or
`a third - party - content - object log may be maintained of user
`activities of interest to the user , such as , for example , movie
`exposures to third - party - content objects . A notification con
`show times , movie reviews , restaurant reviews , restaurant 40 troller may provide information regarding content objects to
`menus , product information and reviews , or other suitable
`a client system 130 . Information may be pushed to a client
`information . As another example and not by way of limita -
`system 130 as notifications , or information may be pulled
`tion , content objects may include incentive content objects ,
`from client system 130 responsive to a request received from
`such as coupons , discount tickets , gift certificates , or other
`client system 130 . Authorization servers may be used to
`45 enforce one or more privacy settings of the users of social
`suitable incentive objects .
`In particular embodiments , social - networking system 160
`networking system 160 . A privacy setting of a user deter
`also includes user - generated content objects , which may
`mines how particular information associated with a user can
`enhance a user ' s interactions with social networking system
`be shared . The authorization server may allow users to opt
`160 . User - generated content may include anything a user
`in to or opt out of having their actions logged by social
`can add , upload , send , or " post " to social - networking system 50 networking system 160 or shared