Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AN ADVERTISING METHOD AND SYSTEM
Document Type and Number:
WIPO Patent Application WO/2015/150749
Kind Code:
A1
Abstract:
A method performed by a server comprising: selecting new digital content and an advertisement to transmit to a software client based on previously specified algorithms and parameters and software user preference data and/or based on the previous, current or projected sales or stock levels of new digital content; transmitting the selected new digital content and the advertisement to the software client;and causing an advertisement to be displayed on the software client when the new digital content is received by the software client. Digital content is distributed to users via a system such that advertisers can sponsor application users with content that can be used in the application, whilst providing control to the advertiser and the application developer over how the digital content should be served. Users can be reminded of sponsorship via coupons which display the sponsorship history on the coupons themselves. Users are presented with an option to buy more digital content upon receiving new digital content to entice them to make more in-app purchases. A user can acquire new digital content via interaction with a social network. In addition, a user can acquire new digital content by redeeming a coupon or loyalty card to a digital wallet. This invention can also be used to perform deferred installation of software where the system enables the software user to store a hyperlink to additional software to a virtual wallet, which can then be accessed later to install the additional software.

Inventors:
HATTER NICHOLAS WILLIAM (GB)
Application Number:
PCT/GB2015/050914
Publication Date:
October 08, 2015
Filing Date:
March 26, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HATTER NICHOLAS WILLIAM (GB)
GIFTGAMING LTD (GB)
International Classes:
G06Q30/02
Domestic Patent References:
WO2007146399A22007-12-21
WO2009101630A22009-08-20
Foreign References:
EP2164055A12010-03-17
US20090124384A12009-05-14
Attorney, Agent or Firm:
PITCHFORD, James Edward (The Shard32 London Bridge Street, London Greater London SE1 9SG, GB)
Download PDF:
Claims:
CLAIMS

1 . A method performed by a server comprising:

selecting new digital content and an advertisement to transmit to a software client based on previously specified algorithms and parameters and software user preference data and/or based on the previous, current or projected sales or stock levels of new digital content;

transmitting the selected new digital content and the advertisement to the software client; and

causing the advertisement to be displayed on the software client after the new digital content is received or installed by the software client; and optionally, causing the software client to display a user interface component, which upon the software user interacting with, causes the software client to download or the server to transmit a coupon or an event ticket or loyalty points or hyperlinks to a digital wallet which stores digital tokens, such as digital coupons, digital event tickets, digital loyalty cards and hyperlinks, and/or unique identifiers for coupons.

2. The method of claim 1 further comprising causing an optionally-redeemable coupon to be displayed with the advertisement on the software client.

3. The method of claim 2 further comprising causing a summary of the new digital content received from an advertiser on the coupon to be displayed.

4. The method of claim 3 wherein the summary of the new digital content received from an advertiser further includes the total number of digital content received from the coupon's advertiser and/or the in-app currency value of the total digital content received from the coupon's advertiser and/or the total monetary donations to charity or charitable causes by the advertiser and/or a monetary discount of or offer to buy new digital content at a subsidised price.

5. The method of claim 1 further comprising determining if a software user is eligible to receive new digital content based on specified parameters.

6. The method of claim 1 further comprising causing a user interface component on the software client to allow the software user to purchase additional digital content when digital content is received or installed by the software client.

7. The method of claim 6 further comprising transmitting new digital content to the software upon the software user successfully paying for additional new digital content.

8. The method of claim 6 further comprising installing new digital content when the user has successfully paid for additional new digital content.

9. The method of claim 1 wherein new digital content further includes: video game virtual currency, virtual video game items, additional video game digital content, two-dimensional and three-dimensional artwork, music, content not previously installed on the device, or a code or unique identifier for unlocking digital content on the software.

10. The method of claim 1 wherein a user interface component further includes one or more of a button, an icon, a checkbox and a list of items, which can be rendered as two-dimensional or three-dimensional on a display attached to a software client.

1 1 . The method of claim 1 further comprising delivering new digital content to the software based on the equivalent monetary value of new digital content received by the software user before.

12. The method of claim 1 further comprising delivering new digital content based on the time spent by the software user using or executing the software and/or by how much the software user has spent in equivalent monetary value on previous new digital content.

13. The method of claim 1 further comprising causing an interactive interstitial advertisement to be displayed such that the software user can interact with it to reveal the new digital content being given to the software user, such that an advertiser is given more exposure time.

14. The method of claim 1 further comprising causing a user interface component to be displayed on the software client which allows the software user to save a coupon to the software client, a server, a coupon storage service, or another software client.

15. The method of claim 1 further comprising determining the nearest stores of a particular chain or franchise to the software user based on the distance of the software client's location and the store locations, and the stores where the coupon is redeemable.

16. The method of claim 15 further comprising storing or copying the geographic coordinates of the nearest stores of a particular chain or franchise into a coupon or coupon reminder service, such that the software user is reminded when their current geographic location is near the geographic location of a particular store, chain or franchise.

17. The method of claim 16 further comprising causing a user interface component to be displayed allowing the software user to select a store chain or franchise to be reminded at to use the coupon, such that the software user can specify one particular collection of stores to be reminded at.

18. The method of claim 16 further comprising causing the software client to cause a visual, aural, or physical movement notification when the software client's detected GPS coordinates are within a pre-determined range of one or more stored coupon's GPS co-ordinates.

19. The method of claim 1 further comprising causing a visual, aural or a physical movement cue on the software client to notify the software user of receiving new digital content. 20. The method of claim 19 further comprising causing the software client to visually notify the software user via a user interface component.

21 . The method of claim 19 further comprising causing the software client to visually notify the software user by displaying the new digital content immediately on the software client, if the new digital content can be displayed.

22. The method of claim 19 further comprising causing the software client to aurally notify the software user via a sound.

23. The method of claim 19 further comprising causing the software client to physically notify the software user with physical movement of the device, such as by vibration.

24. The method of claim 1 wherein specified algorithms for selecting new digital content to transmit to a software client include selecting new digital content based on the equivalent monetary value of digital content offered by other advertisers, such as by selecting digital content with a similar or higher equivalent monetary value.

25. The method of claim 24 further comprising selecting new digital content such that the equivalent monetary value is less than, equal to or greater than the new digital content offered by other advertisers, such that an advertiser can give new digital content competitively.

26. The method of claim 1 wherein specified algorithms for selecting digital content to transmit to a software client include selecting digital content depending on the sum and/or equivalent monetary value of digital content transmitted to the software client before.

27. The method of claim 24 further comprising selecting new digital content to transmit of incrementing, decrementing or random equivalent monetary value compared to the equivalent monetary value of previous new digital content received by the software user.

28. The method of claim 1 wherein specified parameters include the minimum and maximum number of new digital content and the minimum and maximum equivalent monetary value of new digital content a software user can receive.

29. The method of claim 1 further comprising selecting new digital content to deliver to the software client based on the software user's social network influence.

30. The method of claim 1 further comprising receiving from the software client a message sent from the software user to the advertiser via a social network. 31 . The method of claim 30 further comprising receiving from the software client the message metadata including but not limited to date, time, the message contents and the recipient.

32. The method of claim 1 further comprising transmitting to the software client, one or more pre-written messages stored on the remote server causing them to be displayed on the software client's display, wherein the prewritten message(s) can be fixed or selected at random from a collection of pre-written messages.

33. The method of claim 32 further comprising providing an advertiser with means to edit and configure the pre-written message(s) via one or more user interface components.

34. The method of claim 32 further comprising causing the pre-written message(s) transmitted to the software client to be displayed on the same user interface as the advertisement, such that the pre-written message and the advertisement are displayed effectively at the same time.

35. The method of claim 32 further comprising causing one or more user interface components to be displayed on the software client which would enable the software user to optionally edit the pre-written message and send the message to a social network.

36. The method of claim 32 further comprising tracking pre-written messages.

37. The method of claim 1 further comprising selecting an advertisement according to how much the software user has spent on digital content previous to the date and time of the advertisement being served.

38. The method of claim 1 further comprising causing one or more user interface components to be displayed on the software client allowing the software user to transmit preference data to the remote server.

39. The method of claim 38 wherein the software user's preference data includes one or more of the software user's gender, age range and interests, favourite interests, favourite films, favourite video games, favourite books and favourite musical artists.

40. The method of claim 1 further comprising selecting new digital content to deliver to the software client based on the software user's social network information. 41 . The method of claim 40 wherein social network information includes (but is not limited to) friend or connections lists, and profile information such as favourite interests, favourite films, favourite video games, favourite books and favourite musical artists.

42. The method of claim 1 further comprising maintaining a collection of coupon unique identifiers, mapping each coupon unique identifier to new digital content, receiving one or more coupon unique identifiers from a software client, checking if a received coupon unique identifier matches any one of the coupon unique identifiers in the collection, and selecting and transmitting new digital content to the software client based on the mapping of the coupon unique identifier to new digital content.

43. The method of claim 1 further comprising storing and maintaining a collection of Universally Unique Identifiers (UUIDs), transmitting a collection of UUIDs to a software client which is stored on a non-transitory medium, receiving a request for new digital content from the software client upon the software client receiving a UUID from a beacon nearby which matches a UUID in the transmitted collection of UUIDs, and selecting and transmitting new digital content to the software client.

44. The method of claim 43 wherein new digital content includes content that is beneficial to the progress of the software user in a game, such as virtual currency or a virtual game item, or virtual power-up, or an in-game benefit that the software user may otherwise have to pay for or play the game to receive.

45. The method of claim 43 further comprising requesting and installing the new digital content at a pre-configured time period after the UUID received from a beacon matches a UUID in the transmitted collection of UUIDs.

46. The method of claim 43 further comprising requesting and installing the new digital content if and only if a preconfigured collection of received UUIDs from beacons on the software client exclusively match a subset of the received collection of UUIDs.

47. The method of claim 43 further comprising displaying a new digital content indicator when new digital content has been received from a remote server.

48. The method of claim 47 further comprising enabling a software user to interact with the new digital content indicator to install the new digital content.

49. The method of claim 48 further comprising displaying an advertiser's logo when new digital content is installed, such that the advertiser is seen to be sponsoring the new digital content.

50. The method of claim 49 further comprising displaying a visual image representing a coupon or an advertisement.

51 . The method of claim 1 further comprising determining new digital content delivery events using metadata, such as the date a software user requested or installed new digital content;

computing the rank of each new digital content delivery event using a sorting or ranking algorithm which takes into account the new digital content delivery date and at least one other metric, such as the equivalent monetary value of the new digital content delivered;

causing the software client to display previous and current new digital content delivery events sorted by their computed ranks;

causing the software client to display one or more user interface components next to each displayed new digital content delivery event which would enable the software user to acquire more new digital content similar or identical to the received new digital content;

and causing the software client to display advertiser information, such as brand name and description, upon the software user interacting with a displayed collection of new digital content delivery events or a displayed single new digital content delivery event.

52. The method of claim 1 further comprising enabling new digital content to be purchased by a virtual currency;

determining the software user's current virtual currency balance; selecting one or more new digital contents from a digital content catalogue that is more expensive than the software user's currency balance;

incrementing the software user's current virtual currency balance such that after a pre-determined number of increments, buying more virtual currency would enable the software user to obtain the selected new digital content;

causing the software client to display a notification that the software user has received virtual currency from an advertiser and displaying the advertiser's brand name and/or logo;

causing the software client to display an image or texture that represents the selected new digital contents, such that the software user is aware they can acquire the new digital content with a sufficient virtual currency balance;

and causing the software client to display a user interface component that would enable the software user to purchase the sufficient amount of virtual currency to buy one or more of the selected new digital contents, such that the software user is enticed to buy enough virtual currency to acquire the displayed new digital content.

53. A method performed by a software client comprising:

requesting new digital content from a remote server based on previously specified algorithms and parameters and software user preference data and/or based on the previous, current or projected sales or stock levels of new digital content;

receiving the selected new digital content and an advertisement; and displaying the advertisement after the new digital content is received or installed;

and optionally, rendering a user interface component, which upon the software user interacting with, causes the software client to download or the server to transmit a coupon or an event ticket or loyalty points or a hyperlink, to a digital wallet which stores digital tokens, such as digital coupons, digital event tickets, digital loyalty cards and hyperlinks.

54. The method of claim 53 further comprising displaying an optionally- redeemable coupon with the advertisement. 55. The method of claim 54 further comprising displaying a summary of the new digital content received from an advertiser on the coupon.

56. The method of claim 55 wherein the summary of the new digital content received from an advertiser further includes the total number of digital content received from the coupon's advertiser and/or the in the in-app currency value of the total digital content received from the coupon's advertiser and/or the total monetary donations to charity or charitable causes by the advertiser. 57. The method of claim 53 further comprising determining if a software user is eligible to receive new digital content based on specified parameters.

58. The method of claim 53 further comprising displaying one or more user interface components to allow the software user to purchase additional digital content when digital content is received or installed.

59. The method of claim 58 further comprising receiving new digital content upon the software user successfully paying for additional new digital content.

60. The method of claim 58 further comprising installing new digital content when the user has successfully paid for additional new digital content.

61 . The method of claim 53 wherein new digital content further includes: video game virtual currency, virtual video game items, additional video game digital content, two-dimensional and three-dimensional artwork, music, content not previously installed on the device, or a code or unique identifier for unlocking digital content on the software.

62. The method of claim 58 wherein a user interface component further includes one or more of a button, an icon, a checkbox and a list of items, which can be rendered as two-dimensional or three-dimensional on the display.

