IP Library Granted Patent US 10,810,634
Granted Patent B2
US 10,810,634 · App. 13/763,333 · Granted Oct 20, 2020

Methods and apparatus for efficient execution of modules

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,810,634
App. No.
13/763,333
Granted
Oct 20, 2020
Kind
B2
Abstract

Methods and apparatus for efficient execution of modules are disclosed. An example method includes generating, by a first module, a first module identifier, the first module having been instantiated by an advertisement on a webpage, loading, by the first module, a component, communicating the module identifier to the component, determining that a second module having a second module identifier has been loaded, and, in response to determining that the second module has been loaded, communicating, by the first module, the second module identifier to the component to instruct the component to communicate with the second module.

Claims (64)

1. A method comprising:

loading a first advertisement within a webpage with a processor, the first advertisement including first instructions;

loading a first module within the webpage by executing the first instructions on the processor;

generating a first module identifier by executing the first module on the processor;

communicating the first module identifier to a datastore associated with an application message interface with the processor;

loading a toolbox by executing the first module on the processor, the first module to monitor presentation of the first advertisement with the toolbox, the first module communicating with the toolbox through the application message interface;

loading a second advertisement on the webpage with the processor, the second advertisement including second instructions;

loading a second module on the webpage by executing the second instructions on the processor;

generating a second module identifier by executing the second module on the processor;

communicating the second module identifier to the application message interface with the processor;

storing the second module identifier in the datastore associated with the application message interface with the processor;

querying the application message interface with the first module to determine availability of the second module identifier with the processor;

in response to determining the second module identifier is available, retrieving the second module identifier stored in the datastore associated with the application message interface with the first module; and

sharing the toolbox with the second module, the second module to monitor presentation of the second advertisement with the toolbox, the second module communicating with the toolbox through the application message interface, wherein the webpage is presented in an environment that prevents direct communication between the second module and the toolbox.

2. The method as defined in claim 1 , wherein the first module identifier and the second module identifier are random or pseudorandom numbers.

3. The method as defined in claim 1 , wherein at least one of the first module or the second module communicates with the toolbox by posting a message including the first module identifier or the second module identifier, respectively, to the application message interface.

4. The method as defined in claim 3 , wherein the application message interface includes a postMessage application programming interface.

5. The method as defined in claim 3 , wherein the message includes an identification of the toolbox.

6. The method as defined in claim 1 , wherein a message announcing that the second module has been loaded accompanies the second module identifier.

7. The method as defined in claim 1 , wherein the second module communicates the second module identifier to the application message interface.

8. The method as defined in claim 1 , further including loading a listener to query the application message interface to determine when another module has been loaded.

9. The method as defined in claim 1 , wherein the toolbox is a first toolbox and further including determining if a third module has communicated a third module identifier to the application message interface and determining if the third module has loaded a second toolbox.

10. The method as defined in claim 9 , further including sharing the first toolbox with the third module in response to determining that the third module has not loaded the second toolbox.

11. The method as defined in claim 10 , further including communicating from the first module to the third module through the application message interface for the third module to access the first toolbox.

12. The method as defined in claim 1 , wherein the toolbox includes a JavaScript script.

13. An apparatus comprising:

a processor;

an identification generator to generate a first module identifier after a first module has been instantiated by first instructions included in a first advertisement on a webpage;

a component loader to load a toolbox, the first module to monitor presentation of the first advertisement with the toolbox;

a communication interface to communicate the first module identifier to an application message interface for storage in a datastore associated with the application message interface and retrieval by the toolbox to instruct the toolbox to communicate with the first module;

a listener to:

query the application message interface to determine whether a second module has communicated a second module identifier to be stored in the datastore associated with the application message interface, the second module having been instantiated by second instructions included in a second advertisement on the webpage; and

in response to the second module identifier having been communicated to the application message interface, retrieve the second module identifier stored in the datastore associated with the application message interface and instruct the toolbox to communicate with the second module; and

a component availability checker to check whether the toolbox is available for use by the second module, wherein the first and second modules operate within a webpage presented in an environment that prevents direct communication between the second module and the toolbox and at least one of the identification generator, the component loader, the listener, and the component availability checker is implemented by the processor.

14. The apparatus as defined in claim 13 , wherein the first module identifier and the second module identifier are random or pseudorandom numbers.

15. The apparatus as defined in claim 13 , wherein at least one of the first module or the second module is to communicate with the toolbox by posting a message including the first module identifier or the second module identifier, respectively, to the application message interface.

