Ask the experts: Datastreams and data prep
In this session regarding data collection for the 51ºÚÁϲ»´òìÈ Experience Cloud, our experts will provide a deeper dive into 51ºÚÁϲ»´òìÈ’s advanced data collection capabilities, including functions like data prep for data collection. At the end of this session, attendees will feel confident with the latest and most powerful features for collecting data from digital experiences.
By wreaking terror and020 Hey everybody, welcome to Experience League Live. Glad to have you with us this morning, this afternoon. Good evening, good night, wherever you’re located. Hope that you are having a great day slash morning slash whatever. So welcome again to Experience League Live, brought to you by experienceleague.adobe.com, where you will find all of your self-help materials for the Experience Cloud. So we have the documentation there, we’ve got tutorials, free courses, we’ve got the community, I’m going to talk a little bit more about the community later on, and yeah, all the good stuff there. So come on over to experienceleague.adobe.com and find the stuff to help you use your different Experience Cloud solutions, etc. So we’ve got a great show today for you, and we’re going to talk about data collection again. We’ve been doing this for the last few months, and we’re really excited. It was going to be a three-part series. We’ve had our three, and we loved it so much that we decided to keep it going one more. And so today we’re going to talk about data streams, and we’re going to talk about data prep, and all that good stuff when we’re using the Web SDK. So let’s get in, you don’t need to look at me anymore, let’s talk to our guests. So first of all, we’re going to bring in Eric Matosoff. Eric, how you doing? How you doing? Hey, hey, hey, hey, hey. Oh, there it goes. Yeah, wave to the crowd. They’re very excited to see you. Yeah, so if you guys don’t know Eric, he is a principal evangelist for analytics and data science. Did I get that right? You got it right, buddy. You got it right on. Yeah, I want to say 10 or 15 times, yeah, and then I get it right. Awesome. Okay, let’s bring in our next guest as well, and we have Jeff Chason. Jeff, how you doing? His crowd was a little bigger. I’m sorry, Eric. That crowd was a little bigger. Well deserved. I pay him more than you do. Jeff, I’m going to send you a couple of phone books, though, that you can put on your chair. Sorry. I’m sorry. Yeah. For you younger folks watching today, a phone book was, never mind, it’s a book of the internet. I’m just kidding. Okay. Yes, internet books. This is just for Doug. This is just for Doug. I want to keep it professional. Yes. Okay. Is that better? Okay. Oh, gosh. Okay, Eric, let’s see. Give us the 20 second rundown on what you do. I know we might have some new people that haven’t met you before. Sure. So Jeff and I are both on the digital experience evangelism team here at 51ºÚÁϲ»´òìÈ. And my focus is on all of our analytics and data science influence products. So that means my goal is to help make sure that our customers fully understand as much as they possibly can about 51ºÚÁϲ»´òìÈ analytics, customer journey analytics, 51ºÚÁϲ»´òìÈ target, the 51ºÚÁϲ»´òìÈ experience platform, customer data platform, real time CVP, and basically anything that has something to do with data, I love to use. And that’s why I have a smarter friend here with me to walk through some of the more complicated tasks around implementation and fun things like that data collection. Nice. Nice leading. Yeah. Jeff, did you hear that? Jeff, you said you were on Eric Talks. I just turned off my sound. Smart. Talking about. You said you were the smarter one. So I guess, yeah. I don’t live up to the hype. Thank you, Eric, for that nod. My name is Jeff Chason. I’m an evangelist. And I do similar things to Eric. I spend most of my days staring at errors in DevTools consoles. I lean toward more towards the deeper end of the nerd pool to help customers struggle who are struggling with implementations and dealing with mostly with getting data in to 51ºÚÁϲ»´òìÈ experience platform and 51ºÚÁϲ»´òìÈ experience cloud solutions and then getting data out. So I focus a lot on where the 51ºÚÁϲ»´òìÈ systems integrate with other systems that our customers use from other vendors or, you know, homegrown systems, home built systems is sort of where I end up most of the time. But happy to be here. And thanks for those who decided to spend some time with us. Hope you find it valuable. Yeah. Awesome. Cool. Well, we’re just going to spend about one or two more minutes. I have a quick question for you guys so our folks can get to know you a little bit and then we’ll dive right in. So the question of the day is we didn’t warn you too much on this one, Jeff. Eric, I think we’ve talked about this a little bit, but give me one or two of your favorite comedy shows. Could be sitcom, could be any other comedy series. You know, let’s start. I was going to say on TV, but I guess it could be streaming as well. So give us your top couple of comedy shows. Eric, we’ll start with you. Okay. Well, so comedy wise is definitely a big, big heaping of the shows I watch through the screen in my living room. And so to give you one or two, I would say, you know, I just recently finished watching for the very first time 30 Rock, which I absolutely love. I think it’s one of the greatest sitcoms of all time. It’s too funny. So one or two. So I’ll also, in addition to 30 Rock, I’ll say South Park, Arrested Development, Seinfeld, Schitt’s Creek, Rick and Morty. Just those one or two are in my top two. Yeah, those are all in your top two. Yeah. Okay. Luckily my job doesn’t require having to do anything with numbers or analytics. No, yeah. Analytics. There’s nothing about numbers. Yeah. Awesome. Okay. No, I definitely have some of those in my top ones as well. Jeff, what about you? What’s your thought? You got any top shows to add to that list that Eric had? Well, I would definitely plus one, Anything with Tina Fey. So Eric’s 30 Rock, Anything with Tina Fey is just… I just watched the only couple of seasons of a show called Great News, which I thought was very funny. Cool. So big fan, good call out for 30 Rock. Throwback old school, I’m a huge George Carlin fan, really big George Carlin fan. Think he’s just for comedians. I think there are a lot of comedians that look up to him and talk about him and what he did and stuff like Blazing Trowel. So it’s cool. But also definitely have to mention big Chandler Bing fan for comedy timing. I don’t know if you saw their Friends reunion show at the end, they’re all like, let’s go get coffee. And he just at this perfect beat of timing, he’s like, where? Yeah. If you’re a Friends fan, you know that all their coffee was in one place on one couch for the most part. I think Friends is a little kitschy, sort of campy. But still fun. Just a lot of fun, very entertaining. Steinfeld, I obviously watched everything, all them. But the good news is there’s lots of good comedy out there. Yeah, that’s fun. Because we could do some comedy for sure. Yes, for sure. Oh, thanks guys. Cool, cool, cool. I’m going to take this as an opportunity to tell people in the YouTube chat to tell us what we missed. Yeah, that’s a great one. Yeah, that’s a good call out. So chat. So you guys, please do. Yeah, tell us what we missed there for the fun comedy shows there in the chat. And by all means, as we get going here, which we’re going to do now, please put your questions in the chat. We’d love to have these guys answer them live for you on the show today. So let us know what you’re wondering about when it comes to data collection and data streams and data prep and data everything. So with that, I think, Eric, let’s go to you first. We’re going to, I don’t know if you want to share right away, I can put that up. But let’s really kind of talk about how, well, you’ve kind of framed this whole thing for us when we’re talking about the Web SDK. And some people might have just kind of only heard of the West, the Web SDK, or maybe you guys haven’t or you’re brand new or whatever. Tell us what this really kind of means when we start talking about data streams and data prep. For sure. Yeah. So. Tell me what you want to share. Yeah. OK. Yeah. So we can have a conversation and add to it and then we can jump into product. And as you know, some quality comedies continue to roll in through the chat. Yeah, exactly. Yeah. So if you’ve joined us on our Experience League live journey over the past couple of months, you’ll have recognized that we’ve kind of focused on everything 51ºÚÁϲ»´òìÈ data collection. We started with talking about the Experience Platform Web SDK, which is the latest and greatest and best way to pass data from Web clients into 51ºÚÁϲ»´òìÈ products. In addition to that, alongside the Web SDK is a mobile SDK. There’s also a server to server edge network API that does the exact same thing. All three, the Web SDK, mobile SDK and the Edge Network Server API all pass data into what we call a data stream. And the data stream is a globally distributed edge network that no matter where your customers or visitors or prospects or whoever are visiting your digital property, the data is streamed into 51ºÚÁϲ»´òìÈ products as fast as possible for your analysis and personalization needs. Now the way that that’s done, and I’ll show you in just a couple minutes, is it’s passed into what we call a data stream. Now a data stream is unique to your specific company. It’s not like, you know, Jeff.com is going to use the same data stream that I’m using over on Eric.com, which is going to be a different data stream than Doug is using on Doug.com, which is the best website of the three, if I’ll say so. But once that data is like a hit or an event of data is passed into a data stream, then the data stream is really what we’re going to be digging into today. The opportunities for how you can take that data and either just instantly pass it off to 51ºÚÁϲ»´òìÈ products like 51ºÚÁϲ»´òìÈ analytics or 51ºÚÁϲ»´òìÈ target or 51ºÚÁϲ»´òìÈ experience platform, 51ºÚÁϲ»´òìÈ audience manager, et cetera, or pass it to non 51ºÚÁϲ»´òìÈ products through our event forwarding product feature as well, where you can send it to non 51ºÚÁϲ»´òìÈ destinations as well through like a Facebook conversion API or Google conversion API, et cetera. Now there’s a piece in between the data collection in the client and the forwarding that data from the data stream to those destinations, the 51ºÚÁϲ»´òìÈ and non 51ºÚÁϲ»´òìÈ destinations, where you may want to massage the data a little bit. So that massaging is what we’re going to focus a little bit on today in terms of the data prep for data collection. It’s a very simple concept. We’re prepping the data for better data collection. And so we can either just simply copy values from one variable or one field to another, or we can concatenate, we can apply substrings, we can do all sorts of neat little things that happens in milliseconds before the data ends up going to the final destination of 51ºÚÁϲ»´òìÈ analytics experience platform, 51ºÚÁϲ»´òìÈ target, et cetera. And so can I jump in real quick? Yeah, please go. So, yeah, and we’ve had somebody kind of already mentioned on the chat the mobile SDK, and you know, I’m not sure how deep we’re going to get into the mobile SDK today, but probably kind of focus again on the data prep for web SDK. Does the, just kind of as a little departure for a second, does the mobile SDK also use data streams and would it use the same, would a person, if they’re doing both, would they kind of merge the streams, don’t cross the streams or do cross the streams? Yeah, in this world, we actually can cross the streams. So we have an extension for the 51ºÚÁϲ»´òìÈ mobile SDK that allows for the methods that you’re using to pass data into 51ºÚÁϲ»´òìÈ today, track state, track action, to instead send data to data streams. And Jeff knows way more about this than I do, but it gives you the opportunity to say, you know what, I’m going to pass my data using XDM or elsewhere to pass that data off to 51ºÚÁϲ»´òìÈ systems through a data stream. Jeff, I don’t know if there’s anything you want to add there. Yeah, I mean, just sort of, yeah, totally agree. I would just maybe a different, you know, slightly different perspective on the same topic, a little bit higher or sort of a higher level if you’re coming at this like fresh. There’s many ways to get data to 51ºÚÁϲ»´òìÈ and there, once you get the data to 51ºÚÁϲ»´òìÈ, obviously we have a large number of systems and features that can leverage that data and, you know, require different things, different fields, right? We have EVARS and props and events for people that are using analytics. We have parameters and things for people that are testing with target. We have journeys that people are trying to trigger, et cetera. We have event forwarding as part of the real-time CDP collection, excuse me, connections package or the other real-time customer data platform packages. So obviously lots of data coming in for lots of different purposes and systems. And then of course, almost always, because we know that customers don’t a hundred percent rely on 51ºÚÁϲ»´òìÈ stuff for everything they do with marketing and advertising. We also get it out, right? We take that data out and send it to different systems. So I think in terms of getting data in, as you said, Eric, you know, the mobile SDK for mobile apps, whether it’s Android or iOS, a variety of SDKs to instrument an application to send us whatever data you need, either directly to the solutions, like if you’re still sending data directly analytics or to the edge, which we’re going to talk about a little bit today in more detail. You also have the web SDK, the website for web apps, and we also have the 51ºÚÁϲ»´òìÈ experience edge network APIs. So if you have an application that run on your servers that you want to send data directly to the edge through those APIs, that’s another way. So mobile SDK, web SDK, and the APIs really three ways to get data to what we call our edge network. Okay, cool. Yeah. If you want to switch my sharing on over, I can, there was a request for a diagram and I think it’s kind of impossible to talk about all of our data collection options without kind of showing this diagram. It’s really focused on the capabilities for sending data to non 51ºÚÁϲ»´òìÈ systems through our product feature called event forwarding, which is available through that real time CDP connections product that Jeff mentioned earlier. Which we talked about last week, or last month. We sure did. We sure did. Was that last week or last month? Last month, sorry. Yeah. I guess it depends on when you’re streaming it. Yeah. So on the left here, what we’ve got are the web SDK, the mobile SDK, and that server API that we were talking about. All three of them have I directional arrows. Let me zoom in there for you if it’ll let me. So, and that are passing data to this edge network. Again, this is where those data streams that I’ll be walking through in a second are set up and managed and organized. And then that data stream says, okay, you know, I want to send data to 51ºÚÁϲ»´òìÈ experience platform or to 51ºÚÁϲ»´òìÈ analytics or 51ºÚÁϲ»´òìÈ target to audience manager, et cetera. And if I have event forwarding, then I can also pass it to non 51ºÚÁϲ»´òìÈ systems as well. Keep in mind, I mentioned this before. These arrows are bi-directional for a reason. Products like 51ºÚÁϲ»´òìÈ target and audience manager are going to pass information back and, and our real time CDP are going to pass information back to the data stream in order to help for personalization on the web or in the mobile app or to inform the API. And so it’s really key to recognize that not only are we able to send data to a data stream and that gets dispersed to applications within the 51ºÚÁϲ»´òìÈ stack and outside, but those 51ºÚÁϲ»´òìÈ products can also respond with useful information that can help change the content on the page. Okay. So with that all out of the way, unless you’ve got any other questions, just the actual requests to throw that link in the chat. So they can take a look at that. No, I’m sorry. The the fun thing about YouTube chat is that we can’t put links in there. So we’ll, we’ll add it in to a comment after after the session goes live and we’ll tweet it and put it on experience league and we’ll write it from a, from a airplane as well. It’s a lengthy URL for that, but I think it’s worth it. Okay. Cool. Okay. So let’s actually talk a little product. Let’s jump in. What I’ve done is I’ve, I’ve just created a brand new 51ºÚÁϲ»´òìÈ tags property. As you can see, it was created today, just a little under an hour ago. I’ve done literally nothing in this UI. I don’t have any rules. I don’t have any data elements. And the only extension that I have is the core extension that comes by default within the within a tags property. But what I want to do is I want to, you know, when we’re thinking about this, I want to create a data stream so I can decide, Hey, where am I going to actually send data to? And so all I need to do is click my little hamburger and I can go over to data streams and I’m going to create a brand new data stream. We’ll call it Dougie fresh. Nice. And the only thing we need to do with this data stream is pick what the event schema is that we want to use in order to basically say, okay, this is how we expect the data to be received by our data stream. Now, if you’re sending data into 51ºÚÁϲ»´òìÈ analytics through a data stream, then there’s one really important set of data that you want to incorporate. It’s within the 51ºÚÁϲ»´òìÈ analytics experience event template field group. What it allows you to do is for 51ºÚÁϲ»´òìÈ analytics, you can specify, okay, I want to send data to specific events or to Ebars and props and fun things like that. And so what I’m going to do is I’m going to select this particular schema so that I have that option within my events came up for website. That’s what it was. Right. Yeah. So that I have the opportunity to send data to Ebars, to props, to events and other fun things. Okay. We’ll take a look at our advanced options when setting up a data stream. There’s not a ton, but they’re worth reviewing. First of all, what type of geo location granularity do we want to be automatically looked up based on the IP address of the end user? And so I’ll go ahead and I’ll say, okay, city sounds great. We talked a little bit about this before, but you also have the opportunity to set your own first party device ID rather than using an 51ºÚÁϲ»´òìÈ created experience cloud ID. Now I’m not going to actually go through the process of doing that today, but what that allows you to do is have a stickier first party cookie ID. That’s defining an anonymous identifier for you as well. I was hoping there would be a little link for documentation there that we could share, but we’ll share some documentation afterwards. Okay. So moving right along, let’s actually save that. And so very, very simply, we’ve got our data stream set up, but it’s not actually sending data to anywhere. So how do we send data anywhere? Well, we can go ahead and add some services. The first service that we’ll add is my one true love in addition to my wife and my kids is 51ºÚÁϲ»´òìÈ analytics. So all we need to do is say, okay, we’re going to send data to 51ºÚÁϲ»´òìÈ analytics and we’re going to add in our report suite ID. We’ll call it the Dougie fresh report suite. And if we needed to, we could add multiple report suites, as many as we want to keep in mind, this is basically the same as multi suite tagging on a website. So it’d be like, maybe this is the global, and then this is the Dougie. I can’t type today, Dougie fresh microsite, et cetera. And obviously these aren’t real report suites, but I think it’ll be helpful just as an example. So you wouldn’t want to use the real report suite ID, not a made up one that makes fun of Doug on occasion. All right. So we would go ahead and hit save. And just like that, any data that is sent to data streams will to this data stream will automatically be forwarded to 51ºÚÁϲ»´òìÈ analytics. Now I also will want to add 51ºÚÁϲ»´òìÈ target. So all I need to do to add 51ºÚÁϲ»´òìÈ target is just add that service added in and bingo bango, I’ve got 51ºÚÁϲ»´òìÈ target on my site. Now there’s some other fun options there in terms of your settings. So if you want just a specific property or environment to be utilized for 51ºÚÁϲ»´òìÈ target in terms of governance, which I would highly recommend, then that’s where you can define that right there as well. Okay. Moving right along the other, there are three other things to consider. Number one, the easiest is 51ºÚÁϲ»´òìÈ audience manager. That’s our DMP or data management platform. And we can, again, it’s just a single click and it’s enabled. Next up, we’ve got 51ºÚÁϲ»´òìÈ experience platform. Now this is where things get a little more fun. We’ve got again, kind of similar to 51ºÚÁϲ»´òìÈ analytics. We have to decide where do we want to send this data to. And so we have to choose where in experience platform are we actually going to send the data that is passed to this data stream. And so we could of course choose a data set that is utilizing the same schema as we define within the data stream, which makes perfect sense. So I’ll go ahead and do that. Then if you’re utilizing 51ºÚÁϲ»´òìÈ journey optimizer, you can choose to turn on offer decisioning and personalization destinations for real-time CDP as well. So we’ll just turn everything on just for fun. Go ahead and click save. And then last but absolutely not least is our ability to send data to the event forwarding product feature where if we wanted to, like I mentioned up in here, if we also want to forward that data to non 51ºÚÁϲ»´òìÈ destinations, this is where we define again, if your company has access to it, the property within event forwarding that we want to send data to. And I can send it right on over into Jeff’s real-time CDP connections property, and we’ll send it to production or development, et cetera. And just like that again, now we’ve got server side again, like all of this stuff, everything over here in red and in black is happening server side. Only the stuff here in like gray slash white is happening client side. So it’s basically a hub. It’s basically a hub. The data stream is kind of a hub and traffic cop as well, kind of sending this data to different areas. Exactly right. Exactly right. Yeah, so Doug, that’s actually a really, really good analogy because one of the main components of 51ºÚÁϲ»´òìÈ experience platform edge network or the edge, as we sometimes say, one of the main jobs of that is a super industrial strength plus plus routing mechanism. It’s a gateway and a router and a bunch of other functionality. Part of when we’re sending data, like Eric is illustrating, we’re turning on these different services in our data stream. So we’re streaming data into the edge and then we’re telling our data stream setting, just like your example, the hub, so to speak, where to route that information. Yep. Yeah. Cool. Yep. Love it. And maybe just kind of to steer you in a direction here at some point, I don’t mean to derail you, but if you guys kind of want to, we’ve had a couple of questions come in about like the schema, right? So we have one that says, you know, what happens if the stuff that comes in, it doesn’t match the schema exactly. And then another one, which is what populates the event schema values. So I’m not sure, Rajiv, what you mean there. Maybe you guys can maybe just kind of show that in part of the demo of kind of where this, how this kind of integrates then with the schema and stuff like that. Yeah. That’s a great, great set of questions to be thinking about. First of all, for both 51ºÚÁϲ»´òìÈ analytics and 51ºÚÁϲ»´òìÈ target, we basically have a mapping between the fields that live within that schema. We call those fields XDM fields or experience data model fields, and they’re going to automatically be linked to specific analytics focused metrics and dimensions and fields. So for example, if let’s see if we can find like purchases, if you want to increase your orders metric within 51ºÚÁϲ»´òìÈ analytics, then you would want to pass a value into commerce.purchases.value. Now in that schema that I showed earlier, well, I really kind of made it large, didn’t I here, let me clean it up a little bit. So we can say commerce.purchases.value.
Then if we set a value in that specific field, then that’ll automatically, as I mentioned, get passed on over into the orders metric. Now we’ve got a ton of these for 51ºÚÁϲ»´òìÈ analytics. And what you’ll notice is that we also, which I mentioned, have those custom dimensions for EVARs, for list props, for list variables, for props, for events as well. And so even something simple like marketing.tracking code, again, you can pass it into the field through the XDM object or another way, which I’ll show you in just a minute, and that’ll automatically get mapped to the right place within 51ºÚÁϲ»´òìÈ analytics. Now for target, we basically have similar concepts in that there are ways to pass in data that result in the target visitor profile attributes and fun things like that, which I think was one of the questions as well. Yeah, where we would see that. Yeah. So let’s talk a little bit about a couple of ways to map data to those XDM fields that we’re just looking at. So having it automatically mapped to an 51ºÚÁϲ»´òìÈ analytics XDM field or having it aligned with a friendly XDM field. So there’s really kind of two ways to do that. One way would be in the client, so in the web SDK or in the mobile SDK or in the API and saying this XDM field should equal this value. And if you want to see specific details on how to do that, I would definitely recommend reviewing the one of the first sessions of this series, which really dug, dug, dug deep into the web SDK. That would be my recommendation. But today I want to focus on the second way to do that, which is to have that mapping done server side. And so that’s going to be the real fun for the day is we have the opportunity to create what we call a mapping, which is where we deployed that concept of prepping the data for data collection. In that, for example, we can say, you know what? We want to map a specific data layer and just simply pass that data layer. I’ve actually got a nice friendly data layer right here that is like, has all sorts of interesting values in it. And so I can say, this is what the data layer on my actual website looks like. And I can pass just the entire data layer into my data stream. And then I can map those specific items again, server side, or I can say data.commerce.order, or I’m sorry, data.commerce.purchase is where it lives within my data layer. And I can say, I want to map that data layer element to what we were looking at earlier, which is commerce.purchases.value. And now every single time that I pass in my data layer to my data stream, and there’s a value in my data layer for data.commerce.purchase, that will get automatically copied into this commerce.purchases.value. And then what happens is that commerce.purchases.value for 51ºÚÁϲ»´òìÈ Analytics will also map it to the orders metric like we’re looking at earlier. Now the really nice thing about copying it into XDM is that in the experience platform data set, it’ll be in this nice, friendly, organized schema as well. And I can do this for as many mappings as I want to. I can also use this import mapping concept to basically copy and paste mappings from other data streams if I so choose. But I can also get really, really kind of nerdy and have some fun with calculated fields. And so we have a whole slew of ways to apply some translation to, again, the data that’s coming in to its final destination in 51ºÚÁϲ»´òìÈ products and in event forwarding. And so maybe I just want to say, you know what, I want to take, I want to concatenate a couple of fields, then I have that opportunity to say, you know what, I’m going to concatenate, looks like I need to zoom out to see my little helper here. So I can concatenate Doug. And I can also concatenate that with my refer URL, which of course would make a ton of sense for me to do. Now when I do that, I can then choose to map that to, again, any field that lives within my schema. So maybe I’m going to merge that to or map that to my page type, for example. And so now I can see this kind of calculated field on the fly without changing any JavaScript on the page or any updates in my tag manager is automatically aligned with this new field. So when I click save, if I were to receive a data stream with those items, oh, it’s mad at me for something. Oh, it’s saying there are some required things to map based on my schema. Trust me, I don’t feel like going through that full process, you have to take my word for it, that we could add in any of those items that we need to as well. Okay, let’s see. Is there anything in terms of the individual pieces, Jeff, that you’d like me to cover before you jump in with your… Oh, yeah, there is of course one last piece. It’s actually aligning that data stream to my tags property. Yeah, we still need to connect that with your actual site. Exactly right. So on your site, so this is that brand new 51ºÚÁϲ»´òìÈ tags property that I created now an hour and nine minutes ago. And there’s a couple of things to do. First of all, I’ve got my environments. And so I could click my production environment, and I can copy and paste that code right into the head of my website. And more interestingly, is actually adding the rules to it. So I can go through and I want to add in my web SDK and install it. And this is where we get to link my tags property to the data stream that we’re just looking at. So that data stream is in Big House. And I called it Dougie Fresh. Now I can do the same for all environments. Or if I wanted to, I can use different data streams for each of my 51ºÚÁϲ»´òìÈ tags environments. That would be really useful so that you’re not sending like a test data or staging data into a production report suite is the reason that you would want to do that. But that’s where the linking happens. That’s where the magic is that links what’s happening in the web SDK, or it’s the same process in the mobile SDK, or in the server or one, the server, the edge network server API, you would just need the data stream ID is mapped to this eye in the sky, in terms of the traffic cop that’s pushing data to all these different applications. Nice. Let’s see, I’m trying to see if there’s anything else that’s fun in here worth reviewing. And I don’t think there is. But I can save that to my library, and I could build it. And all I would need to do is trigger a rule that then sends data to this web SDK. And when I do, let’s actually do that, because what we can do is I’ll show you exactly where we want to pass in if we so chose the data layer object. And so remember earlier when we’re mapping the data layer that we’re looking at to page type or to the unknown was it was the purchase information to the XDM field. This right here is in my event where I would pass in the data layer so that server side it’s mapped to the specifications within the data stream. So if for example, I have a data element that is also creatively called data layer, I can pass that in. Similarly, if I had a unique XDM, maybe a page view XDM object, I could pass that in. And so this would be just defined client side. And then data layer would go from there as well. And that’s really all there is to it. Doug, I see some questions come in. Any ones that you would want to share? Sorry, Eric, one question that’s right on topic on your screen, the screen you have up right now. So Kyle was asking in terms of a data layer, and XDM data via tags, and web SDK. And first, just to address I’ve been, you know, hitting the chat pod as much as I can. Some folks have some very, very specific questions and like, you know, can we see the specific use cases and they’re great questions. Definitely worthwhile, but would probably put us way into the, you know, the third or fourth hour of this session. So with that in mind, just on this last question from Kyle about the data layer that you’re working with in a site or a web app versus XDM data, where you showed Eric the send event action for the web SDK extension. And web SDK extension can send XDM data as Eric showed, and I’ll show in a few minutes with a little bit of a demo. But if you have a data layer on your site, whether that’s, you know, you’re using the 51ºÚÁϲ»´òìÈ Client data layer extension, whether you have an on page extension, or the you sorry, an on page data layer as a global object, or whether you’re using a data layer format from another vendor, like Google’s data layer or Telium’s data layer. The data field that you see on the screen that Eric is showing where you see the percent sign data layer percent sign. So for those that don’t know, the percent sign syntax is sort of like a token, basically a replacement token. And that means that that’s a data element in our system. So if you see those percent signs, and you’re not familiar with that, that just means that there is a data element called data layer that supplies some information to this field. And so when this event executes, whatever data is in that data layer data element will be sent on the data key of the event object. The XDM data that we have the page view XDM is also a data element, also just data, but happens to be in XDM format. And really, all that means is we’re saying that this data is in a format that matches our schema. And so there were some questions about what happens if it doesn’t match and what do we do and does the system break down or what happens. But the first thing to address is that we have options, right? We have XDM data as an option, and we have a regular data fields and option to send a regular JavaScript object. And that’s really a convenience feature. But it’s also in terms of what happens downstream, so to speak. In other words, this whole process of data collection, and sending data up to experience edge to be leveraged by some solution or application, whether it’s a platform application, like you’re going to be running journeys, customer journeys that you want to attempt to optimize, or whether you’re sending it to event forwarding to be sent out to the Facebook API or some backend data warehouse. That will help determine which of these fields to use. But again, we know that not every web analytics team and every team that operates in a tag management system, we know that not all of them have the ability to just crack open your content management system and make changes to the page markup whenever you want, right? There’s a front end development lifecycle and a release process that the front end teams have to follow. If you don’t want to be sort of prisoner to that, we want to have some flexibility. And so part of that flexibility is you can send us regular JavaScript objects in the data field, or you can send us XDM formatted data to match a schema in the XDM data field. But part of that decision is convenience, and part of it is, what am I going to do with it downstream? The beauty is, as a convenience, you can send us regular old data from your data layer as is in that data field, and then use the mapper to adjust it to whatever format you need. You can decorate it, transform it, and put it in the shape or format or syntax that it needs to be in for the system that’s going to receive it. And I’ll hopefully have some time to show you that quickly on the screen. Yeah, we’re going to need to move on to that probably because we’re running through this is great information, and we’re going to run out of time here before too long. Yeah. Where do we… Yeah, there’s a lot to it for sure. Yeah. Let’s see. Can you finish your story at all there? You know what? I think that’s my full story. Let’s migrate on over to Jeff, and he can walk us through how exactly he can… All this fun stuff can be tied together. Great. Jeff, do you want… Sorry, I’m just typing an answer in the chat here before we switch gears. So Fernanda had a question about the mobile services and mobile apps. And if you missed it here, let me share my screen, and maybe showing is better than telling. Okay. Yeah, very… I’ve got you, Jeff. There you go. So you still absolutely can create mobile app specific properties within 51ºÚÁϲ»´òìÈ tags. And continue to use the 51ºÚÁϲ»´òìÈ Mobile SDK the way that you always have. What you’ve got in terms of capabilities with mobile specific properties are… And again, I’m going to pick on Jeff here to see what he’s got set up, is you’ve got kind of a similar UI in terms of being able to decide rules and looking at the track states and the track actions that are coming from your mobile SDK, being able to route those, again, based on conditional settings that then send it off to 51ºÚÁϲ»´òìÈ applications or beyond. That’s probably the fastest way anyone has ever demoed our mobile SDK. Yeah. Got it. Yeah, Jeff, do you have… All right, should we switch on over to Jeff? Yeah, you got a couple of things that you want to show us before we wrap up today, Jeff? Sure. While you’re getting ready, I’m just going to also let everybody know that after this, after we’re done here in a few minutes, we’re going to start… We’re going to continue this conversation. These are all great questions. We’re going to give you a chance to… If we missed your question somehow, or if you’ve got other ones, we’re going to shift this over to the Experience League community. And we’re going to start that at the top of the hour, in like 12 minutes. Right after we’re done with this, there’s a link down below, as people always do that. There’s a link down in the description on YouTube that’ll point to the community, what we call a coffee break. A coffee talk. Okay, it’s coffee break. But we’re going to continue the discussion there and keep going there. Let me switch over to Jeff. And we’ll be joined by a Product Manager on the Data Collection team. Yeah. Jeff, we’re in the matrix on your machine. So we can… I was waiting for the switch, the cover. We’re on there now. We’re in it. How about that? Is it better? Yeah. Okay. Looks great. So just to some folks, there were a lot of questions, great questions. Thank you very much for being active and being so detailed. Obviously, there’s a lot of moving parts to this, right? A lot of steps along the way. So I just wanted to point out in the Blueprints section of the tutorials. So if you go to the Experience League documentation, it’s experienceleague.adobe.com. If you search for Blueprints, one of the many useful sections is the Data Prep and Ingestion Blueprint. Wait. So very detailed architecture, technical guardrails and limitations and constraints, etc. So if you really want to see the details more visually, these Blueprints are great resources. Nice. So point that out. And again, that’s Data Collection and Preparation. Talks about the event forwarding feature and for multiple sandboxes and deployments, etc. So great, great resource. Cool. Yeah, I love those Blueprints. I know we just have a few minutes. Yeah, what’s your best few we have? What’s your best we have three or four minutes to show people? So not really sure about my best. So I have a bunch of tabs open as we tend to do in this line of work. We’re in tags property, right? So client side data collection for a web app or a website. And this one’s for my secure financial services firm. And I have several rules set up just for demo purposes. Some of them overly simplified, but just to explain a little bit in terms of data collection, and specifically Data Prep and Mapper. We’ll come back to these rules and we’ll execute a rule and we’ll see what happens with the data flow from start to finish. If you see here on the left hand rail here, we have the data collection main navigation, tags, data streams, event forwarding and monitoring for event forwarding. So the data stream, as Eric mentioned, and Doug mentioned, sort of the hub or the ability to turn on different 51ºÚÁϲ»´òìÈ services and applications in a really convenient user interface, but also to set up what we call a mapping so that in, as Eric showed, if we have a rule, like for example, this rule I have called Map Stuff, which is obviously very technical and complicated. Just kidding. So on my financial services site, if we’re starting an application for a credit card, that would be the event that triggers this rule. And if we’re on the credit cards page, then I just want to send my data layer, right? Just keep it simple for an example, right? And I’m sending a link click because I’m clicking on the application. And as we saw earlier, I have the option to send XDM formatted data or just a regular JavaScript object from my data layer or what have you in the data field, or I could send both. With one send event from the Web SDK, I can certainly send a mix and match of XDM and or plain old JavaScript object. In this case, I’m just taking a data layer as an object and sending it in. If you can see down below the DevTools console, I have just plain old object that talks about that that represents a data layer, data layer properties about the visitor or the borrower who’s applying for the credit card. We’re sent, we have city, the customer ID, first name, last name and preferred contact method, which is email. Just a plain old object that could be anywhere in the DOM. It could be in your page, it could be in the 51ºÚÁϲ»´òìÈ Client data layer extension, where have you. And so that’s sort of where the data is going to originate, right? And then we have the data streams, which Eric showed how to set up and configure. And we’ve got 51ºÚÁϲ»´òìÈ Analytics turned on here, we’ve got event forwarding turned on, and we’ve got platform turned on. And so one of the things that we want to get to in our environment here is the mapping itself. Are we changing anything? Are we transforming or decorating fields? If you just a quick shout out in the tutorials, let’s see, no, sorry, in the documentation section in our web SDK, it talks about how you can prep that data that you’re sending from web SDK. This also would apply to mobile SDK for mobile apps, because we can also apply transformations there. So this has all the details, also well worth a visit for how to create a new mapping or input, import existing data structures and other convenient ways to leverage the feature. Yeah, I’ll put a link to that as well afterwards. Cool, thank you. And so we also have here an event forwarding property, another key part of data collection, also part of the real time customer data platform suite of products. So if you want to send data out to non 51ºÚÁϲ»´òìÈ destinations, whether that’s the Facebook conversions API, or you want to trigger a MailChimp email to be sent to somebody, you want to send data to a back end data warehouse, you can enrich the data and send it to an ultimate destination. And when I say enrich, you can make a series of requests and responses to various APIs and use the response to the intermediate APIs in later APIs in the same role. So for example, if I’m getting CRM data and weather data and city data, and then I’m combining it all and posting it to a data warehouse, that’s a great example. And again, I’m not doing anything with the data prep for data collection here. I’m simply leveraging the data in event forwarding or in another 51ºÚÁϲ»´òìÈ solution. The schema I know there are a lot of questions about schema, it’s just really sort of a recipe. It’s a what to expect for 51ºÚÁϲ»´òìÈ Experience Platform Edge Network. So if we’re sending analytics data, and we want to structure that data when we send it or when we map it, we have the ability, I think, as Eric showed, to set our EVARs, our props, product variables, etc. We arranged to have a schema, and we say that that EVARs here is an object and obviously we have a variety of EVARs built in. This is a prebuilt field group. It’s an existing field group, the 51ºÚÁϲ»´òìÈ Analytics Experience Event field group. We also have loan applications details built in for financial services company, a variety of prebuilt field groups that you can add to your schema for convenience. But you can also create by just adding a field group here. And you can create a new field group for values if you want to structure some data that you’re going to send very often, very frequently. You can create a new field group and add that to your schema as needed if there is some set of data or fields that don’t fit a pre-existing field group. You can mix and match custom and prebuilt as needed. Jeff, can I ask you to show one specific thing, which is if you have it, do you have this property on a page with the, I see you’ve got the debugger there in the background, that’s why I was getting excited. Could you show like the client side tag and then the results of that client side tag in the client side log and then the edge log? I think that would be really cool to see. I will definitely do that. I’m making my way across the tabs. Just give me a few seconds. And can you do it in two minutes? I think I can. Let’s see if I, let’s see. So obviously in Experience Platform documents, there’s a pretty exhaustive, detailed, very useful technical reference documentation. There’s also tutorials and introductions at a more basic level for everything to do with XDM. For people who are not familiar, it’s a schema. It’s a layout for your data. It is an open source repo on GitHub. It’s an open source model for data and feel free to contribute if you like. And this really is the mapper. So this is where the mapping, you can apply mapping transformations. You can have various fields that you can set to target fields and you can also add calculated fields using a variety of built-in functions or operators, which really gives you a very wide variety of transformations and functions that you can apply to your data when it hits the edge network. So for our page, as Eric requested, we’ve got this secure financial site and here we can apply for credit cards. And so if I clear out my console down here and I click on the page, you’ll see I’ve triggered an event. And down here in the console, which I’ll make bigger, we’ve got our payload, right? And so here’s our event data. We also have some various data that we send automatically about the site. But here we have XDM. We have our data property and we have our XDM property. So here I think someone asked about mixing and matching. And in this one XDM experience event, we’re sending data, which the data that I showed you, and we’re in just a regular JavaScript object format and XDM data formatted according to the schema. In this case, we’re using both and we can map that and transform it as needed. So that’s the request going out from the client side. You can also use the experience platform debugger to see, in this case, we have an event forwarding rule that I showed you before, and you can see the results of the forwarding of that data here in the debugger, the various API requests that are here. But more specifically, the Web SDK events, if you’re not used to the DevTools console, you can come in here and inspect the data that you’re actually sending out to the edge network. And you can see the data and XDM key and all of the properties and values that are attached to that that actually have hit the edge network. And so you can see that data going out and coming in. And then you can also use the 51ºÚÁϲ»´òìÈ Experience platform assurance extension in your mobile apps or in your logs here on the client side. You can see you’ve got a debugging session. And so here’s a case where I failed to execute the event that was earlier today because I just wanted to have an error to show. But it gives you a real good way to see exactly what’s happening, what’s being changed as it comes into the edge and as it goes to a system. We can also use the assurance, which was formerly known as Project Griffin, the insurance UI to look at that data and validate that data that is being mapped. If you are applying, sorry, let me find my screen. So if you’re applying any of these transformations in the mapper itself, mapping one field to another to a target field and you’re applying transformations, you can validate that using assurance. So not quite three minutes. Sorry about that. One minute. No, that’s good. That’s okay. I hope that gives a little bit of flavor from the client up to the edge. You can use the mapper interface to transform that data. And then whether you’re using event forwarding to send it out or you’re sending that data to profile, to platform for profile data sets, et cetera, and using the debugger extension and the platform assurance functionality to validate that data as it moves through the pipeline and then eventually out. Nice. Yeah. Awesome stuff. Thank you, Jeff. That is great. Thanks. Sorry for the rush. Thanks to everybody. No, no, that’s great. That’s great. Appreciate it. Appreciate that. That’s really good. You know, my OCD will not allow me to close this meeting without our final segment. We’ll keep it short, but our final segment, unrelated cool tip. Unrelated cool tip. Okay. Eric, you have an unrelated cool tip today. It’s going to have to be a quick one. Today’s the day. Okay. My tip is really apt for a large percentage of the earth this week. I think it was like 40 degrees Celsius in the UK the past few days, which in Fahrenheit is like 104, 105. It’s in the nineties here in New York city. Plus humidity is like just under a thousand degrees Fahrenheit. And so it’s also barbecue season. At least it is in the US. And so I had one this past weekend, I’m going to another one this coming weekend. And the question is always like, I’ve got some warm beer. How do I get it cold or some warm beverages in general? How do I get it cold the fastest? And so this tip is the way to do it. You buy yourself a couple of bags of ice, put it in the cooler, but put the, put the put the drinks in there first. So drinks go in the cooler ice on top. And then the magic is putting some water on top of it. And so that way the cold disperses to every single drink that is in the cooler. That’s my unrelated cool tip for you. Stay cool out there. Water is the key. I’m like, my cone, cooler and ice. There’s a no, but it’s the water. It’s the water. Yep. That way the cold gets everywhere. Nice. Great. Unrelated cool tip. Thank you very much. Hey, thanks everybody for coming. Thank you, Eric and Jeff, our experts today. That’s awesome. As I mentioned, there’s a link below there that you can click to and go over to the community coffee break and we’ll continue our discussion there. And Eric and Jeff are going to be there as well as Travis, Jordan, one of our PMs and, and, and we’re going to have some great answers there, but thank you for attending this Experience League live today. Head on over to experienceleague.adobe.com at any time for your self-help needs. And thanks everybody. And we will see you next time. See you there.
Additional Experience League LIVE sessions from this data collection series
For continued discussion on this topic, please visit the Experience League .