63. The method of claim 53 further comprising receiving new digital content to the software based on the equivalent monetary value of new digital content received by the software user before.

64. The method of claim 53 further comprising receiving new digital content based on the time spent by the software user using or executing the software and/or by how much the software user has spent in equivalent monetary value on previous new digital content.

65. The method of claim 53 further comprising displaying an interactive interstitial advertisement to be displayed such that the software user can interact with it to reveal the new digital content being given to the software user, such that an advertiser is given more exposure time.

66. The method of claim 53 further comprising displaying one or more user interface components to which allow the software user to save a coupon to the software client, a server, a coupon storage service, or another software client.

67. The method of claim 53 further comprising causing a visual, aural or a physical movement cue to notify the software user of receiving new digital content.

68. The method of claim 67 further comprising visually notifying the software user via one or more user interface components.

69. The method of claim 68 further comprising visually notifying the software user by displaying the new digital content immediately in the software, if the new digital content can be displayed.

70. The method of claim 68 further comprising aurally notifying the software user via a sound. 71 . The method of claim 68 further comprising physically notifying the software user with physical movement of the device, such as by vibration.

72. The method of claim 53 wherein specified algorithms for requesting new digital content include requesting new digital content based on the equivalent monetary value of digital content offered by other advertisers, such as by requesting digital content with a similar or higher equivalent monetary value.

73. The method of claim 53 further comprising requesting new digital content such that the equivalent monetary value is less than, equal to or greater than the new digital content offered by other advertisers, such that an advertiser can give new digital content competitively.

74. The method of claim 53 wherein specified algorithms for requesting new digital content include selecting digital content depending on the sum and/or equivalent monetary value of digital content received by the software user in the past.

75. The method of claim 74 further comprising requesting new digital content of incrementing, decrementing or random equivalent monetary value compared to the equivalent monetary value of previous new digital content received by software user.

76. The method of claim 53 wherein specified parameters include the minimum and maximum number of new digital content and the minimum and maximum equivalent monetary value of new digital content a software user can receive.

77. The method of claim 53 further comprising requesting new digital content based on the software user's social network influence.

78. The method of claim 53 further comprising displaying one or more user interface components allowing the software user to select a store chain or franchise to be reminded at to use the coupon, such that the software user is reminded to use the coupon when they are nearby a particular store using other coupon reminder technologies or services. 79. The method of claim 53 further comprising transmitting a social network message to the advertiser to the remote server.

80. The method of claim 79 further comprising transmitting message metadata including but not limited to date, time, the message contents and the recipient, to the remote server.

81 . The method of claim 53 further comprising requesting one or more prewritten messages stored on the remote server and displaying them on the user interface.

82. The method of claim 81 further comprising requesting updates to the prewritten messages and displaying them via one or more user interface components. 83. The method of claim 81 further comprising displaying received pre-written messages and the advertisement on the same user interface.

84. The method of claim 81 further comprising displaying one or more user interface components which would enable the software user to optionally edit the received pre-written message and send the message to a social network.

85. The method of claim 53 further comprising requesting an advertisement according to how much the software user has spent on digital content previous to the date and time of the advertisement being served.

86. The method of claim 53 further comprising displaying one or more user interface components allowing the software user to transmit preference data to the remote server.

87. The method of claim 86 wherein the software user's preference data includes one or more of the software user's gender, age range and interests, favourite interests, favourite films, favourite video games, favourite books and favourite musical artists.

88. The method of claim 53 further comprising requesting new digital content based on the software user's social network information.

89. The method of claim 88 wherein social network information includes (but is not limited to) friend or connections lists, and profile information such as favourite interests, favourite films, favourite video games, favourite books and favourite musical artists.

90. A method performed by a server comprising:

transmitting a collection of coupon unique identifiers to a software client;

causing the software client to check if a particular coupon unique identifier matches any one of the received collection of coupon unique identifiers;

receiving messages from the software client for any matching coupon unique identifiers;

and delivering new digital content to the software client based on which coupon unique identifiers were matched.

91 . A method performed by a software client comprising: receiving a collection of coupon unique identifiers from a remote server;

checking if a given coupon unique identifier matches any one of the received collection of coupon unique identifiers;

transmitting matching coupon unique identifiers to the remote server; and receiving new digital content from the remote server based on which coupon unique identifiers were matched, and installing or unlocking the received new digital content. 92. A method for displaying in-application advertisements performed by a server, comprising:

determining new digital content delivery events using metadata, such as the date a software user requested or installed new digital content;

computing the rank of each new digital content delivery event using a sorting or ranking algorithm which takes into account the new digital content delivery date and at least one other metric, such as the equivalent monetary value of the new digital content delivered;

causing the software client to display previous and current new digital content delivery events sorted by their computed ranks;

causing the software client to display one or more user interface components next to each displayed new digital content delivery event which would enable the software user to acquire more new digital content similar or identical to the received new digital content;

causing the software client to display advertiser information, such as brand name and description, upon the software user interacting with a displayed collection of new digital content delivery events or a displayed single new digital content delivery event;

and tracking the software user viewing the advertiser information and any purchase arising directly from this, such as through coupon codes or an external hyperlink to a website with a unique identifier, which can be traced back to the software user viewing the advertiser information.

93. The method of claim 92 further comprising providing a means to let the software user receive or install new digital content after interacting with the displayed new digital content delivery events.

94. The method of claim 92 further comprising collecting new digital content delivery events into a collection organised by advertiser, such that the software user can see a summary of new digital content delivery events, such as the total number of new digital content delivery or the total value of new digital content delivery received to present date.

95. The method of claim 92 further comprising providing some indication to the software user that a new digital content delivery event has taken place when the previous and current new digital content delivery events are displayed.

96. The method of claim 92 further comprising using a display algorithm to give more on screen exposure to the advertisers who provide the highest total equivalent monetary value of new digital content to the software user, such as by assigning more pixels to display their new digital content delivery events.

97. A method for displaying in-application advertisements performed by a software client, comprising:

downloading new digital content delivery events from a remote server;

computing the rank of each new digital content delivery event using a sorting or ranking algorithm which takes into account the new digital content delivery date and at least one other metric, such as the equivalent monetary value of the new digital content delivered;

displaying previous and current new digital content delivery events sorted by their computed ranks;

displaying one or more user interface components next to each displayed new digital content delivery event which would enable the software user to acquire more new digital content similar or identical to the received new digital content;

displaying advertiser information, such as brand name and description, upon the software user interacting with a displayed collection of new digital content delivery events or a displayed single new digital content delivery event;

and tracking the software user viewing the advertiser information and any purchase arising directly from this, such as through coupon codes or an external hyperlink to a website with a unique identifier, which can be traced back to the software user viewing the advertiser information.

98. The method of claim 97 further comprising providing a means to let the software user receive or install new digital content after interacting with the displayed new digital content delivery events.

99. The method of claim 97 further comprising collecting new digital content delivery events into a collection organised by advertiser, such that the software user can see a summary of new digital content delivery events, such as the total number of new digital content delivery or the total value of new digital content delivery received to present date.

100. The method of claim 97 further comprising providing some indication to the software user that a new digital content delivery event has taken place when the previous and current new digital content delivery events are displayed.

101 . The method of claim 97 further comprising using a display algorithm to give more on screen exposure to the advertisers who provide the highest total equivalent monetary value of new digital content to the software user, such as by assigning more pixels to display their new digital content delivery events.

102. A method for displaying in-application advertisements and enticing software users to purchase new digital content performed by a server, comprising:

enabling new digital content to be purchased by a virtual currency; determining the software user's current virtual currency balance; selecting one or more new digital contents from a digital content catalogue that is more expensive than the software user's currency balance;

incrementing the software user's current virtual currency balance such that after a pre-determined number of increments, buying more virtual currency would enable the software user to obtain the selected new digital content;

causing the software client to display a notification that the software user has received virtual currency from an advertiser and displaying the advertiser's brand name and/or logo;

causing the software client to display an image or texture that represents the selected new digital contents, such that the software user is aware they can acquire the new digital content with a sufficient virtual currency balance;

and causing the software client to display a user interface component that would enable the software user to purchase the sufficient amount of virtual currency to buy one or more of the selected new digital contents, such that the software user is enticed to buy enough virtual currency to acquire the displayed new digital content.

103. The method of claim 102 further comprising causing the software client to display an image representing a coupon and a user interface component allowing the coupon to be saved to a digital wallet after the software user's virtual currency balance has been incremented.

104. A method for displaying in-application advertisements and enticing software users to purchase new digital content performed by a software client, comprising: enabling new digital content to be purchased by a virtual currency; determining the software user's current virtual currency balance; selecting one or more new digital contents from a digital content catalogue that is more expensive than the software user's currency balance;

incrementing the software user's current virtual currency balance such that after a pre-determined number of increments, buying more virtual currency would enable the software user to obtain the selected new digital content;

displaying a notification that the software user has received virtual currency from an advertiser and displaying the advertiser's brand name and/or logo;

displaying an image or texture that represents the selected new digital contents, such that the software user is aware they can acquire the new digital content with a sufficient virtual currency balance;

and displaying a user interface component that would enable the software user to purchase the sufficient amount of virtual currency to buy one or more of the selected new digital contents, such that the software user is enticed to buy enough virtual currency to acquire the displayed new digital content.

05. The method of claim 104 further comprising displaying an image representing a coupon and a user interface component allowing the coupon to be saved to a digital wallet after the software user's virtual currency balance has been incremented.

06. A method performed by a software client comprising:

requesting a collection of Universally Unique Identifiers (UUIDs) from a remote server;

receiving a collection of UUIDs from the remote server which can be stored onto a non-transitory medium;

receiving a UUID from a beacon when the software client is in the transmitting range of the beacon; transmitting a request for new digital content if the received UUID from the beacon matches a UUID in the received collection of UUIDs from the remote server;

receiving new digital content from the remote server based on pre- configured parameters;

and installing the received new digital content.

107. The method of claim 106 wherein new digital content includes content that is beneficial to the progress of the software user in a game, such as virtual currency or a virtual game item, or virtual power-up, or an in- game benefit that the software user may otherwise have to pay for or play the game to receive.

108. The method of claim 106 further comprising requesting and installing the new digital content at a pre-configured time period after the UUID received from a beacon matches a UUID in the received collection of UUIDs.

109. The method of claim 106 further comprising requesting and installing the new digital content if and only if a preconfigured collection or sequence of received UUIDs from beacons on the software client exclusively match a subset of the received collection of UUIDs.

1 10. The method of claim 106 further comprising displaying a new digital content indicator when new digital content has been received from a remote server.

1 1 1 . The method of claim 1 10 further comprising enabling a software user to interact with the new digital content indicator to install the new digital content.

1 12. The method of claim 1 1 1 further comprising displaying an advertiser's logo when new digital content is installed.

1 13. The method of claim 1 12 further comprising displaying a visual image representing a coupon or an advertisement. 1 14. A method performed by a remote server comprising:

storing and maintaining a collection of Universally Unique Identifiers (UUIDs);

transmitting a collection of UUIDs to the software client which can be stored onto a non-transitory medium;

receiving a request for new digital content from a software client, upon the software client receiving a UUID from a beacon nearby which matches a UUID in the transmitted collection of UUIDs;

transmitting new digital content to the software client based on preconfigured parameters and causing the software client to install the received new digital content.

1 15. The method of claim 1 14 wherein new digital content includes content that is beneficial to the progress of the software user in a game, such as virtual currency or a virtual game item, or virtual power-up, or an in- game benefit that the software user may otherwise have to pay for or play the game to receive.

1 16. The method of claim 1 15 further comprising requesting and installing the new digital content at a pre-configured time period after the UUID received from a beacon matches a UUID in the transmitted collection of

UUIDs.

1 17. The method of claim 1 16 further comprising requesting and installing the new digital content if and only if a preconfigured collection of received UUIDs from beacons on the software client exclusively match or exclusively do not match a subset of the received collection of UUIDs.

1 18. The method of claim 1 14 further comprising displaying a new digital content indicator when new digital content has been received from a remote server.

1 19. The method of claim 1 18 further comprising enabling a software user to interact with the new digital content indicator to install the new digital content.

120. The method of claim 1 19 further comprising displaying an advertiser's logo when new digital content is installed, such that the advertiser is seen to be sponsoring the new digital content.

121 . The method of claim 120 further comprising displaying a visual image representing a coupon or an advertisement.

122. A method performed by a server comprising:

storing and maintaining a collection of Universally Unique Identifiers (UUIDs);

mapping each UUID to an affiliate link, and optionally, a coupon code;

transmitting one or more UUIDs to a software client;

causing a software client to display one or more transmitted UUIDs; providing a graphical user interface on another software client where a software user can input a UUID;

receiving a UUID from a software client and retrieving an affiliate link (and optionally, a coupon code) from the received UUID based on the previously stored mapping of UUID to affiliate link;

transmitting the retrieved affiliate link (and optionally, a coupon code) to the software client that transmitted the UUID to the server;

and causing the software client that transmitted the UDID to navigate to the affiliate link in web browser software.

123. The method of claim 122 further comprising causing the software client to navigate to the affiliate link in a new window or tab in web browser software.

124. The method of claim 122 further comprising causing the software client to automatically copy the transmitted coupon code to the software client's virtual clipboard, such that the user can virtually paste it.

