Adobe Web SDK (alloy.js) FAQ's




Corey Spencer took to twitter the other day to answer some of the burning questions we have been receiving about the Adobe Web SDK (Alloy.js).  Below is the whole thread, complied for your reading pleasure.
Never heard of alloy ?  Be sure to check out the Adobe Summit 2020 Session: 
Q1: Do I need Launch to use alloy.js.
A1: Not as a tag manager. There is a Config ID which needs to be in the data stream (so the edge knows what rules to apply to it). That ID is created in the Launch IU but it is a new section separate from the tagging UI. 
Q2: So I will be able to deploy alloy.js anyway I want?
A2: Sure. But Launch will make it super easy to map your client-side variables to XDM. 
Q3: So the data has to be in XDM?
A3: Currently yes. But think of XDM as a format, not a standard. You can use our suggested schema in XDM or create your own. If you’re old school AA, think of it as putting the SDR in the interface. 
Q4: Does my client data layer have to be an “Adobe Data Layer”?
A4: No. The data that hits our edge currently needs to be XDM. Your data layer can match our XDM if you want to keep it super simple, or you can map your data layer into XDM client side. Launch can help with that. 
Q5: Do I have to buy Adobe Experience Platform to use the new web SDK?
A5: No. The official name is Adobe Experience Platform Web SDK. The mobile SDK is the same (change web for mobile). Despite the naming convention, neither require Adobe Experience Platform to be purchased. 
Q6: Do we need to use processing rules for AA?
A6: Maybe. AA needs evars, so the data needs to be mapped. If you use our suggested XDM schema (not required) we can automap much of that. If not, you will have to use processing rules. And yes, we’re talking about a new UI for that. 
Q7: Are you really going to allow for non-Adobe destinations?
A7: Yup. These will be new Launch features so there will be an open and extendable ecosystem of extensions to allow for lots of cool mapping & validation tool & destinations (by us and partners). 
Q8: So I don’t need to use Launch to tag using alloy.js, but I would need it for server-side feature?
A8: Yes. 
Q9: Is Launch still free?
A9: Yes. The device-side features of Launch will always be free. Heck, even if you aren’t a customer. Talk to one of our consulting partners if you want access to Launch and aren’t an Adobe customer. 
Q10: Will server side features be free?
A10: Sending data to Adobe solutions is free. Sending data to other places costs us $ so we will charge for it. The exact pricing is still being worked out, but it will be VERY competitive. Some packages may include it in the pricing. 
Q11: Can you believe this?
A11: Not really. We’ve been unbelievably lucky to work with the best team in the industry. There is legitimate craftsmanship in this. The same teams that built the current stuff came together to plot a new future and it was amazing to watch happen. 
Q12: When is it live?
A12: Using alloy.js to send data to the Adobe Experience Platform is currently in production and global. Most common solution use cases will be live in May/June. Launch server-side features for non-Adobe use cases later this year (but it’s in Alpha now). 



With regards to an Analytics implementation, it's not clear to me at the moment how to format the XDM such that an event simply increments a Page View. In AppMeasurement we had s.t() vs to explicitly set or not set the hit as a Page View, but there don't seem to be analogous functions in alloy.js.

Launch has web.webpagedetails.pageViews as a suggested XDM event type when triggering a 'Send Event' action for the AEP Web SDK - I'd assume an event with this type would automatically flag the hit as a page view? There doesn't seem to be any supporting documentation around this however.


Similarly, how do we explicitly set the type of link click (e.g. Download, Exit, Custom)? From the table here - seems that web.webInteraction.type maps to the AppMeasurement pe querystring parameter, which is populated with any of lnk_o, lnk_d,lnk_e when a relevant link is clicked, but again I can't find any explicit documentation for this.


I'd be very interested in implementing the new Web SDK for a client I'm about to start working with, but at the moment the lack of documentation would present too large a risk