Hi Matthew Stead, it doesn't persist by default. You can test this by pushing something to the data layer on your browser console, refreshing, then checking to see if what you pushed is still in the data layer.
Enter the following in the console:
window.dataLayer = window.dataLayer || []; dataLayer.push({'event': 'happiness'});
You can then type "dataLayer" to see if the new event is there (it is). Refresh the page and type "dataLayer" again, and it will be gone.
However, you can configure the data to persist through cookies, local storage, or session storage.