125. The method of claim 122 further comprising causing the software client to display the transmitted coupon code on the software client, enabling the user to manually copy it to the software client's clipboard.

126. The method of claim 122 further comprising causing the software client to display a graphical user interface component (such as a button) that would enable the software client to navigate to the transmitted retrieved affiliate link in web browser software.

127. A method performed by a software client comprising:

displaying a graphical user interface where a software user can input a Universally Unique Identifier (UUID);

transmitting the UUID input by a software user to a remote server; causing the remote server to transmit back, to the software client, an affiliate link (and optionally, a coupon code) from the transmitted UUID based on the remote server's previously stored mapping of UUID to affiliate link;

receiving a retrieved affiliate link (and optionally, a coupon code) from the remote server;

and navigating to the affiliate link in web browser software.

128. The method of claim 127 further comprising navigating to the affiliate link in a new window or tab in web browser software.

129. The method of claim 127 further comprising automatically copying the transmitted coupon code to the software client's virtual clipboard, such that the user can virtually paste it.

130. The method of claim 127 further comprising displaying the transmitted coupon code on the software client, enabling the user to manually copy it to the software client's clipboard.

131 . The method of claim 127 further comprising displaying a graphical user interface component (such as a button) that would enable the software client to navigate to the transmitted retrieved affiliate link in web browser software.

132. A computer program or set of instruction code configured to execute a method according to any preceding claim.

133. A server configured to execute the method of any of claims 1 to 52, claim 90, claims 92 to 96, claims 102 to 103, and claims 1 14 to 126.

134. A user device configured to execute the method of any of claims 53 to 89, claim 91 , claims 97 to 101 , claims 104 to 1 13 and claims 127 to 131 .

135. A telecommunications system configured to execute the method of any of claims 1 to 131 .

136. A method substantially as herein described with reference to and as illustrated in any combination of the accompany drawings.

137. A server apparatus substantially as herein described with reference to and as illustrated in any combination of the accompany drawings.

138. A client apparatus substantially as herein described with reference to and as illustrated in any combination of the accompany drawings.

139. A computer program or set of instruction code substantially as herein described with reference to and as illustrated in any combination of the accompany drawings. 140. A system substantially as herein described with reference to and as illustrated in any combination of the accompany drawings.

Description:
AN ADVERTISING METHOD AND SYSTEM

Field of the Invention

This invention relates generally to the distribution of digital content and advertising in and around software, and is particularly applicable (but not limited to) video games.

Background to the Invention

Currently software users may have to pay for digital content within software. For example, a software user may play a game and wish to buy extra lives or an item to assist with their game progression. Current systems may require the user to watch an advertising video or sign up to a service in order to receive digital content for free. This could be intrusive to the software user's experience and may therefore limit the amount of interaction with an advertiser. Therefore there is a desire to provide advertising not intrusive to the user's experience. Brand loyalty can also be lacking as other current systems require software users to carry out some task such as watching an advertising video or installing other software in order to receive digital content. In addition, a software user may want new digital content but may not be willing to pay for it, which means some developers and software publishers are losing potential revenue, or worse, software users are resorting to piracy or reverse engineering software to circumvent digital content payment systems. Therefore there is a desire to monetise such users and to encourage them to purchase new digital content, which can be accomplished by offering free new digital content to them so they can effectively trial new digital content, and then enticing them to later make a purchase through, for example, a user interface component in the software or optionally through a discount on further new digital content. Current methods attempt to entice users to buy more new digital content with a "buy more" button; however, in some cases the user may not know what the new digital content will do, or may not have had the chance to trial the new digital content. Therefore there is a desire to allow the user to experience the benefit of the new digital content before enticing them to purchase more.

Furthermore, there is a desire to control digital economies, such as the digital economy of an online role playing game, to avoid resources becoming too scarce (that the game becomes too hard) or too plentiful (that the game becomes too easy or players no longer have an incentive to buy in-app purchases or premium items). There is also a desire to entice consumers to save coupons as this can increase the revenue made from cost-per-action advertising for a software publisher (who may get rewarded for consumers saving coupons in their software) as well as generate more sales for advertisers from more consumers using coupons. Current methods serve coupons when a software user is in close proximity of a near-field communication device, such as Apple Inc's "iBeacon", a Radio- Frequency Identification (RFID) chip, or another Bluetooth-powered device. These tend to distribute coupons but not digital content for consumption by software users, such as music tracks, electronic books, in-game virtual power-ups or virtual currency for games, which can be more relevant and have more potential value to a software user.

There is also a desire to effectively advertise software, apps and video games inside of software (also known as "cross-app promotion" or "cross-app advertising"), and particularly a desire to encourage a software user to install the advertised or promoted first-party or third-party software.

There is also a desire to allow seamless and easy use of coupons, offers, loyalty cards and discounts. These may be stored on a mobile device such as a mobile phone, but some mobile devices have inherent technical limitations such as a small display area, lack of support for certain rich multimedia, and some websites are not optimised for mobile use, which can making online shopping on mobile difficult and result in a poor user experience. There is also a desire to track purchases across various devices for affiliates part of an affiliate network. Current affiliate tracking technology has inherent technical limitations that does not track the case of where a software user has a coupon code and affiliate link stored on their mobile device, but the software user chooses to redeem the coupon using the stored coupon code on a different device, without using the affiliate link, and thus generally an affiliate would not be attributed for this purchase, which is not desirable for the affiliate. Summary of the Invention

According to a first aspect of the invention, there is provided a method which can run on a server involving selecting new digital content and an advertisement to transmit to a software client based on previously set algorithms and parameters and software user preference data and/or based on the previous, current or projected sales or availability levels of new digital content; transmitting the selected new digital content and the advertisement to the software client; and causing the advertisement to be displayed on the software client when the new digital content is received or installed by the software client. Optionally, the server causes the software client to display a user interface component, which upon the software user interacting with, causes the software client to download or the server to transmit, or a store, a coupon or an event ticket, loyalty points or a hyperlink to software, to a digital wallet which stores digital tokens, such as digital coupons, digital event tickets, digital loyalty cards or hyperlinks. By virtue of this, the software user does not need to exit the application, or give away sensitive personal information (such as an email address or phone number) in order to save a coupon. Another virtue of this is that if an advertisement is for software (such as a third-party video game), the software user is not required to immediately install the advertised software, but can instead perform a "deferred installation", by saving the offer for the advertised software to a virtual wallet that stores hyperlinks, and then at a more convenient time, the software user can access the digital wallet and navigate to the stored hyperlink for the advertised software in the digital wallet, in order to carry out the installation of the advertised software (e.g. from an "app store"). In addition, by not relying on email address, the coupon is more likely to be used as it will not get blocked by a spam filter or lost amongst many other emails. Combining the created positive association with an advertiser (from them providing the new digital content for the software user) with a streamlined process for saving a digital token (such as a digital coupon) should lead to an increase of coupon saves by a software user thus increasing performance of a cost-per-action revenue model and increasing likelihood of coupon redemption.

This enables a software user's experience to be enriched with new digital content that they can receive near instantaneously whilst advertising a brand or product, to therefore solve the problem of intrusive advertising. In addition, many software users may not buy new digital content or make barely any in-app purchases. Therefore, an advertiser can effectively buy new digital content which has gone unsold from a software publisher or developer in bulk at a cost potentially less than what the consumer would pay and use this for their advertising. As a result, the software publisher or developer profits from this and the software user receives new digital content for free. The advertiser could possibly bid for the new digital content in some embodiments if there is limited availability or stock levels of new digital content to be distributed in the software. In addition, in the context of a video game, by selecting new digital content to transmit based on the current stock levels or availability of the new digital content, it allows the digital economy of in-game currency and in-game resources to be controlled in such a way to maximise the revenue that the game produces. Optionally, the method further comprises causing an optionally redeemable coupon to rendered with an advertisement, or the coupon itself can be the advertisement. The term "advertisement" as used herein should be interpreted broadly and can be just a brand logo or a two-dimensional image of an offer for a product or service, an offer for a discount on a product, software (such as a video games) and so forth. By virtue of this, it allows an advertiser to benefit from direct conversions (sales) from the advertisement which they can track through a unique coupon code or unique hyperlink on the coupon when the software user redeems the coupon or clicks the hyperlink to make a purchase. Optionally, the method further comprises causing a summary of the new digital content received from an advertiser on the coupon to be displayed. By virtue of this, the advertiser can remind a software user of the previous new digital content they have received to create brand loyalty.

Optionally, the summary of the new digital content received from an advertiser further includes the total number of digital content received from the coupon's advertiser and/or the in-app currency value of the total digital content received from the coupon's advertiser and/or the total monetary donations to charity or charitable causes by the advertiser. But the term "summary" as used herein should be interpreted broadly.

Optionally, the method further comprises determining if a software user is allowed to receive new digital content based on stored parameters. By virtue of this, the advertiser can control which software users should receive new digital content, such as target audience. The term "parameters" as used herein should be interpreted broadly. Optionally, the method further comprises causing a user interface component to be output on the software client to allow the software user to purchase additional digital content when digital content is received or installed by the software client. By virtue of this, this entices the software user to buy new digital content as they have received effectively free new digital content which can be given to the software user to allow them to sample the new digital content.

Optionally, the method further comprises transmitting new digital content to the software upon the software user successfully paying for additional new digital content. By virtue of this, the game publisher or developer is paid first before unlocking or installing new digital content, which ensures some revenue.

Optionally, the method further comprises installing new digital content when the user has successfully paid for additional new digital content. By virtue of this, the software user's experience can be enhanced imminently, although the software user can defer enabling new digital content if it consumes too much time for their liking. Optionally, the term "new digital content" as used herein further includes: video game virtual currency, virtual video game items, additional video game digital content, two-dimensional and three-dimensional artwork, music, content not previously installed on the device or a code or unique identifier for unlocking digital content on the software. By virtue of this, the invention has broad application and can incorporate a range of multimedia to enhance the software user's experience.

Optionally, the user interface component further includes one or more of a button, an icon, a checkbox and a list of items, which can be rendered as two-dimensional or three-dimensional on a display attached to a software client. By virtue of this, this gives the software developer flexibility when implementing the user interface for the invention and does not restrict them to merely one component. The term "user interface component" as used herein should be interpreted broadly.

Optionally, the method further comprises delivering new digital content to the software based on the real-world currency value of new digital content received by the software user before. By virtue of this, an advertiser can control how much digital content they wish to give to one software user to spend their advertising budget effectively, assuming the advertiser gets charged every time a software user receives new digital content.

Optionally, the method further comprises selecting and transmitting new digital content to the software user based on the time spent by the software user using or executing the software and/or by how much the software user has spent in equivalent monetary value on previous new digital content. By virtue of this, the advertiser or even the software developer can give new digital content to delivery to certain types of software user, such as whether the software user is new to using the software, or is an expert at using the software, or if the software user spends a lot of money. How much the software user spends can be used by the advertiser to estimate what is the best product to advertise to the software user. For example, if the software user spends a lot of money on new digital content (such as in-app purchases), then they may be interested in more premium or expensive products. As a result, the advertiser can use these parameters for effective advertising targeting.

Optionally, the method further comprises causing an interactive interstitial advertisement to be displayed such that the software user can interact with it to reveal the new digital content being given to the software user, such that an advertiser is given more exposure time. By virtue of this, the advertiser gets more value for their advertising budget through more exposure time, which is important for consumers recalling brands at the point of making a purchase.

Optionally, the method further comprises causing a user interface component to be displayed on the software client which allows the software user to save a coupon to the software client, a server, a coupon storage service, or another software client. By virtue of this, the software user can save the coupon to another device, such as a mobile device, which they can use to easily transport the coupon to a physical store for redemption.

Optionally, the method further comprises causing a visual, aural or a physical movement notification (such as vibration) on the software client to notify the software user of receiving new digital content. By virtue of this, the software developer can provide several methods to notify the software user of receiving new digital content to adapt to the context and the application of the invention.

Optionally, the method further comprises causing the software client to visually notify the software user via a user interface component. By virtue of this, if the software user is using the software, this can make it clear to the software user they have received new digital content.

Optionally, the method further comprises causing the software client to visually notify the software user by displaying the new digital content immediately on the software client, if the new digital content can be displayed. By virtue of this, the software user can view, access or utilise the new digital content faster without having to wait. The term "immediately" as used herein means within a very short space of time after the new digital content has been installed.

Optionally, the method further comprises causing the software client to aurally notify the software user via a sound, which could include music or sound effects. By virtue of this, the software user can be notified of receiving new digital content without being visually obtrusive. For example in software, there may be a task which requires high concentration and a visual notification may be distracting.

Optionally, the method further comprises causing the software client to physically notify the software user with physical movement of the device, such as by vibration. By virtue of this, the software user can be notified of receiving new digital content discreetly and unobtrusively.

Optionally, the "specified algorithms" for selecting new digital content to transmit to a software client include selecting new digital content based on the equivalent monetary value of digital content offered by other advertisers, such as by selecting digital content with a similar or higher equivalent monetary value. By virtue of this, an advertiser can compete with other advertisers to enrich a software user's experience, to strengthen brand loyalty.

Optionally, the method further comprises selecting new digital content such that the equivalent monetary value is less than, equal to or greater than the new digital content offered by other advertisers, such that an advertiser can give new digital content competitively to create brand loyalty.