16. The apparatus as defined in claim 15 , wherein the application message interface includes a postMessage application programming interface.

17. The apparatus as defined in claim 15 , wherein the message includes an identification of the toolbox.

18. A non-transitory computer readable medium comprising instructions that, when executed, cause a machine to at least:

load a first advertisement within a webpage with a processor, the first advertisement including first instructions;

load a first module within the webpage by executing the first instructions on the processor;

generate a first module identifier by executing the first module on the processor;

communicate the first module identifier to an application message interface with the processor;

load a toolbox by executing the first module on the processor, the first module to monitor presentation of the first advertisement with the toolbox, the first module communicating with the toolbox through the application message interface;

load a second advertisement on the webpage with the processor, the second advertisement including second instructions;

load a second module on the webpage by executing the second instructions on the processor;

generate a second module identifier by executing the second module on the processor;

communicate the second module identifier to the application message interface with the processor;

store the second module identifier in a datastore associated with the application message interface with the processor;

query the application message interface with the first module to determine availability of the second module identifier with the processor;

retrieve the second module identifier stored in the datastore associated with the application message interface by executing the first module on the processor when the second module identifier is available; and

share the toolbox with the second module by executing the toolbox on the processor, the second module to monitor the second advertisement with the toolbox, the second module communicating with the toolbox through the application message interface, wherein the webpage is presented in an environment that prevents direct communication between the second module and the toolbox.

19. The non-transitory computer readable medium as defined in claim 18 , wherein the first module identifier and the second module identifier are random or pseudorandom numbers.

20. The non-transitory computer readable medium as defined in claim 18 , wherein at least one of the first module or the second module communicates with the toolbox by posting a message including the first module identifier or the second module identifier, respectively, to the application message interface.

21. The method as defined in claim 5 , wherein the message includes delimiters, a message type, and a payload.

22. The method as defined in claim 1 , wherein the toolbox includes a third module.

23. The method as defined in claim 1 , wherein at least one of the first module or the second module presents at least one survey.

24. The method as defined in claim 1 , further including executing JavaScript to load at least one of the first module or the second module.

25. The method as defined in claim 1 , wherein the toolbox shared with at least one of the first and second modules implements a function utilized by the at least one of the first and second modules.

26. The apparatus as defined in claim 13 , wherein the toolbox shared with at least one of the first and second modules implements a function utilized by the at least one of the first and second modules.

27. The non-transitory computer readable medium as defined in claim 18 , wherein the toolbox shared with at least one of the first and second modules implements a function utilized by the at least one of the first and second modules.

28. The method as defined in claim 1 , wherein sharing the toolbox further includes preventing loading of a module which includes a function contained in the toolbox.

29. The apparatus as defined in claim 13 , wherein the component availability checker is further to prevent loading of a module which includes a function contained in the toolbox.

30. The non-transitory computer readable medium as defined in claim 18 , wherein the instructions, when executed, further cause the machine to prevent loading of a module which includes a function contained in the toolbox.

Assignments (9)
RELEASE (REEL 054066 / FRAME 0064) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063605/0001 →
RELEASE (REEL 053473 / FRAME 0001) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063603/0001 →
SECURITY INTEREST Recorded May 8, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: ARES CAPITAL CORPORATION
Reel/Frame 063574/0632 →
SECURITY INTEREST Recorded Apr 28, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: CITIBANK, N.A.
Reel/Frame 063561/0381 →
SECURITY AGREEMENT Recorded Jan 31, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 063560/0547 →
RELEASE (REEL 037172 / FRAME 0415) Recorded Oct 13, 2022
From: CITIBANK, N.A.
To: THE NIELSEN COMPANY (US), LLC
Reel/Frame 061750/0221 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENTS LISTED ON SCHEDULE 1 RECORDED ON 6-9-2020 PREVIOUSLY RECORDED ON REEL 053473 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SUPPLEMENTAL IP SECURITY AGREEMENT. Recorded Oct 7, 2020
From: A.C. NIELSEN (ARGENTINA) S.A.; A.C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A
Reel/Frame 054066/0064 →
SUPPLEMENTAL SECURITY AGREEMENT Recorded Jun 9, 2020
From: A. C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NIELSEN UK FINANCE I, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A.
Reel/Frame 053473/0001 →
SUPPLEMENTAL IP SECURITY AGREEMENT Recorded Nov 30, 2015
From: THE NIELSEN COMPANY ((US), LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT FOR THE FIRST LIEN SECURED PARTIES
Reel/Frame 037172/0415 →