This cannot be done thru a processing rule unless all the individual pieces are being sent at the same time. I would suggest using a custom variable, e.g. an array to capture all these values and then send them concatenated prior to when the user navigates away from the page or closes the browser.
Aaron,Can you clarify accessing the event detail? If I do this _satellite.track('home', {'name':'John'})console.log (event.detail.name) is invalid - no detail property.Thanks
For all our SPAs we use direct call rules which the developer would fire after the datalayer was ready. Custom events ion DTM I believe are page events such as button clicks, hash changes, etc. that trigger a rule to fire.