Optionally, the pre-selected algorithms for selecting digital content to transmit to a software client include selecting digital content depending on the sum and/or equivalent monetary value of digital content transmitted to the software client before. Preferably, the algorithms would include selecting to transmit new digital content of incrementing, decrementing or random equivalent monetary value compared to the equivalent monetary value of previous new digital content received by software user. By virtue of this, the advertiser can select a strategy for delivering new digital content to accommodate for their advertising campaign. For example, they may want to deliver new digital content of random value to give a surprise element to the software user to build excitement. And the advertiser can keep increasing the value of the new digital content received until the software user makes a purchase from the advertiser.

Optionally, the "specified parameters" include the minimum and maximum number of new digital content and the minimum and maximum equivalent monetary value of new digital content a software user can receive. By virtue of this, an advertiser can control how much is spent on each software user from their advertising budget. Optionally, the method further comprises selecting new digital content to deliver to the software client based on the software user's social network influence. By virtue of this, an advertiser can direct higher value new digital content to influential software users, who in turn may help significantly influence a brand's reputation if they publicly message the advertiser via social network.

Optionally, the method further comprises causing a user interface component to be displayed allowing the software user to select a store chain or franchise to be reminded at to use the coupon, such that the software user is reminded to use the coupon when they are nearby a particular store using other coupon reminder technologies or services. By virtue of this, the software user can be reminded to use the coupon which means the advertiser is more likely to have the coupon redeemed and thus will have a higher chance of making a direct sale from the advertisement. Optionally, the method further comprises receiving from the software client a message sent from the software user to the advertiser via a social network. By virtue of this, an advertiser can review what messages have been sent to them from the software user as a result of delivering new digital content to the software user. The advertiser can analyse the messages with sentiment analysis or perhaps machine learning to determine what is the overall sentiment towards the brand. In addition, the method further comprises receiving from the software client the message metadata including but not limited to date, time, the message contents and the recipient. By virtue of this, this gives an advertiser more data to analyse to make more accurate interpretations of their campaign parameters and performance. The message sent by the software user via the social network may also be visible to others who view the social network feed of the advertiser or the software user, and accordingly the message sent by the software user may act as additional publicity and/or public endorsement of the advertiser's product(s) or brand(s), etc.

Optionally, the method further comprises transmitting to the software client, one or more pre-written messages stored on the remote server causing them to be displayed on the software client's display. By virtue of this, the software user can quickly and easily send a message back to the advertiser to perhaps thank them for receiving the free new digital content because they do not have to necessarily write the message themselves. Optionally, the method further comprises providing an advertiser with means to edit and configure the pre-written message(s) via one or more user interface components. By virtue of this, an advertiser can amend the pre-written message during their advertising campaign, or perhaps further drive consumer to brand communication and experiment with different pre-written messages. In addition, optionally the method further comprises causing pre-written messages transmitted to the software client to be displayed on the same user interface as the advertisement, such that the pre-written message, an advertisement and a summary of the new digital content are displayed effectively at the same time. By virtue of this, the software user can quickly see which advertiser has given them new digital content and the software user can rapidly send a social network message directed at the advertiser (but could be posted to their own social network profile) to thank the advertiser publicly or at least, have their friends able to view their message. In addition, optionally the method further comprises causing one or more user interface components to be displayed on the software client which would enable the software user to optionally edit the pre-written message and send the message to a social network. By virtue of this, the software user is able to edit the pre-written message if they are not satisfied or happy with the message contents. The software client or server could then store the message edited by the software user to remember the software user's message so the software user does not have to keep on editing the message to send a message to the advertiser after receiving new digital content.

Optionally, the method further comprises tracking pre-written messages, where the term "tracking" as used herein should be interpreted broadly and would involve storing the messages on a non-transitory storage medium, such as computer memory or on a hard drive, or a solid state drive. By virtue of this, the advertiser could graph certain data about messages being sent to them and gain further insights, or transfer such data to external analysis software.

Optionally, the method further comprises selecting an advertisement according to how much the software user has spent on new digital content previous to the date and time of the advertisement being served. By virtue of this, as well as selecting new digital content, the advertiser can select a different advertisement based on how much the software user spends within the context of the software. For example, they may wish to advertise more expensive goods to software users who spend a lot of money within the software, and less expensive goods to software users who spend less money.

Optionally, the method further comprises causing one or more user interface components to be displayed on the software client allowing the software user to transmit preference data to the remote server. By virtue of this, a software user can send their preferences to one or more advertisers who can then serve them more relevant coupons and advertisements, which may be of more interest. In turn, this ensures a higher coupon redemption rate for advertisers if they serve more relevant coupons to target audiences. In addition, optionally the software user's preference data includes one or more of the software user's gender, age range and interests, favourite interests, favourite films, favourite video games, favourite books and favourite musical artists. By virtue of this, the advertiser can build a better profile of the software user and advertise more relevant and interesting goods to them.

Optionally, the method further comprises selecting new digital content to deliver to the software client based on the software user's social network information. Optionally, the social network information includes (but is not limited to) friend or connections lists, and profile information such as favourite interests, favourite films, favourite video games, favourite books and favourite musical artists. By virtue of this, the advertiser can further build up a profile of the software user to advertise more suitable goods to them.

According to a second aspect of the invention, there is provided a method which can run on a client involving requesting new digital content from a remote server based on previously specified algorithms and parameters and software user preference data; receiving the selected new digital content and an advertisement; and displaying the advertisement when the new digital content is received or installed. By virtue of this, configuration data such as the pre-selected algorithms or parameters can be stored on the client in addition to the server.

According to a third aspect of the invention, there is provided a method which can run on a server comprising transmitting a collection of coupon unique identifiers to a software client; causing the software client to check if a particular coupon unique identifier matches any one of the received collection of coupon unique identifiers; receiving messages from the software client for any matching coupon unique identifiers; and delivering new digital content to the software client based on which coupon unique identifiers were matched. By virtue of this, the software user can unlock or receive new digital content for saving or storing a coupon. In addition, the method may further comprise determining the nearest stores of a particular chain or franchise to the software user at the remote server executing content server software or at the software client. By virtue of this, the coupon or coupon reminder service can be configured to remind the software user when they are near a particular store nearby to use the saved coupon. This in turn, provides a higher coupon redemption rate for the advertiser.

According to a fourth aspect of the invention, there is provided a method which can be performed by a remote server comprising: determining new digital content delivery events using metadata, such as the date a software user requested or installed new digital content; computing the rank of each new digital content delivery event using a sorting or ranking algorithm which takes into account the new digital content delivery date and at least one other metric, such as the equivalent monetary value of the new digital content delivered; causing the software client to display previous and current new digital content delivery events sorted by their computed ranks; causing the software client to display advertiser information, such as brand name and description, upon the software user interacting with a displayed collection of new digital content delivery events or a displayed single new digital content delivery event; and tracking the software user viewing the advertiser information and any purchase arising directly from this, such as through coupon codes or an external hyperlink to a website with a unique identifier, which can be traced back to the software user viewing the advertiser information. By virtue of this, an advertiser can benefit from more exposure by giving higher value or more frequent new digital content to the software user. In addition, a software user can see which advertisers are being more generous to them which in turn increases brand loyalty.

Optionally, the method further comprises providing a means to let the software user receive or install new digital content after interacting with the displayed new digital content delivery events. By virtue of this, an advertiser can allow a software user to associate their brand with a positive action, such as enriching the software user's experience with new digital content. Optionally, the method further comprises collecting new digital content delivery events into a collection organised by advertiser, such that the software user can see a summary of new digital content delivery events, such as the total number of new digital content delivery or the total value of new digital content delivery received to present date. By virtue of this, this allows an advertiser to remind the software user of how much new digital content they have received from the advertiser to develop brand loyalty. Furthermore, with new digital content events can be displayed with user interface components next to them to entice the software user into making a purchase for new digital content. By virtue of this, this will increase the software owner's revenue from the software.

Optionally, the method further comprises using a display algorithm to give more on screen exposure to the advertisers who provide the highest total equivalent monetary value of new digital content to the software user, such as by assigning more pixels to display their new digital content delivery events. By virtue of this, an advertiser gets more exposure on the software client's display. As a result, this makes the brand more memorable.

According to a fifth aspect of the invention, there is provided a method for displaying in-application advertisements and enticing software users to purchase new digital content performed by a server, comprising, allowing new digital content to be purchased by a virtual currency, determining the software user's current virtual currency balance, selecting one or more new digital contents from a digital content collection that is more expensive than the software user's currency balance, incrementing the software user's current virtual currency balance such that after a configured number of increments, buying more virtual currency would enable the software user to install the selected new digital content. Once the software user has received virtual currency, the server causes the software client to display a notification that the software user has received virtual currency from an advertiser and displays the advertiser's brand name and/or logo. By virtue of this, the software user has a positive brand association with the advertiser's brand or products as they have received currency for free. By causing the software client to display an image or texture that represents the selected new digital contents, the software user is aware they can acquire the new digital content with a sufficient virtual currency balance, and by rendering a user interface component that would enable the software user to purchase the sufficient amount of virtual currency to buy the displayed new digital contents, by virtue of this the software user is enticed to buy enough virtual currency which increases a software publisher's revenue.

According to a sixth aspect of the invention, there is provided a method for displaying in-application advertisements and enticing software users to purchase new digital content performed by a software client, comprising, enabling new digital content to be purchased by a virtual currency, determining the software user's current virtual currency balance, selecting one or more new digital contents from a digital content catalogue that is more expensive than the software user's currency balance, incrementing the software user's current virtual currency balance such that after a pre-determined number of increments, buying more virtual currency would enable the software user to obtain the selected new digital content. Once the software user has received virtual currency, the software client displays a notification that the software user has received virtual currency from an advertiser and displays the advertiser's brand name and/or logo. By virtue of this, the software user has a positive brand association with the advertiser's brand as they have received currency for free. By displaying an image or texture that represents the selected new digital contents, such that the software user is aware they can acquire the new digital content with a sufficient virtual currency balance, and displaying a user interface component that would enable the software user to purchase the sufficient amount of virtual currency to buy the displayed new digital contents, by virtue of this the software user is enticed to buy enough virtual currency which increases a software publisher's revenue.

According to a seventh aspect of the invention, there is provided a method which can be performed by a remote server comprising storing and maintaining a collection of Universally Unique Identifiers (UUIDs), transmitting a collection of UUIDs to the software client which can be stored onto a non-transitory medium, receiving a request for new digital content from a software client, upon the software client receiving a UUID from a beacon nearby which matches a UUID in the transmitted collection of UUIDs, transmitting new digital content to the software client based on pre-configured parameters and causing the software client to install the received new digital content. By virtue of this, the software user can consume new digital content for software they use by being in the range of a beacon which is managed by an advertiser.

Optionally, the method further comprises the remote server causing the software client to render a brand logo along with a visual representation of the received new digital content. By virtue of this, it is clear to the software user that the brand has sponsored the new digital content, thus allowing the brand to be seen "gifting" the new digital content to the software user.

Optionally, the method further comprises new digital content including content that is beneficial to the progress of the software user in a game, such as virtual currency or a virtual game item, or virtual power-up, or an in-game benefit that the software user may otherwise have to pay for or play the game to receive. By virtue of this, a store merchant can give assistance to software users who are also video game players, and thus create a positive brand relationship.

Optionally, the method further comprises requesting and installing the new digital content at a pre-configured time period after the UUID received from a beacon matches a UUID in the received collection of UUIDs. By virtue of this, a store merchant can give a virtual gift to a player later after they have left the store, to perhaps remind them or entice them to visit again.

Optionally, the method further comprises requesting and installing the new digital content if and only if a preconfigured collection of received UUIDs from beacons on the software client exclusively match a subset of the received collection of UUIDs. By virtue of this, the merchant can only offer the virtual gift under certain conditions, such as if the software user walked into the store but did not walk to the counter to make a purchase. Optionally, the method further comprises displaying a new digital content indicator when new digital content has been received from a remote server. By virtue of this, the software user can be notified when they have received a virtual gift. Optionally, the method further comprises enabling a software user to interact with the new digital content indicator to install the new digital content. By virtue of this, the software user can opt-in as to whether they accept or reject the gift.

Optionally, the method further comprises displaying an advertiser's logo when new digital content is installed. By virtue of this, the brand is associated with the new digital content and is seen to be sponsoring the virtual gift.

Optionally, the method further comprises displaying a visual image representing a coupon or an advertisement. By virtue of this, the advertiser could offer a coupon for conversion or an additional advertisement image to raise awareness of a product.

According to an eighth aspect of the invention, there is provided a method which can be performed by a software client comprising: requesting a collection of Universally Unique Identifiers (UUIDs) from a remote server, receiving a collection of UUIDs from the remote server which can be stored onto a non-transitory medium, transmitting a request for new digital content to the remote server when the software client receives a UUID from a beacon nearby which matches a UUID in the received collection of UUIDs, receiving new digital content from the remote server based on pre-configured parameters, and installing the received new digital content. By virtue of this, the software user can consume new digital content for software they have installed by being in the vicinity of a beacon which is managed by an advertiser. According to a ninth aspect of the invention, there is provided a method which can be performed by a server comprising storing and maintaining a collection of Universally Unique Identifiers (UUIDs), assigning each UUID to an affiliate link, and optionally, a coupon code, transmitting one or more UUIDs to a software client, causing a software client to render one or more transmitted UUIDs, providing a graphical user interface on another software client (i.e. a different computing device) where a software user can enter a UUID, receiving a UUID from a software client and looking up an affiliate link (and optionally, a coupon code) from the received UUID based on the previously stored assignment of UUID to affiliate link, transmitting the looked up affiliate link (and optionally, a coupon code) to the software client that transmitted the UUID to the server and causing the software client that transmitted the UDID, to navigate to the affiliate link in web browser software. By virtue of this, a software user can store or manage a collection of affiliate links and/or coupon codes on a mobile software client such as a mobile phone (or on a remote server), and can overcome technical limitations of a small screen by entering the UDID to access any offer, sale, discount or exclusive coupon code associated with an affiliate link (without requiring the use of email address or typing in the affiliate link itself), on another software client which might have a bigger display, such as a desktop computer with a monitor attached, which would allow a better user experience. In addition, by virtue of this, an affiliate will benefit from any purchase made by the software user using the affiliate link and reduces the chance of the affiliate not being attributed for the purchase made by the software user.

Furthermore, some existing affiliate purchase tracking technologies require building a profile of the user, perhaps based on IP address, and may not be completely accurate. For example, many software users could share the same IP address, which makes it harder to correctly attribute the affiliate purchase to a single user and publisher, and whether the affiliate referral was legitimate. The software user may also change IP address between accessing an affiliate link on one device, and accessing it on another, making tracing the affiliate purchase back to a given publisher more difficult. But by virtue of this aspect of the invention, an affiliate purchase can be traced to a publisher more accurately between devices, particularly if part of the UUID for a given coupon or affiliate link is mapped to or corresponds to the publisher or the publisher's software. Optionally, the method further comprises causing the software client to automatically navigate to the affiliate link in a new window or tab in web browser software upon receiving the affiliate link from the server. By virtue of this, the affiliate link is automatically accessed, provides faster access to the online store where the affiliate link leads to.

Optionally, the method further comprises causing the software client to automatically copy the received coupon code from the server to the software client's virtual clipboard, such that the user can virtually paste it. Such automatic copying may for example be achieved using a plug-in (e.g. "ZeroClipboard") that exploits additional multimedia functionality provided by the software client. By virtue of this, the user does not need to manually copy the coupon code to the virtual clipboard, thus improving efficiency of redeeming a coupon, and making any discount related to the affiliate link more accessible.

Optionally, the method further comprises causing the software client to show the transmitted coupon code as text on the software client's display. By virtue of this, if for some reason automatically copying to the clipboard fails due to the software client's browser limitations, the software user can still redeem the coupon code via the affiliate link by perhaps highlighting the text and copying the text of the coupon code to the clipboard via the software client's operating system.

Optionally, the method further comprises causing the software client to display a graphical user interface component that would enable a software user to navigate the software client's web browser to the affiliate link received from the server. By virtue of this, if the software client's web browser has a setting or configuration that prevents the affiliate link from being automatically navigated, a software user can interact with this user interface component to cause the software client's web browser to navigate the affiliate link, thus improving usability.

According to a tenth aspect of the invention, there is provided a method which can be performed by a client comprising rendering a graphical user interface where a software user can input a Universally Unique Identifier (UUID), transmitting the UUID entered by a software user to a remote server, causing the remote server to send back, to the software client, an affiliate link (and optionally, a coupon code) from the transmitted UUID (based on the remote server's previously assignment of UUID to affiliate link), receiving a retrieved affiliate link (and optionally, a coupon code) from the remote server and following the affiliate link in web browser software. By virtue of this, a software user can enter a UUID to take advantage of a special sale, bargain or discount that is offered by an affiliate link (and optionally a coupon code), where the affiliate link may have been saved on a virtual wallet on a device with a smaller screen, that might make a purchase harder without a mobile optimised website.

Optionally, the method further comprises causing a web browser installed on the software client to navigate to the affiliate link in a new window or tab. By virtue of this, the software user can remain on the current web page to copy any coupon code (if any) to the software client's copyboard to use with the affiliate link, thus improving usability and accessibility.

Optionally, the method further comprises automatically copying the transmitted coupon code to the software client's virtual clipboard, such that the user can virtually paste it later at an online checkout or online shopping cart. By virtue of this, this further streamlines the process of accessing the affiliate link and redeeming a coupon associated with the affiliate link, by not requiring the user to manually select the coupon code and then having to carry out further actions to copy the coupon code to the software client's clipboard.

Optionally, the method further comprises displaying the transmitted coupon code on the software client, enabling the user to manually copy it to the software client's clipboard. By virtue of this, a software user has a fallback should automatically copying the coupon code to the software client's clipboard fail due to limitations of the software client's browser.

Optionally, the method further comprises rendering a graphical user interface component that would enable the software client to navigate to the transmitted retrieved affiliate link in web browser software. By virtue of this, the user has a secondary method of accessing the affiliate link, enabling them to take advantage of any deal or offer associated with affiliate link, should redirecting or opening to the affiliate link not work due to browser settings or limitations.

According to an eleventh aspect of the invention, there is a provided a computer program or set of instruction code configured to execute a method according to the first, second, third, fourth, fifth, sixth, seventh, eighth, ninth or tenth aspects. According to a twelfth aspect of the invention, there is provided a server configured to execute a method according to the first, third, fourth, fifth, seventh or ninth aspects.

According to a thirteenth aspect of the invention, there is provided a user device configured to execute a method according to the second, sixth, eighth or tenth aspects.

According to a fourteenth aspect of the invention, there is provided a telecommunications system configured to execute a method according to the first, second, third, fourth, fifth, sixth, seventh, eighth, ninth or tenth aspects.

Other aspects of the invention and optional features are as set out in the appended claims. It will be appreciated that features described in relation to the server may have corresponding features from the software client's point of view, and vice versa.

Brief Description of the Drawings

Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:

FIG. 1 is a block diagram of an example embodiment of the present invention's system architecture. FIG. 2 is a flowchart illustrating the process of delivering content to a software client.

FIGs. 3a to 3d are example screenshots of an example user interface of an example application executing on a computing device, where:

FIG. 3a shows an example of a new digital content indicator.

FIG. 3b and 3c show an example of a digital content interactive interstitial. FIG. 3d shows an example screenshot of an example user interface of an example application of when the digital content has been received. Note the layout of the user interface may vary across embodiments.

FIG. 3e shows an example user interface of an example digital wallet which allows the user to confirm if they want to save a digital coupon or advertised offer.

FIG. 4 shows an example screenshot of an example user interface of an example virtual coupon showing a software user's sponsorship history.

FIG. 5a shows an example user interface of an example application of advertiser targeting parameters where an advertiser can control digital content delivery based on how much digital content they wish to give to one software user, how much they wish to spend on digital content and how influential the software user must be on social networks. Note the layout of the user interface may vary across embodiments.

FIG. 5b shows an example user interface of an example application where an advertiser and/or developer can determine which software users are eligible for receiving digital content from an advertiser. Note the layout of the user interface may vary across embodiments.

FIG. 6 is a flowchart illustrating the process of receiving digital content after saving a coupon or advertised offer to a digital wallet.

FIG. 7 is a block diagram of an example embodiment of the present invention's system allowing a software user to acquire new digital content through redeeming a coupon to a digital wallet.

FIG. 8 shows a block diagram of an example embodiment of the present invention, which would enable a software user to obtain new digital content by messaging an advertiser on a social network. FIG. 9 shows a block diagram of an example embodiment of the present invention, which would enable a software user to obtain new digital content based on their social network influence which is based on some social network influence metrics. FIG. 10 shows a block diagram of an example embodiment of the present invention, which would enable a software user to receive coupons.

FIG. 1 1 shows an example screenshot of an example application of an example embodiment of the present invention, where the sponsoring advertisers are given more on screen exposure according to how much new digital content they have given to a software user.

FIG. 12 shows an example format of an example embodiment of the present invention in JSON of new digital content delivery containing an advertisement, coupon and a pre-written message addressed to the advertiser.

FIG. 13 shows an example database schema for storing information about a software user for an example application for an example embodiment of the present invention. How much the software user spends on new digital content, the software user's social network influence, their computed skill level of using the software and the total equivalent monetary value of new digital content they have received, is associated with each software user ID.

FIG. 14 shows an example database schema with example data for storing information about a product for an example application for an example embodiment of the present invention.

FIG. 15 shows an example database schema with example data for a digital content catalogue for an example application for an example embodiment of the present invention.

FIG. 16 is a block diagram of an example embodiment of the present invention, which would enable an advertiser to send pre-written messages to the software user, which the software user could optionally edit then send to a social network. FIG. 17 shows an example user interface of an example application of an example embodiment of the present invention, where the user has received new digital content from an advertiser.

FIG. 18 shows a sample listing of software instructions of an example application of an example embodiment of the present invention, where the application is a video game and the software instructions would allow the software to unlock a power-up (new digital content that progresses the player's game progress or assists them to meet the game objectives in some way) based on the received new digital content code.

FIG. 19 shows an example database schema with example data of an example application of an example embodiment of the present invention, where for each advertiser's advertising campaign, there exists a unique ID and associated with this ID is the software user's unique ID and the unique ID of the new digital content that the software user received as a result of the advertising campaign. This enables the content server software to track what digital content has been delivered to a software user during an advertising campaign, to make further logical decisions as to what new digital content should be selected and transmitted next.

FIG. 20 shows an example user interface of an example application of an example embodiment of the present invention, where the software is a game and the software user has completed a level in the game. Upon completion of the level, the software client displays a summary of the new digital content that was received during the course of the software user playing the level that has been completed. Next to each new digital content delivery event is a user interface component which would enable the software user to buy more of the received new digital content.

FIG. 21 shows an example user interface of an example application of an example embodiment of the present invention, where the software user has received free virtual currency from an advertiser and is enticed to buy the sufficient amount of free virtual currency to obtain the displayed selected new digital content.

FIG. 22 shows a block diagram of an example embodiment of the present invention, which would enable a software user to receive new digital content when they are in range of a beacon.

FIG. 23 shows a block diagram of an example embodiment of the present invention, to demonstrate under what circumstances a software client (a software user's device) would receive a UUID from a beacon.

FIG. 24 shows a block diagram of an example embodiment of the present invention, which would enable a software user to access an affiliate link from a desktop software client based on a code that can be viewed on a mobile software client.

FIG. 25 is a flowchart illustrating the process of a mobile software client displaying a collection of UUIDs, and a software user entering one of these UUIDs into a graphical user interface on a desktop software client to access the affiliate link (and optional coupon code).

Detailed Description of Embodiments

In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of example embodiments.

In various embodiments, the phrase "software client" refers to a physical computing device (which may, for example, incorporate a user interface and a display) executing software which can connect to a remote server. It will be appreciated that, in the present work, references to the software client performing an action may in practice involve the software or a software component on the software client performing said action. In various embodiments, a "remote server" refers to a computing device executing software which is in communication with the software client (typically, in practice, a plurality of software clients) via a network. It will be appreciated that, in the present work, references to the remote server performing an action may in practice involve the software on the remote server performing said action. It will also be appreciated that actions described as being performed by "the remote server" may in practice be distributed between a plurality of remote servers.

In various embodiments, the phrase "social network" refers to media that users interact with socially, such as, for example, Facebook, Twitter, or other like social networks.

In various embodiments, the phrase "advertiser" includes a company, brand or person wishing to advertise a product, service or develop brand recognition or consumer loyalty, a trademark, a product name, a brand name and a company's trading-as name. The term "advertiser" as used herein should be interpreted broadly. In various embodiments, the phrase "equivalent monetary value" includes the market value of the digital content in real-world currency.

In various embodiments, the phrase "digital content" includes any virtual content which can be used in software and can be accessed and stored on a non- transitory device.

In various embodiments, the phrase "new digital content" includes any digital content which may alter the software's current state. In a game for example, it could increment the player's score, or it could be a discount code on new digital content which would allow the software user to purchase new digital content at a subsidised price.

In various embodiments, the phrase "software component" includes code or software instructions that have been integrated into software as part of a library or additional feature, with a function or ability to download, unlock, install or enable digital content.

In various embodiments, the phrase "digital wallet" includes software that can store digital coupons as well as tickets, offers, business cards and loyalty cards which may be used in online commerce or in physical stores. In one embodiment, this could be a simple webpage which displays a collection of two-dimensional images (representing the stored coupons, offers and so forth) in a web browser on a software device, which is configured such that the software user interacting with the image would cause the web browser to direct the software user's web browser to an online store (if the stored entity is a coupon), or would direct the software user to an app store to install additional software, or a software upgrade. In various embodiments, the phrase "advertiser targeting parameters" includes parameters such as the amount of gifts to deliver to each software user, the maximum equivalent monetary value of digital content each software user can receive and the software user's social network influence.

In various embodiments, the phrase "social network influence" means how influential a software user is on a social network by some social network influence metrics, which includes number of friends, contacts, connections, followers, readers, subscribers and any synonym. Social network influence metrics may also include the number of publicly broadcasted messages or contents (or available to a subset of users).

In various embodiments, the phrase "skill" means how skilled the software user is within the context of using the software. For example in video game software, this could be based on the player's numerical level or rank, or in office software, how long it takes the software user to perform tasks on average. A synonym for skill could be "ability" and the wording may vary across embodiments, but would still relate to the ability of the software user to use the software, which could be based on the number of tasks, and/or certain tasks which have been achieved by the software user.

In various embodiments, the phrase "sponsorship history" or "sponsorship summary" means the summary of the new digital content received from one or more advertisers, where the advertiser is "sponsoring" the software user by giving or delivering or causing the content server software 108 to distribute new digital content to the software user.

In various embodiments, the phrase "digital content catalogue" means the new digital content available for the software and may include the virtual value or equivalent monetary value of the digital content.

In various embodiments, the phrase "advertisement" includes one or more of the advertiser's company logo, the logo of a brand that the advertiser is working for, a text slogan, an image that represents a coupon and a coupon redemption code. The term "advertisement" as used herein should be interpreted broadly.

In various embodiments, the phrase "new digital content delivery event" means a singular occurrence where new digital content has been transmitted to a software client 104 and has relevant metadata stored about this such as the date and time this occurred, the new digital content that was transmitted, the advertiser who the new digital content is from and the equivalent monetary value of the new digital content.

In various embodiments, the phrase "pre-written message" means a message which is digitally written by the advertiser which is stored by a server, ideally via a text field or text area user interface component. The message tends to be addressed to the advertiser themselves since it is to be ideally used by the software user to send a publicly readable message on a social network to the advertiser, without the software user needing to write a message anew. In addition, there may be certain phrases which the advertiser prefers for the software user to use. In various embodiments, a player is also a "software user".

In various embodiments, a "digital wallet" is software installed or executing on a software client and/or on a remote server and stores usable digital tokens which can be redeemed in an application, on a website or in the real-world, where "digital tokens" includes coupons, loyalty cards, event tickets, boarding passes or hyperlinks (represented to the user as a two-dimensional image or 3D object) and so forth in a digital format on a non-transitory computing device. A digital wallet can be executing on the same software client that is requesting new digital content, or it can be a digital wallet on a software client different to the one requesting new digital content, or the digital wallet can persist on a server. In various embodiments the digital wallet may store digital tokens "in the cloud" ie. on one or more remote servers, and may download copies of digital tokens on to a software client to allow the software user to carry the digital tokens to a real-world store to use them. Remote servers in various embodiments may be attached to tangible non-transitory hard-drives, solid state drives and tape drives, which is an example of where digital tokens might be stored before being copied. In various embodiments the expression "physical store" or "real-world store" (or such like) includes any real-world premises that the software user may enter and in which a commercial transaction may take place. Such expressions should therefore be interpreted broadly, to encompass not only shops, department stores and other retail outlets, but also shopping centres/malls, entertainment venues (e.g. cinemas, theatres and concert venues), sports venues, casinos and betting shops, tourist/visitor attractions (e.g. historic buildings, museums and galleries), food and drink vendors (e.g. restaurants, fast-food outlets, pubs, bars, cafes and coffee shops), transport providers (e.g. airports, railway stations, ports, bus stations, car hire firms, etc.), vehicles (e.g. aeroplanes, ships, buses, cars, etc.), travel agents, hotels, banks and foreign exchange bureaux, and so on.

In various embodiments, a "string" is defined in the context of computing, where it is a text consisting of characters of an arbitrary length. In various embodiments, a "beacon" is a device that transmits or broadcasts, occasionally or continuously, a message, signal, data, an identifier, using radio- frequencies, Bluetooth, WiFi and other wireless or radio technologies.

In various embodiments, a "hyperlink" is a uniform resource locator (URL) which is used to identify, locate and direct software users to, or redirect to, a software installation, a website or webpage, a mechanism to acquire additional software to the software user's device (such as a URL to software that can be installed from an "app store"). In various embodiments, an "app store" is a service or website or software that enables a software user to acquire additional software to their software device. In various embodiments, an "affiliate" is a legal entity who accrues revenue through referring customers, leads and sales to other companies via an affiliate network. In various embodiments, an "affiliate link" is a hyperlink that, if accessed, will redirect a web browser to an online store or website and is linked to an affiliate programme, where affiliates can accrue revenues by enticing software users to navigate the affiliate link In various embodiments, a "clipboard" is a memory store that temporarily stores data on a non-transitory medium and is managed by operating system software, which the user can overwrite or read on demand.

In various embodiments, a "power-up" is a virtual benefit in video game software.

In accordance with an example embodiment, FIG. 1 illustrates a block diagram of an example system architecture of a digital content distribution system 100. Content server software 108 runs on a remote server (of which there can be many distributed) with stored parameters, user preference data and sales data. A software component 106 transmits a request for new digital content 107 from within the software 105 executing on the software client 104 to a network 102 which is eventually relayed to a remote server 101 which is running content server software 108. The request for new digital content may contain an identifier for the software user, such an identification number, to identify a particular software user. For example, "user ID 01234".

In one embodiment there is an application programming interface (API) which is on the content server software 108. Typically when a software client 104 makes a request for certain information from the content server software 108, there will be a JSON (JavaScript Object Notation), XML (Extensible Markup Language) or key- value pair transmitted from the software client 104 to the remote server 101 where a string "action" will be mapped to a value that represents what information should be returned or what action should be carried out by the content server software 108

The content server software 108 processes a received request for new digital content and optionally determines if the software user is eligible to receive new digital content based on the parameters set earlier by an advertiser and software owner, such as the eligibility parameters and the advertiser targeting parameters. Once new digital content has been selected from the digital content catalogue, new digital content 103 is transmitted to a network 102 and is eventually received by a software client 104 which a software component 106 in the software 105 processes, which installs or unlocks the new digital content, such that it can be used in the software 105. In one embodiment, when the new digital content has been selected and transmitted, a record can be stored in a table in database, which maps the ID of the software user to the ID of the advertiser and also the ID of the new digital content. It will be appreciated that tables exist for an advertiser, software user and new digital content, all of which contain at least an ID attribute to uniquely identify each.

In another embodiment, the new digital content is virtual currency that can be used within the software to purchase other new digital content, such as in-game items. The software 105 selects new digital content that cannot be bought with the user's amount of virtual currency. For example, in one embodiment mappings exists of objects stored in memory of new digital content mapping to virtual currency prices stored in a map collection. The software 105 queries the map collection for any new digital content which costs more than the current virtual currency owned by the software user and selects for example, the first such object that represents the new digital content, and stores this in a variable called for example, nextNewDigitalContent. If the software user has insufficient virtual currency to buy the new digital content stored in the nextNewDigitalContent (that stores an object representing the new digtial content), then the software 108 causes the software client 104 to request more virtual currency from the remote server 101 , which involves transmitting a string "userlD" mapped to a unique identifier that identifies the software user, and a string "action" which maps to "requestCurrency".

Upon the remote server 101 receiving the request for additional virtual currency (determined by reading the string "action" mapped to "requestCurrency", the content server software 108 determines if the software user is eligible to receive more virtual currency for free based on if the software user matches an advertiser's target demographic and if the advertiser has sufficient credits or balance to afford giving the virtual currency to the player. Determining if the software user matches an advertiser's target demographic involves performing a database query on the received value of the what the string "userlD" maps to and retrieving a record for the software user, and determining based on stored demographic information of the software user (for example, age range, interests, gender). If there is a record in the database of an advertiser who has an active advertising campaign with target demographic information that matches the software user's, then the software user is considered eligible to receive more free virtual currency. The amount of virtual currency that is given to the software user is dependent on whether a purchase by the software user for additional virtual currency in combination with free virtual currency from the content server software would enable the software user to acquire new digital content. The content server software 108 then causes the remote server 101 to transmit the virtual currency to the software client 104 which the software 105 or software component 106 receives and increments the software user's virtual currency balance. For example, consider a software user who is a player having 100 coins (virtual currency) in a video game. There is an in-game item (for example, an item which would help the software user's game progression) that costs 1 ,000 coins. The video game software allows software users to buy coins in increments of 500, 1000 and 2,000 for £0.99, £1 .99 and £2.99 respectively. The video game software therefore requests additional coins from the remote server which is executing the content server software. The content server software calculates to give the player 400 coins, which in one embodiment, causes the remote server to transmit a string "coins" mapped to a value of "400" which when received by the software client, increments the coins owned by the software user by 400. The software user now has 500 coins and thus if the software user purchased 500 additional coins, they would now be able to afford the item. The software then causes a user interface to be displayed (as shown in FIG. 21 ) which states that thanks to the advertiser giving the player 400 coins, if the software user buys 500 coins, the player could afford to buy the item.

To prevent cheating and tampering, it is appreciated that the software user's virtual currency balance can be stored on the remote server 101 instead of or in addition to storing the user's virtual currency balance on the software client 104. If stored on a remote server, this would involve storing a record that maps a unique identifier representing the software user to a number representing the virtual currency balance. Broadly speaking, in one embodiment JSON (JavaScript Object Notation), XML (Extensible Markup Language) or key-value pairs over a HTTP (Hypertext Transfer Protocol) or HTTPS (Hypertext Transfer Protocol Secure) connection are used to transfer new digital content from the remote server 101 to the software client 104 via a network 102 and to request new digital content on the software client 104 from the content server software 108 which is executed by the remote server 101.

The content server software 108 associates and stores information about the software user based on the user ID, a numerical value, and is stored in a database. Therefore to retrieve information about the software user, the content server software 108 receives the software user ID and performs a database lookup query to find the relevant record associated with the software user ID, such as shown in FIG. 13. The digital content authorisation key can be used to authenticate that the new digital content did legitimately originate from the content server software 108. This can be generated by the content server software 108 by creating a hash of the new digital content to transmit to the software client and then encrypting this with a private key, which can then be decrypted by the software 105 or the software component 106 to retrieve the hash from the content server software 108. A hash is then computed by the software 105 or the software component 106 and if the computed hash matches the decrypted hash, then the software 105 or the software component 106 can proceed to install or unlock the new digital content, such as by code as shown in the example software code listing in FIG. 18.

An example request for new digital content in an example embodiment in JSON is: {"user ID":682} An example format of new digital content being served to the software client 104 from the content server software 108 in an example embodiment in JSON is shown in FIG. 12. In one embodiment, the software client parses the received JSON to extract the necessary data, such as the code for digital content. The software client will have stored a mapping of codes to functions, such that for each received digital content code, a function will be executed by the software on the software device (such as incrementing a virtual currency counter in a video game).

In one embodiment, the digital content catalogue is a database of digital content where for each new digital content there exists a code, which consists of alphanumeric and underscore characters, which can be used to cause the software 105 or software component 106 to perform certain actions relating to installing or unlocking new digital content. An example database schema is shown in FIG. 15 where the retail cost of the new digital content and the unlock code is associated with each digital content ID.

When the software component 106 processes the received new digital content, it makes it available for accessing, reading or utilising by the software user by downloading, installing or unlocking the new digital content. FIG. 2 illustrates the typical workflow of an embodiment of the present invention. In step 200 the advertiser specifies digital content delivery parameters and algorithms. In step 201 the software client makes a request to the remote server for additional digital content. In step 202 the remote server determines if the software user is eligible for additional digital content according to the specified parameters and algorithms (which may themselves be held on the remote server). If the remote server determines that the software user is eligible for the additional digital content then in step 203 the remote server transmits the digital content to the software client. In step 204 a software component on the software client installs the new digital content. Finally, at stage 205 the new digital content is available on the software client for the software user to use.

A software owner specifies a catalogue of digital content available for the software using the content server software 108 and specifies either the virtual value or equivalent monetary value of the digital content. A software owner and/or advertiser can set some eligibility parameters (FIG. 5b) to specify which software users are eligible to receive certain digital contents. An advertiser can configure the Content Server Software 108 to select and deliver digital content delivery based on the software user's social network influence by increasing the Minimum Social Network Influence as seen in FIG. 5a, which could be based on a number of metrics, such as the number of "friends" that the software user has on one or more social networks (which could be the number of connections, contacts, followers that user has). The number of friends can be a metric in determining how many people will read any publicly broadcasted messages by a user, which is why it could be a metric for determining the software user's influence. In FIG. 9, the Content Server Software 108 would make a request for the software user's influence metrics (such as number of friends and/or number of publicly broadcast messages) which would be transmitted to a network 102 and which would eventually be delivered to a social network 801. The social network would then respond perhaps by an API service which would reply to the Remote Server 101 via the network 102 with the software user's influence metrics. The Content Server Software 108 then delivers content to the remote software user by transmitting it to the software client 104 via the network 102.

The new digital content can be stored on either or both a remote server and a software client. In one embodiment, a remote server 101 could transmit a code, such as "EXTRA_LIFE", to the software client 104. When the software component receives this code, it carries out an action according to a pre-determined mapping of codes to software functions, actions or subroutines. In the case of an example game and upon processing the code "EXTRAJJFE", it would increment the number of lives the player has via a function or subroutine or call to some library.

The content server software 108 transmits the new digital content to the software client 104 where it can be installed by the software 105 or the software component 106. The software client 104 can then display a new digital content indicator, which could be (but not limited to) a button, or icon, or a window.

The user can interact with this to install or unlock the received new digital content. In one embodiment, the code received by the software client 104 could be "SWEET_ZAPPER" and upon the software 105 or software component 106 reading or processing this code, the software 105 can be pre-programmed to perform some actions or methods which would make the new digital content available. In the application of games, it could add a "sweet zapper" in-game item to the player's inventory. The advertisement is then displayed at the software client 104 optionally with a coupon. The software client 104 displays some user interface components to allow the user to save this coupon, or edit a pre-written message and send it to the advertiser. In one embodiment, editing and viewing the pre-written message can be achieved by a text area component 1005 as shown in FIG. 17. Sending the message to the advertiser via a social network can be achieved by a button component 1006 as shown in FIG. 17 which when interacted with by the user, such as by clicking or touching it, the message is sent to one or social networks via a network 103 as shown in the block diagram in FIG. 16. The software user may be required to authenticate with the external social network service before being able to send the message, so the message in that case would be sent via the network 102 from the software client 104 only after the software user has been successfully authenticated by the social network service or social network API. Upon the software user receiving new digital content, the software client 104 can display a user interface component to allow the software user to purchase more new digital content. In one embodiment, if the software user interacts with user interface component, this presents a window confirming the purchase of new digital content on the software client 104. If the user clicks "Buy", this sends an authorisation code to the content server software which attempts to charge the software user. This content server software 108 could then send a request to the software user's card provider or bank to try to initiate a transfer of funds. If successful, the content server software can transmit the new digital content that has been paid for to the software client 104.

In one embodiment, any purchase data relating to purchases made by the software are transmitted from the software client 104 to the remote server 101 via the network 102 which the content server software 108 records and stores in text files or a database on a non-transitory medium. Purchase data could include the equivalent monetary value of the new digital content bought. When the content server software 108 next selects an advertisement and digital content, it can map some parameter based on how much the software user has spent to an appropriately priced product. In one embodiment, product information is stored in a database, where each product has a unique ID number, a price and URL to the advertisement for that product. An algorithm in the form of software code executes on the content server software 108 such that the product selected to advertise is based on whether the product's price is within one british pound (though this could be any currency) of what the user has spent and is higher than what the software user has spent. Then the chosen product to advertise has its URL served (by the content server software 108) to the software client 104. The product information, such as the URL for the advertisement, can be retrieved from a database whose schema could be like in FIG.14. The software 105 or software component 106 can download an image from the received URL via the network 102 which is a URL to an image for the advertisement, as shown in FIG 12. Optionally, the hyperlink can be an image for the coupon or a hyperlink for a coupon file which can be downloaded to the software client 104 via the network 102. For example, if there were three products, product A (price £0.99), product B (price £3.99) and product C (price £5.99) and the software user had spent £2.00 on new digital content in total, then product B would be chosen to be advertised to the software user by the content server software 108. In addition, in another embodiment the content server selects new digital content based on how much the software user has spent in the same way.

In FIG. 5b, some eligibility parameters include:

Minimum Software User Usage Time - the minimum amount of total time a software user has been using, interacting or executing the software.

Maximum Software User Usage Time - the maximum amount of total time a software user has been using, interacting or executing the software. Minimum Software User Skill - the minimum amount of skill that the software user has.

Maximum Software User Skill - the maximum amount of skill that the software user has.

Minimum Software User Spend - the minimum equivalent monetary value spent by the software user in the software or equivalent monetary value spent on new digital content for the software. Maximum Software User Spend - the maximum equivalent monetary value spent by the software user in the software or equivalent monetary value spent on new digital content for the software.

An advertiser specifies some parameters in the content server software 108 such as the maximum number of new digital content and maximum equivalent monetary value of new digital content a software user can receive (FIG. 5a). In addition, an advertiser chooses an algorithm which assists with selecting which digital content to serve. The algorithms available could select digital content from the digital content catalogue of incrementing, decrementing or random equivalent monetary value.

In addition, the advertiser can control whether they deliver more digital content to the same software users (such that brand loyalty is developed) or deliver less digital content to more software users, such that the number of unique software users their advert reaches is maximised.

An algorithm for determining how much content a software user will receive could be:

T / (N - (L x S x N))

Where "x" means multiply, 7" means divide, "L" is the Loyalty Factor, "N" is the total number of software users, "T" is the total available digital content to deliver and "S" is the scale factor.

Expressed in English rather than symbols, this algorithm would be:

Total available digital content to deliver divided by (Total number of software users subtract (Loyalty factor multiplied by the scale factor multiplied by the total number of software users)

Note that an equivalent algorithm could be used here rearranged in a different order but is mathematically equivalent.

For example, suppose the digital content was an extra life and the software was a video game and the advertiser had budgeted for 10,000 extra lives and the software had 10,000 players and the loyalty factor was a number between 0 and 100 and the scale factor was 0.01 .

A loyalty factor of zero would deliver one extra life to 10,000 players:

T = 10,000, L=0, N = 10,000, S = 0.01

T / (N - (L x S x N)) 10,000, / (10,000 - (0 x 0.01 x 10,000)) =

10,000 / (10,000 - (0)) =

10,000 / 10,000 = 1 A loyalty factor of one would deliver one extra life to 10,000 players:

T=10,000, L=1 , N=10,000, S =0.01

T / (N - (L x S x N))

10,000, / (10,000 - (1 x 0.01 x 10,000)) =

10,000 / (10,000 - (100)) =

10,000 / 9,900 = 1 .0101 (to 4 decimal places)

However, since in this case an extra life is atomic and indivisible, the result of the algorithm is rounded down to the nearest integer or whole number. A loyalty factor of 50 would deliver the available digital content to 50% of players, such that two extra lives would be delivered to 5,000 players.

T = 10,000, L=50, N = 10,000, S = 0.01

T / (N - (L x S x N))

10,000 x (10,000 - (50 x 0.01 x 10,000)) =

10,000 x (10,000 - (0.5 x 10,000)) =

10,000 / (5,000) = 2

A loyalty factor of 75 would deliver the available digital content to 25% of players, such that 4 extra lives would be delivered to 2,500 players.

T = 10,000, L=50, N = 10,000, S = 0.01

T / (N - (L x S x N))

10,000 / (10,000 - (75 x 0.01 x 10,000)) =

10,000 / (10,000 - (0.75 x 10,000)) =

10,000 / (10,000 - 7,500) =

10,000 / 2,500 = 4

In this example, the loyalty factor is between 0 and 100 and the scale factor is 0.01 , but the loyalty factor could be according to a different scale, perhaps between 0 and 10, or 0 and 1 , or 1 and 10 and the scale factor could be a different number.

In addition, an advertiser can configure the Content Server Software to select digital content to deliver based on a minimum equivalent monetary value and maximum equivalent monetary value. For example, as shown in FIG. 5a, Minimum Value to Software User and Maximum Value to Software User would represent the minimum and maximum equivalent monetary value of digital content that should be selected and served. For example, if Minimum Value to Software User was 0 and the Maximum Value to Software User was 50, the digital content that would be selected for delivery would be any digital content that has negligible equivalent monetary value and perhaps has a maximum value of £50 or $50 or perhaps 50 represents 50% of what the equivalent monetary value is of the most valuable digital content.

FIG. 3a shows an example user interface of an example video game software 301. A new digital content indicator 300 is rendered in the bottom right-hand corner of the display to indicate new digital content is available after the software component 106 has processed the received new digital content.

FIG. 3b shows an example user interface of a example software where an interstitial 400 is displayed such that the contents of the digital content received is unknown to the software user. In this particular embodiment of the present invention, the brand's logo is displayed at the top to indicate a particular brand has given the software user new digital content. The software user must interact with interactive touch panel 401 in this particular embodiment to reveal what digital content was received. Upon doing so, the digital content is revealed to the user by means of a logo 305, to summarise the content, as shown in FIG. 3c. Optionally, it could be accompanied with text and sound effects to further communicate the digital content received.

FIG. 3d further reveals the digital content received. The figure illustrates an example user interface 500 in respect of digital content redemption. In an embodiment of the invention, a user could purchase more digital content of either the digital content received or different digital content by clicking or touching the "Buy more" button 306. A digital token logo, design or image 307 can be optionally displayed here with for example, a "Save to wallet" button 308, which when clicked or touched saves the coupon (or a hyperlink for an advertised offer, such as for third-party software) to a digital wallet. The text of the "Save to wallet" and "Buy more" buttons may vary, and could be icons instead. In one embodiment, it would send a JSON or XML request to the server with a string "action" mapping to a value of "downloadCoupon" (or similar wording). If the advertisement is for software, it will be appreciated the text of the "Save to wallet" button may read as "Install later" instead, or similar. This would then cause the content server software 108 to generate a digital token in JSON or XML format. Optionally the content server software 108 would then convert the JSON or XML digital token into a cryptographically signed digital token. The content server software 108 then causes the remote server 101 to transmit the coupon to the software client 104 via the network 102, which is then received by the software client 104 and is stored by the digital wallet software executing on the software client 104. In another embodiment, the software client 104 causes the content server software 108 to transmit the coupon to a third-party remote server, which then relays the transmission of the coupon to the software client 104. It is appreciated that a digital token being transmitting here could instead be an update for loyalty card points, or an event ticket or a boarding pass.

As shown in FIG. 3e, before saving a digital token to a virtual wallet, there is optionally a confirmation or verification displayed on the software client, which has various user interface components, such as "Cancel" and "Add" buttons, which when interacted with, causes the virtual wallet software executing on the software client to abandon the process of saving a digital token and proceeds with the process of saving a coupon.

Another embodiment in FIG. 17 shows a "Buy more" button 1003 underneath the image representing the new digital content received, where the software user would click this to purchase more of the same new digital content. In accordance with an example embodiment, FIG. 6 shows a flow chart illustrating the process of an example embodiment of the present invention, and FIG. 7 shows a corresponding schematic network architecture block diagram. In step 600 of FIG. 6, a consumer sees a physical or virtual advert and scans a barcode with their computing device (e.g. mobile phone / "smartphone" or tablet device, etc.). In step 601 software on the computing device translates the barcode into a hyperlink and downloads a coupon which is stored in a virtual wallet. In step 602 a software component in the software checks if the coupon exists on the computing device or in the software user's virtual wallet. In step 603, if the coupon exists in the virtual wallet, corresponding digital content is made available to the software or software client by installation or unlocking.

Thus, with reference now to FIG. 7, a camera 703 on a computing device 705 captures a barcode such as Quick Response code (QR Code) 702 on a physical advert 701. The computing device may store the image in the computing device's memory 706. The software on the computing device executes on the processor 704 which the captures and the software on the computing device recognises, scans and processes and converts into a hyperlink based on the QR code. Upon a computing device connecting to the hyperlink, a coupon is downloaded and saved to the software user's digital wallet 707, which may be stored on a remote server 101 , on the computing device 705, or on another device.

The next time the software user runs the software or if the software is running in the background, the software component 106 checks for the presence of the coupon in the digital wallet. If the coupon is present, new digital content is either downloaded or unlocked, and made available to the software 105 via the software component 106. In one embodiment the content server software 108 maintains a list of unique coupon identifiers (for example, random fixed-length alphanumeric text) which map to coupons that a software user is eligible to receive. This list is transmitted periodically (for example, every 10 seconds) from the remote server 101 to the software client 104 and processed by the software component 106. The software component 106 checks for the presence of a coupon in a digital wallet by checking the unique identifiers stored with coupons in a digital wallet matches any unique identifiers in the list of unique coupon identifiers received from the remote server 106. If there is a match, it can be determined that a particular coupon has been saved to the digital wallet and thus digital content can be either downloaded, installed or unlocked by the software component 106.

FIG. 4 shows an example virtual coupon 500 with an example layout displayed on a computing device 600, where the sponsorship history is shown on the coupon, which serves to remind the software user (who is a brand consumer) of how much digital content has been received from a particular advertiser and the total value of digital content received from a particular advertiser. Sponsorship history can be conveyed in a number of ways. For example, via the number of times digital contents have been received. Sponsorship history could also refer to sponsorship of another entity other a software user, such as charity.

In one embodiment, sponsorship history would be displayed as for example, "GIFTS RECEIVED" 502, where "GIFTS" is used instead of "digital contents", though the wording may vary in different embodiments.

The "IN-APP VALUE" field 503 on the coupon is the sum of the virtual software currency value of the total digital content received from an advertiser, though the wording may vary in different embodiments.

The "SOFTWARE" field 504 on the coupon is the name of the software in which the digital contents were received from the advertiser. The "GENEROSITY RANK" field 501 on the coupon is based on a rank computed using an algorithm that uses some metrics of the digital content given to the software user. This rank could be computed based on the total equivalent monetary value of the digital content given to a software user, where this total value is calculated for each advertiser, then they are sorted in descending order according to total equivalent monetary value of the digital content given to a software user. For example, if a BRAND A, gave £0.50 worth of digital content, BRAND B gave £0.20 worth of content and BRAND C gave £0.10 worth of digital content, then their generosity ranks would respectively be 1 st, 2nd and 3rd. This wording for "GENEROSITY RANK" may vary in different embodiments, such as "SPONSORSHIP RANK", "GENEROSITY", "SPONSOR POSITION", "RANK".

The "TOTAL TO ENTITY" field 505 on the coupon is the amount of money given to an entity by the advertiser. The wording for "TOTAL TO ENTITY" could vary if the entity that the advertiser has sponsored is different. The entity could be another organisation, a charity, or a specific cause, campaign, or something that would benefit from the advertiser's sponsorship, which may involve the advertiser giving money to that entity. For example, the wording could be "TOTAL TO CHARITY", to mean the total amount of money given to charity by the advertiser of the coupon.

To put the above information on to a digital coupon, the content server software 108 would in one embodiment perform database queries to calculate the sum of the virtual software currency value of the total digital content received from an advertiser, the total amount given to an entity and the generosity rank (assuming this is stored in a database). The content server software 108 then places this information into a coupon file, or an intermediate coupon file which would eventually be converted or used as part of a process to create a coupon that can be redeemed, such that one or more of the fields above would be displayed on the coupon when it is either printed to non-tangible mediums or displayed on a software client. The redeemable coupon can be a downloadable file, which can be downloaded by the software client 104 via the network 103. It will be appreciated that the fields may vary on coupons, but crucially there is a summary of the new digital content received by the software user from an advertiser, such that the software user is reminded of the advertiser giving them new digital content. This creates brand loyalty. Optionally, the "GENEROSITY RANK" field can derived from the total new digital content given to all software users, and the "GIFTS RECEIVED" field can be derived from the total new digital content given to all software users.

In accordance with an example embodiment, FIG. 8 shows a block diagram of an example embodiment of the present invention, which would enable a software user to obtain new digital content by messaging an advertiser on a social network. The content server software 102 executing on the remote server 101 sends a request for new social network message to a network 102 which is delivered to a social network's servers 801. The social network's server has an application programming interface (API), software executing on the server which allows external software to make requests for data for information. The social network API responds with social network messages which are sent to a network 102 and are eventually delivered to the remote server 101 , where the content server software 108 processes the messages.

When the social network messages are processed by the content server software 108, each message is examined is for unique identifiers, such as the name of software and the software user's username, user identification number, and so forth. If a message contains both a unique identifier for software and a software user, the content server software 108 checks if the software identifier matches a stored identifier (for example, on a hard drive, in a database, in a file), and checks if the unique identifier for the software user matches a stored unique identifier for a software user. If both checks are successful, the content server software 108 selects digital content to serve from the digital content catalogue. New digital content is then made available to the software 105 by transmitting the new digital content from the remote server 101 to the software client 104 which when received, is processed by the software component 106, which either downloads, applies or unlocks the new digital content for the software, such that it is available to the software user.

From within the software, a user can redeem a coupon, but also can select a singular store, store chain or franchise store to be reminded to be used at, as shown in FIG 17, which shows an example user interface 1000 of example software where a user receives new digital content. The user interface identifies the advertiser 1001 who has given the new digital content to the software user, and also an image 1002 representing the new digital content received from the advertiser. A "Buy More" button 1003 is also presented. When button 1003 is clicked, a window pops up on the user interface 1000 to confirm the software user's purchase of more digital content.

For example, some products may not have their own physical shop, but maybe sold in a multi-brand retailer like a supermarket. The software user can select a store or shopping chain or even a single branch of a shopping chain via the user interface 1000 via a component such as a combo box component 1004. The list of stores that the software user can select can be downloaded from the remote server 101 by the software 105 or the software component 106 transmitting a request for this in JSON, XML or key-value pair format, with a string "action" that maps to "getReminderStores" and an integer which represents the ID of the coupon, which when processed by the content server software 108, transmits back to the software client 104 a list of stores in JSON, XML or key-value pair format. In one embodiment, the list of stores that can be selected by the software user is stored in a table in a database, where records store an ID representing the coupon, and an ID representing the store. Another table is then used to represent the coupon, and another table is used to represent the store. Using a database query, the content server software 108 can determine what stores the software user can select when using the software 105 based on which store IDs are mapped to the received coupon ID.

As shown in FIG. 10, a request for a new coupon 903 is then initiated at the software component 106 or software 105 and sent to the remote server 101 along with the IP address of the software client 104 and/or the software user's GPS coordinates, through the network 102. When the request reaches the remote server 101 , the name of the chosen store is transmitted along with the software user's current GPS coordinates, from the content server software 108 to a third- party mapping server 1300 (FIG. 1 ), which then returns the GPS coordinates of the software user's chosen chain stores nearest to the software user's GPS coordinates. Afterwards, the GPS coordinates of the nearest stores are written by the content server software 108 into the coupons, where the coupons can be used in real-world stores and shops, or in online electronic commerce, online shops and so forth. The software client 104 renders a user interface component, such as a button, which when pressed by the software user, causes the content server software 108 to transmit the coupon (901/902) to the software client via the network 102. When the coupon is stored on the software client, its hardware or operating system can detect the software user's current location and remind the software user to use the coupon, for example, by displaying the coupon on the device display.

Global Positioning System (GPS) coordinates can be expressed in a variety of ways. In one embodiment, it can be via two values: longitude and latitude. Crucially, they serve to identify the software user's exact or approximate worldwide weather-independent location. Other systems could be used to identify the software user's exact or approximate world-wide location.

It will be appreciated that the example database schemas in FIG. 13, 14, 15 and 19 are interconnected and related, such as by primary and foreign database keys.

In accordance with an example embodiment, FIG. 1 1 shows an example user interface where advertisers are displayed and sorted by the total new digital content they have given to the software user. To cause such a display to appear, in one embodiment the software component 106 or software 105 could maintain a counter for each advertiser, where the name of each advertiser is mapped to a number representing the new total digital content received in a data collection. Each time new digital content is received from an advertiser, the entry for the advertiser is incremented by one, and if an entry does not exist for the advertiser's name, an entry is created which involves inserting a mapping of the advertiser name to the number "1 " into a data collection.

In another embodiment, the counter for each advertiser could be maintained on the remote server 101 in a table stored in a database. In such a table, there would be a column or attribute for a unique identifier for the advertiser (such a unique identification number) and there would also be a column or attribute for the number of new digital content given to the player by that advertiser. Each time the content server software 108 transmits new digital content to the software user from the remote server 101 to the software client 104, the number of the new digital content given to the player by the advertiser is incremented and stored for the advertiser in the corresponding database record. The software client 104 then requests from the remote server 101 a list of advertiser names mapped the total amount of new digital content, which can be transmitted from the remote server 101 in optionally JSON, XML or key-value pair format to the software client 104.

In an example embodiment the software client can set the width and height of the advertiser's logo according to either the mapped counter of the new digital content for the advertiser or the received mappings from the remote server 101 of advertisers to the count of new digital content transmitted. For example, if an advertiser's banner was 400 by 400 pixels, and they had delivered 40% of the total new digital content received by a software user in a session, then the advertiser's logo could be displayed at a size of 160px by 160px. It will be appreciated this is an example algorithm for determining the amount of onscreen exposure an advertiser gets.

In accordance with an example embodiment, FIG. 20 shows an example user interface which shows a summary of new digital content received by a software user from multiple advertisers. Where each advertiser is displayed by the software client 104, the new digital content delivery events are also displayed, grouped by each advertiser. As shown in FIG. 20, the new digital content delivery events can be the in-game benefits or in-game items or in-game currency received by a software user in a game in a single session, where the session is defined as the period of time between discrete levels, or discrete milestones, or discrete checkpoints in a game. In one embodiment, the new digital content delivery events can be tracked by the software 105 or software component 106 by storing mappings of advertiser names to a memory pointers of a list that represents all the new digital content given by the advertiser. Each list would then have its own set of memory pointers to objects stored in the software client's 104 memory, where each object represents the new digital content received from an advertiser. When a new digital content delivery event is displayed by the software client 104, in one embodiment it could merely display an image representing the new digital content, the name of the new digital content (for example, the name of the in-game benefit) and the amount that was received as shown in FIG. 20 (where the "x" followed by a number represents the number of the new digital content received from an advertiser). In another embodiment, the new digital content delivery events can be retrieved by the software client 104 from the remote server 101 , where the software 105 or the software component 106 sends a request to the remote server 101 via the network 102, where the request is in JSON, XML or key-value format, and where a string "action" maps to "requestDeliveryEvents", and where there is also a range of timestamps supplied (which would represent the start and end timestamps of a software user's session,) where there is also supplied a software user ID. The content server software 108 receives the request and performs a database query to retrieve the new digital content delivery events for the time period between the two received timestamps for the received software user ID, and transmits these new digital content delivery events back to the software client grouped by each advertiser (in JSON, XML or key-value format), such that the software client receives new digital content delivery events for a specific software user during a given session. Each time the content server software 108 transmits new digital content to the software client 104, the content server software 108 inserts a database record containing the ID of the software user receiving the content, the ID of the advertiser who is sponsoring the software user and a unique ID of the new digital content being transmitted.

In one embodiment, next to each new digital content delivery event displayed by the software client 104 is a user interface component, a button, which the software client 104 displays as shown in FIG. 20. When the software user clicks the button, this causes the software 105 or the software component 106 to attempt to purchase more of the received new digital content in the new digital content delivery event, which in one embodiment, involves transmitting a payment request to the remote server 101, where the content server software 108 forwards the payment request 1201 to the third-party payment server 1200 (FIG. 1 ) to verify the payment. Once payment has been verified by the third-party payment server 1200, it may transmit an authorisation code to the remote server 101 , causing it to transmit new digital content from the remote server 101 to the software client 104 via the network 102. The software client 104 receives the new digital content and the software 105 or the software component 106 installs or unlocks the new digital content.

In one embodiment, the user interface similar to the one shown in FIG. 20 could be rendered by the software client 104 in between discrete levels, milestones, checkpoints, quests or missions in a game and by virtue of this, it reminds the player of the sponsorship they have received from advertisers and may entice them to buy more new digital content. This also provides more exposure for the advertiser, and the software user is less likely to forget the brand's goodwill gesture of being seen to gift new digital content to the software user.

It will be appreciated that any user interfaces shown of embodiments are examples and the layout or user interface components used may vary across embodiments.

In accordance with an example embodiment, FIG. 22 shows a block diagram of the present invention. The remote server 101 transmits a collection of UUIDs (Universally Unique Identifiers) via a network 102 to a software client 104, which is then stored by the software 105 or software component 106. The UUID is broadcast by a beacon 1100 and is received by a software client 104 which is processed by the software 105 or software component 106. The UUID is checked against the previously received collection of UUIDs, and if there is a match, a request for new digital content is performed by the software 105 or software component 106. This request for new digital content is transmitted to the remote server 101 via a network 102 which is then processed by the content server software 108. According to pre-configured parameters, the content server software transmits new digital content back to the software client 104 via a network 102, causing the software client to display a notification that new digital content is available from an advertiser. The software 105 is configured such that when the user interacts with the notification, the new digital content is installed on the software client 104 and simultaneously, the logo of the advertiser's sponsoring the new digital content is rendered on the software client 104 with an optional further advertisement, such as an advertisement for a coupon. In addition, the software 105 is configured such that a user interface component is displayed to either allow the software user to interact with the further advertisement. In the case of a coupon advertisement, the user interface component is configured to download the coupon to a virtual wallet stored on the software client 104 or on a remote server 101.

FIG. 23 shows an example embodiment of the present invention in a merchant's physical store, where the software user's device has received a UUID from Beacon 1 but not Beacon 2, thereby providing information as to the physical path taken by the user within the store, i.e. that the user has passed close to (i.e. within range of) Beacon 1 but not Beacon 2. In an example embodiment, the content server software 108 is configured to only transmit new digital content to the software client 104 if Beacon 1 's UUID matches the received collection of UUIDs but Beacon 2's UUID does not. In this example, the store merchant can gift new digital content to the software user via the content server software 108 after the software user has entered the physical store but did not go to the store checkout to make a purchase, and thus can serve sponsored new digital content (with a coupon) after a time delay to entice the software user to return and make an in- store purchase. Thus, digital content can be issued to the software user in dependence on the specific beacon UUIDs received (or not received) by the software user's device - and thus in dependence on the physical path taken by the software user within the geographical area in which the beacons are situated.

In accordance with an example embodiment, FIG. 24 shows a block diagram of the present invention. A remote server 101 first maps UUIDs to affiliate links and coupon codes, and stores this in a table (such as in a database) on a non- transitory medium. A mobile software client 3003 sends a request via a network 102 to receive one or more UUIDs from a remote server 101. The remote server 101 receives this request and transmits a list of UUIDs to the mobile software client 3003, which it displays. A desktop software client 3000 is configured to display a graphical user interface 3002 on a large display unit 3001 , such that when a software user enters a UUID (where they may see it on their mobile software client 3003), the desktop software client 3000 transmits the UUID entered by a software user to a remote server 101 via a network 102. The remote server 101 receives the UUID input by the software user and performs a table lookup on the received UUID, and retrieves an affiliate link and coupon code stored on a non-transitory medium. The remote server 101 then transmits the affiliate link and coupon code to the desktop software client 3000 via a network 102. When the desktop software client 3000 receives the retrieved affiliate link and coupon code, the desktop software client 3000 causes a web browser running on the desktop software client 3000 to navigate to the received affiliate link in a new tab (or window) and copies the received coupon code to the virtual clipboard on the desktop software client 3000. In one embodiment, the received coupon code would be displayed on the graphical user interface 3002 (such as in a web browser) that would enable the software user to copy the coupon code or memorise it, or keep it for reference, in order to benefit from the discount afforded by entering the coupon code when at an online or physical store checkout. In another embodiment, the desktop software client 3000 displays a graphical user interface component on the graphical user interface 3002 that would enable the software user to manually navigate their web browser to the received affiliate link.

FIG. 25 is a flowchart illustrating the process of a mobile software client displaying a collection of UUIDs, and a software user entering one of these UUIDs into a graphical user interface on a desktop software client to access the affiliate link (and optional coupon code). In step 4000 a mobile software client requests a list of coupons and displays them, and also displays the UUID for each coupon. In step 4001 the remote server causes a desktop software client to display a graphical user interface, enabling a software user to enter a UUID displayed on the mobile software client. Once the software user has entered a UUID, in step 4002 the desktop software client transmits the entered UUID to the remote server. In step 4003 the remote server retrieves an affiliate link (and optional coupon code) and transmits this back to the desktop software client. In step 4004 the desktop software client receives the affiliate link (and optional coupon code) and causes a web browser to navigate to the affiliate link.