What is that everybody welcome back to the channel you guys in today's video? I'm gonna be simply walking a client of mine shout out to Nikki a top producing real estate agent in the state of Texas I'm gonna be walking her through the setup of your of her Facebook custom audiences now This is one thing that I that I rarely hear people talk about like when it comes to when it comes to all forms of paid Traffic social media paid traffic Facebook ad Instagram ad You know a tick-tock ad a LinkedIn ad what what most fell to not not necessarily fell But what most miss out like gurus, you know teachers people that you're learning from people that I'm learning from What most tend to leave out is the importance of your custom audiences when it comes to this paid traffic stuff I truly believe 90 plus percent of the success that that one has with Online advertising is the ability to create custom audiences To be able to track who's landing on what website to track Who's watching which video to be able to retarget these audiences in future ads or to be able to exclude These audiences from future ads 90 plus percent of your online advertising you guys is going to be based on on on retargeting or excluding Custom audiences and it again again it applies to anything really it applies to any paid traffic a YouTube ad It applies to everything so in this case if you're new to my channel what I've been teaching for the past few years is online advertising Facebook ads landing pages email automation And and really what goes on on the in the back end once someone clicks your ad which is which is Carture right I'm a huge affiliate and a huge advocate of Carture just because of the of the simplicity of it and for sure that the pricing of it It's it's the most affordable platform out there when it comes to building your business online So what I'm gonna be doing with Nikki today is simply walking her through the setup of different audiences And what I want to do is just kind of give you an example right right now before I get on the line I'm gonna just give you an example of What custom audiences are so as you're setting up your ads right and and again This is this is another reason why I truly believe after after just speaking of thousands and thousands of Small business owners thousands of real estate agents on this topic of Facebook advertising online advertising After speaking to so many 99% of them I truly believe The reason for their lack of success I don't know if that's the right word, but the reason why they they they haven't succeeded with their online advertising is because they haven't Fully understood this process of the setup of custom audiences, right? So I'm gonna show you what the what what these audiences refer to and and again, I'm gonna I'm gonna Get Nikki on the line here in a few minutes and and I'm gonna help her set hers up Okay, so we're gonna go into a full detail full tutorial of how to set these up But this is what it these are let me show you a few examples of custom audiences So as you're in your newsfeed right and again, it applies for any platform LinkedIn Instagram Facebook it applies for everything as we're scrolling through the newsfeed. Okay, so I'm seeing a friend, you know that that's Heather shout out to Heather She's just a friend on Facebook, but that's a that's an organic post Let's come down to an actual ad so anytime you see the word sponsored that is a Facebook ad Right, so you have these ads to the right-hand side and then you have these ads in the middle Okay, so let's use this lift one as as an example. Okay, so here here as I scroll through I come across the ad There's the image. There's the call to action button the apply now, right? So the fact that I stopped here the fact that I actually stopped that's an audience, right? So so what what what lift? Whoever's running their Facebook ads, I'll give them, you know, I'll give them the benefit of the doubt and And and and and say they know what they're doing. Let's say they know what they're doing, right? One audience that I'm already in is people who who engage with post That's a custom audience people who have engaged with a post or ad That is a very very specific audience and really that audience are those who stopped Facebook contract this this timestamp the fact that I've been sitting here on this freaking ad for now What 40 seconds right 45 seconds? So it's like that is one form of an audience Let me show you the next audience as I click and I come over to this page this link This link over here at the top this is another custom audience So what they're able to do here is they're able to track the fact that I landed here because they they you know They take this specific link and they set up a custom audience and this custom audience can easily be named Page visitors right page visitors now everyone who has landed here is in a very specific audience Which they can then leverage to retarget and show future ads to now the moment I come over here and I enter all my information and then I go to the next page That is another custom audience. So look as I go look I'll just put in San Diego So as I enter that and then I and I click on apply to drive Let's see. Let's click on apply to drive. Actually. Yes. See so so next Actually, it's asking me for a phone over but as I if I were to put in fact, let me just put a freaking random number Okay, so look Actually, I gotta agree. Okay. So look next as I come to the next page this link at the top changed That's another custom audience, right? Those who got to this specific page are very different than the type of person who got to the previous page and didn't click the button Right, that's a different type of person So they'll be able to track these audiences you guys is Everything so again giving lift the benefit of the doubt by saying they actually know what they're doing Here's what would happen if they actually know what they're doing Tomorrow an hour from now Next week whenever they whenever they run that next ad They can now since they track the fact that I landed on this specific link. I put in my phone number I landed on this specific page. I landed on this specific link. They can now run another ad specifically to me Hey guys, this is this is lift. This is David on the executive Hey, I noticed you entered your phone number on the previous page But you've yet to put your first name last name email and in any city that you'll be driving in Let me tell you why you're gonna want to fill out this form now and we're so excited to meet you, right? That could be an ad going to a very specific group of people who have got to a very specific page on their website That's powerful. That's how you segment these different people people that landed on the website But didn't follow the form people who actually filled out the form and landed on the confirmation page If I were to go through this entire form, it would it would then take me to some type of confirmation Thank you your information has been submitted, right? That would have been a confirmation page We call it a thank you page that page wherever I land on that could be a thank you for purchasing page You could be online looking at at hats looking at sweaters looking at freaking cell phone cases And then you enter your credit card number and you come to the next page where it says Thank you for purchasing. That's the thank you page so that page is also very specific and that audience can be used to now exclude From seeing future ads, right?  Typically, let's see if I can scroll down and just see and just see like an individual like a coach or like a consultant Or like how we see Russell Brunson ads. Here's Dan Henry. Shout out to Dan Herney. Here's another custom audience As I come here and I watch the video. The video is one minute and 51 seconds. I sit here and I'm watching it for five seconds, six seconds, seven seconds, eight seconds, nine seconds, 10 seconds. He tracked that. So not only is are the custom audiences tracked by that by that individual clicking on the button and coming over here. Boom. I'm tracked Now he's going to turn around and run another another ad to me, but it's also tracked on the on on the time that one watches your video. That's why if you're putting out video It's super super powerful because they don't even have to click. I could capture an audience of those who watched it for 30 seconds. Because any and that's powerful because anyone that watches like again you guys we're all consumers. We're all consuming information on social media all freaking day when you sit there and watch something for 15 seconds 20 seconds 25 seconds. It's like, dude, you yet it it regardless if you're interested in that offer or not you still somewhat Got a good feeling and got a good got a good sense of knowledge of what that was right. That's a long time when you were sitting here watching something for 20 seconds 20 seconds on social media is actually a long time. So if I didn't click on anything and I'm just sitting here and I'm watching it for 45 seconds for a minute and 15 seconds right That's a long time what he would do is he'll or what he does do what we do do is we put that viewer in a custom audience and we can show them more ads. That's how you segment these audiences.  Right. Because now you're able to segment you're just putting people in different buckets based on what they're doing. One one bucket people clicked went over to the website but didn't fill out the form. Another bucket are those who actually fill out the form. Another bucket are those who actually watched it for a minute and 50 seconds.  Another bucket are those who only watched it for three seconds. He could he can create an audience of those who are we can create an audience of those who only watch it for three seconds. And then put them in a bucket and then turn around and show them another ad right now three seconds in my opinion isn't isn't enough. Like you want that you if you're going to create an audience which you can create an audience around three 15 seconds freaking 30 seconds like you can create an audience around whatever really timestamp is really three three seconds is a minimum but In my opinion that's not that's not enough time you want you wanted to least credit when it comes to video you want to create an audience of those who watch it for at least At least at least I would say at least 20 seconds, you know, and that's really 25% of your video. So if it's a minute and 5051 seconds. You can create an audience of those who watch 25% of it or even 15% of it. That's a good audience right those who watched a good amount, whether it's 20 seconds 25 seconds 30 seconds of a one minute and 50 second video. That'd be a good audience because that person actually sat there and watched a good, a good amount of it 20 seconds 25 seconds is a good amount. So, so what I'm saying you guys is that it's all about audiences. That's why most do not succeed with with paid traffic. Because they're not creating these audiences. They're not segmenting their audiences. They're not Retargeting their audiences. They're not excluding their audiences. And then most importantly here's the bottom line. Most are not consistent with their advertising TV and begin with. So you have to be consistent with your ads. That's why what I do is I coach and I teach I teach real estate agents and really small business owners in general, but over the past few years I've been teaching nothing but really actually not nothing, but I 99% real estate agents right And so what I really found to at the end of the day is the fact that If you're not consistent, then none of this stuff is going to build up for you like none of this data is going to be collected. None of these audiences are going to be built up. If you don't stay consistent with your ads, you have to have a Budget, a monthly budget and you have to spend that budget, regardless, regardless of leads are coming in, regardless of cells are coming in, especially in the very, very beginning.  But at the end of the day, it's freaking you that has to stay consistent with these ads. Don't making mouse the damn thing and do one here and there.  Even at a couple a couple ads a month years it's still running every day right, so if i'm if i'm putting out one ad right now, let it run for 14 days to test it. that's every damn day turn it off if it didn't if it didn't if it didn't perform turn it off run another ad right for the next 14 days 15 days 15 days 15 days there's a whole month right so. So you want to be running an ad every day because because it's not. Although it is all about the cell right it's all about the online cell it's all about the lead for sure I get it. But what you're also paying for and what you're and what's super super worth it also what we're getting out of out of out of putting money in into the into the into the damn campaign. Is all the data that's being collected, this is all data those who watch the video for X amount of time is data those who clicked on the button. And came over here, that is data, so you have to look at that as well you're not just blowing your money. Because no leads came in no you're also capturing the data, which is super super important to leverage in the future okay to retarget it's all about retargeting these audiences okay so you guys let me let me let me. Let me get Nikki on the line and then and then let me show you how how when it comes to real estate and many businesses that's why a lot of you guys are going to get value to this because. Really, when it comes to a small business owners it's only a couple pages so, for example, this is a consultant this is a small business owner, this is an individual I click I come over to his one page it's one single page. that's it right he's asking for a name for first name and last name once I click the button I then come to a thank you page right now he's going to probably take me through a few more questions, but. At the end of it at the end of that funnel there's a thank you page so it's really just a couple pages you guys a couple pages in this case he's a high end coach so he's asking questions to filter people out, but typically it's taking people to a simple landing page like like this is a real estate example when let me show you. So if I was a real estate agent and I was selling a home right running the ad is on the home getting them to click come to the single page right single page right one blue button that's it one blue button one blue button. As they click and they enter their name and email send me the details they click the blue button they then land on the second page, which is your thank you page.  Within the Facebook ad manager platform and that's your custom audiences your custom audiences and your custom conversion. Which is what we're going to do today with Nikki so shout out to Nikki top producing real estate agent in Texas, let me grab around the line and then and then we'll go from there. Oh, so right here again the three most important pages often the landing. In the call confirm so all we're going to do here is click the blue button. Great. Yep, and then we're going to create custom audience. And here are all the different audiences that you can create the first one we created was a Facebook page anyone who engage with a post or ad. That that's a one time you never really got to do that again, but what you'll always want to do from this point on or either website custom audiences or video custom audiences so as you really break out and start doing video. custom audiences on videos are so so important so powerful so in this case and then really it's those two that you'll ever really really do you'll never really do the instagram or the customer list or really anything else. it's always going to be really website and video so in this case today we're going to do website. So click on website and then click on next. And then here what we're going to do and in that that red dot will turn will turn green once we add the pixel because that's what we have to do as well as add the pixel to the page. Okay, so here in the events drop down all website visitors we're going to hit the drop down and we're going to go to specific. People who visited specific web pages so now what we want to do is go to the opt in page, so you have the tab open at the top. What we're going to do is we're going to double click the link at the top open up that whole link so sold by Nikki yeah double click it all you need is the. You don't need the HTTPS you don't need the www just get the domain sold by Nikki be calm forward slash seller right. And so you just need the URL you just need the domain for custom audiences and for custom conversions, which is what we're going to do today also set up the custom conversion but. Copy that and then now let's bring that over and we're going to simply paste it in right there Okay, so now here's the deal. The 30 days that is we can that can go up to 180 so Facebook will start collecting all this traffic all this data of people who have who have landed on the page within X amount of days. I kind of I kind of go off of 30 because anything longer than that like if you landed on my website. 47 days ago, and that was the only time you ever landed on my website chances are you don't even freaking remember me. Yeah, especially if you don't know, especially if you just saw a random ad, you know what I mean like so keeping keeping it shorter and tighter that person who's in this audience someone who who someone who saw your ad and clicked and landed on this page 21 days ago. Is somewhat is somewhat better than anything longer right so I kind of just go off at 30 days. So 30 days is fine. Now, no that that stays the same leave that leave that as is, but but here's here's what we got to do next. We want to add another layer. This is specific. So when it comes to audiences. It's, it's specific. These are people who have landed on this page, and they've never landed on the thank you page. So we're going to hit exclude exclude people. So one specific audience. Now what we want to do is is all website visitors hit that match the top. So we're going to go specific. So these are people who have landed on the seller guide page, but never landed. Yeah, specific, but never landed on the thank you page. So now we get the thank you page link and paste it in there. So grab the link at the top. No, thank you. Thank you. Thank you. Yeah, that's this one. Yes, so double click the link at the top. Only the domain bars annoying. Okay, yeah, drag it out the way. Yeah, so just just the URL. Perfect. So now, now we're really narrowing it down and we're being very specific. And that's what we're going to even name it. So scroll down so they clicked on the first one, but they never got to the second one. So now audience name, we're going to be very specific. These are people these are these are going to be seller guide page visitors seller seller guide page visitors. And then in parentheses, you're going to put only seller guide page visitors only. So these are people who have seen the ad they clicked they landed they just haven't opted in. This is an audience at the blue button. This is an audience that you'll always want to retarget. So from ad number two and on, you'll you'll you'll include this in the targeting. So as we go set up the ad, hit done. And we choose your your local area to start targeting. We're going to also include to target this audience. Because that that's someone that want that's someone that you want to keep showing your face to are showing your ads to are those who have, you know, at least got that far but haven't gone all the way through and downloaded it. That's one super super important audience. The next audience go ahead and click the blue button again. The next audience custom audience website. This next audience is going to be simply hit the dropdown specific. Now what we want to do is we want to change the 30 to 180 max it out, because this is going to be the audience of leads. So now paste in the thank you page which you already have it copied so just paste it in there. This is an audience of those hit the blue. Yeah, hit the dropdown. Yeah, perfect. So audience name seller guide leads seller guide leads. That's exactly what this is anyone that lands on that link is a lead. So, great audience. Yep. So now what I can do in the future, the moment the moment you get your first lead, you'll always want to from that point on the very next ad and on, you'll always want to now exclude this audience from that targeting. Right, already downloaded the seller guys lonely they don't need to keep seeing your ads right so that's powerful to be able to exclude those who have already opted in. So the next audience let's do the third one create audience, and this is going to be website. And this is going to now be the call confirmed. So what I would also do on the 30 is I would max it out to 180 as well, because anyone who lands on this link are people who have already scheduled a call with me. So, to tell you the truth people if you if you're already in my funnel, and you've already scheduled a call with me, then you don't need to keep seeing my ads either. Right, like, because you already have that email, first of all, I can just email them whatever listing or whatever promo or whatever ad like I could just I don't need to show them another ad and spend money on it. So, so this right here, people visit specific specific pages audience name appointments, or scheduled appointments or whatever like, these are people and they're not just seller guide ones or this is your call confirmed page which is your general page, which is, which is a page that anyone and everyone lands on when they schedule an appointment. So, have scheduled appointment perfect. Okay, so that was super important. Those are your three audiences and again it's the same for any other campaign a listing open house whatever you do the same thing is is take those links and create these three. It's really to the call confirm you don't have to do that again. But if it's a listing or open house and you're doing two more pages. Yeah, take those two links into the same thing. Open house page visitors only open house leads, right would be the thank you page right so that's really that's really, that's really the most important is those. Now let's do one last thing around the thank you page. So let's, let's copy the link of the thank you page. So, this one. Yes. So now there's a few steps that we got to do and when it comes to this one. Let's look at the URL. What we want to do now what we're going to do now is is is we're going to tell again it's all specific so all about it's all about being specific with Facebook and telling them exactly what the hell we're looking for. So, when it comes to running ads. This is a custom conversion. This is, in other words, this is telling Facebook, out of my two pages, I have my opt in page I have my thank you page. This is the custom conversion is telling Facebook, which page is the most important. Right, like, yes, you're trying to get people to click on your ad. Yes, you're trying to get people to the opt in page to click the button and enter their name and email. But out of these two pages which one's most important. It's the thank you page. That's the page I'm ultimately trying to get people to write and they can only get to that page if they opt in. So that's the most important page the thank you page. That's the custom conversion. So now we're going to click the three lines at the top, and we're going to go to events manager or you could just go to your bookmarks you have. In fact, go to your bookmarks go to your bookmarks because we're going to actually read book market. As we set it up custom conversion. So custom conversion. That will bring us over here, which now I want you to. Yeah, so go ahead and go ahead and take away the bookmark, because I'm going to have you bookmark it. You can just go back there I think you can right click and just delete it. But yeah go to the folder. Here, yeah bookmarks and then go to that folder and then and then right click custom conversion right click and just delete it from here, because we're going to read bookmark it. I don't know how to right click on the Dean Mac. Oh, that's right that's right. It's all good. It's all good we'll we'll figure it out but we'll go back to the bookmark we'll just read bookmark it because now we're going to click the button and we're going to actually go into it so go to click the blue button. And so now over here, what we want to do is we're going to give it a name. So again, the custom conversion is all about the thank you page. So in this case, what I tend to do is name it exactly what I named the custom audience. Well, what did we name the custom audience of the thank you page seller guide leads. So we have that name for the custom audience, and we have that named for the custom conversion. So right here, all you're going to do is you're going to see and that yellow dot will turn green once we add the pixel, which is what we're going to do after this. So leave that as is all your traffic that's fine and then down below select your own category click that blue, select your own category. And so we're going to tell Facebook anyone who lands on this link. Yes, is in the custom audience seller guide leads, which gives us the ability to now exclude from future ads. Yes, that's one thing. But over here, we're also telling them hey people who land on this link. Yes it's the custom conversion is the most important, but people that land here are leads. We're going to very, we're going to be super specific so scroll down below contact. You'll see, keep going you'll see lead. So anyone that lands here is a lead. And so just paste in that link right there. That's the thank you page link. Perfect create. Okay, cool. So now it's going to take us through a few steps, which over here again this is where we tell Facebook so go to web configuration. Click on that one. This is where we tell Facebook. This is the most important link. And you can just exit this part. So right here sold by Nikki Nikki be zero of eight go ahead and click on that. Yeah, click right there. And then click on manage events, and then edit. And then over here we're going to simply click on the green one add event. And then the drop down right there pixel. Yeah, click on that and then go to your custom conversion. And then the drop down choose an event. You'll see your conversion. That's what we just set up. So again over here we're telling Facebook, this is the most important. So click apply. And then as we go in. Yes, I confirm. As we go in and we set up our ad. We tell people we tell Facebook in the setup of the ad, we tell them the link for the opt in page so when people click learn more, they go straight to the opt in page. And then as we set up the ad as well we're also telling them about this link as well. We tell them about this link on the same in the same section where we're choosing our targeting for the ad. So as we go in and set up the ad and we choose the location we choose the budget right there also we're telling Facebook about this link as well. So that was super important, the custom conversion. So those are the custom audiences, that's the custom conversion let's also. So now, so here's, so now hit three lines to the left and go back to go back go to events manager. So you know what click hover over that triangle right there to the left, the triangle and then click on custom conversions. So click on that and then and then click on custom conversions. So this is where I wanted you to bookmark it from is actually here. This is the actual. So let's bookmark this page. Let's see if we can rename or just delete the other one. So go to go to edit bookmarks, see if you can maybe do it there. So Facebook. Yeah, seven items if you can click on that seven items. Yes, I'm a Mac I don't I'm not. There we go. Perfect. Okay, so see if you can delete that custom conversion one. We can delete it. Is there any like conversion so this bookmark it from here. Okay, cool. So now add bookmark. Yeah, now one and then it's custom conversions. Perfect. Okay, cool. So, once we once we add the pixel, then then that inactive will go to active. So let's let's add the pixel so now click on your three lines to the left and let's go or or the bookmarks. Actually do the bookmarks go to the bookmarks and go to pixels because I think we need to read bookmark that one as well. So business manager pixel. Actually, no perfect. Actually, yeah, we do need to read bookmark it so now now click on the blue one the continue to pixel setup. So we'll read bookmark this one and then and then do metapixel to the right and then install code manually. And then copy code. Okay, cool. So and then hit continue. And then continue and then turn this one on so that she that went to blue. Perfect and then continue. Do I leave all this. Yeah, leave all that. Yeah, continue. And then continue. And then the domains already been verified so continue your find there. And then go to pixel overview. Okay, cool. You're good. Okay, so now. Now, what we want to do is go to we're going to go to culture and we're going to add this pixel to these three pages, actually to all of them but let's do these through the opt in the thank you so just click the three dots and go to edit. And then it comes to this basic and every every every websites the same as well. It's really every website every no matter who where you're building a website to go daddy through Wix whatever it's all the same where it's this pixel code or the pixel ID, where all you do is come into the settings so right here at the top left click on settings, and then go to tracking. And then all you're going to do is down these are all different forms of tracking but the Facebook one is at the bottom. So you're simply paste in that code right there. That's it apply. And then actions at the top right. You'll hit actions and then just publish live. I don't have to hit save. You can say progress and then publish live or you can just go straight to publish live. Oh, publish will save it to publish live will save it to yeah. Okay. Yeah, but you for sure always have to publish live. So now, if you simply so close this one out. And then actions and then return a dashboard. So that's the opt-in so now if you actually go to the opt-in page which is already opened at the top. So one of those tabs I think it's your seller guide one. Yeah, that one refresh the page. So now that now that Facebook now now that pixel is being read by Facebook. It's the first time. So now Facebook just registered the page. And now now now tracking is in place. So now let's do the same thing for go back to Carter and then click the three dots and let's do the same thing for the thank you page. And for the call confirmed and you might as well do the email sequence one if you want but for sure. So let's just add this pixel. To all of them. And then we can refresh. That's that for the pages. So tracking code pasted in perfect. Awesome and then actions and then publish life. Now the just installed we've refreshed the pages. So Facebook can read that pixel now reload this page. So now you'll see a different layout. See so now now it looks different. So so now that pixel is being read and what we want to do real quick to here since we're in the settings of this is the events manager and this is really this is this is really the the the bookmark for pixel. So let's let's read bookmark. Let's read bookmark the pixel one. So let's go to bookmarks and I guess go back to what was it the, the edit. Yeah edit. So let's take away the, the bookmark for this pixel. Yeah, and let's let's read bookmark it. And it's going to be pixel. Yeah, pixel. Actually I don't know if you have to go back to the actual like hang on them. Yeah. So you can just delete our exit of this one. Perfect and then just bookmark it from here. So you can name this one pixel. And I'll show you where, where that pixel that so in the future. And here's what you want to do to for the hell of it like it's this is super important. You might as well just do it as well. This is where you get the pixel so you can scroll down this. So right here, right here. So in the future, it knows at events. So at events hit the drop down right above at events and then from a new website from a new website. Yeah, from a new website install code manually. And then copy code. So here's what I want you to do. Copy it. And then just email it to yourself. Because in the future, if you ever build any other website, you'll want to put the pixel on the website. Right so you can always come in here for sure and copy it you got the bookmark for sure but in the future if someone else is building your website. And for sure just email them the damn pixel and say hey here's my pixel and email it to them super simple. And so, and even in the future if you ever do get your own real estate website through your brokerage, see if they can even add your pixel on that website. You know, and you can simply forward it to them. Yeah just put FB pixel perfect and then just paste it in. So here's, here's really to actually know what you're going to do it again. I'm not going to send it just yet because there's there's two, there's two types of pixels. Let me just educate you on this real quick because this is super powerful and the most important without your pixel, none of this, none of this stuff matters. The pixel needs to be on everything, but there's two forms of the pixel. There's one which is which is you just copied so paste it. One, one, one form of your pixel is that so some websites require the entire code. Cartra requires the entire code. Some other websites require just your pixel ID number. And so, sometimes that's all that's needed is the pixel ID number. So if you go back to the events manager was right up here. Hit the, hit the back, hit the, or you could just go back to your bookmarks. Yeah, right. Yeah, so click on the number. Actually, you could just click on it. Yeah, click on it. Yeah, so again, some websites only so hit enter a few times. Yeah, get away from that one. Don't mess up that code. Yeah, perfect. And then just paste it in right there. So some, some require the whole code. Some require just the number. So that's it right there. Facebook pixel. Yeah, Facebook pixels. Yeah, perfect. So that's that's something good to just email yourself and now I can send it and keep a copy. Now you can send it. Yeah, for sure. So now, now we roof we added that we created the custom audiences we we set up the custom conversion we added the pixel on these pages. So now go back to let's check one last thing go back to the events manager, and then click on the blue triangle to the left. Actually no real quick right here settings go to settings. And let's just make sure that your, your click on sitting right here at the top to the middle middle. Settings and then scroll to the very, very, very bottom. So scroll down, scroll down, scroll down right here create allow list, click on that. And then let's just simply create allow list. So click on the one to the left, create allow list. And then over here, allow, add to allow list. So go ahead and click on that blue add to allow list. Okay, cool. So, confirm. Okay, good. Okay, and then close. Okay, cool. So, so there was just kind of just confirming that that this is the link that Facebook's tracking. That's all that that that really was. So now click on the blue triangle to the left and go back to custom conversions and let's see if it's active yet. Sometimes it takes a while. Perfect, it's active. So again now as we go and so hit the three lines to the left and go to as manager. As we go in and we set up our very next ad whenever that is down the line. That custom conversion is what we include. In fact, let me just show you where it's at real quick the blue, the blue, the click the green button, and then go to go to conversions to the right. So conversions is is is what we're shooting for it continue. And so that's fine just click on click on continue. And then as we go in now.  So as we come to the second step. This is over here where we choose the budget we choose a targeting. This is also a retail Facebook on the second step about the custom conversion so if you scroll down right below pixel. Your custom conversion, sometimes it's there by default that that is good that that that was there by default but sometimes not so exit out. This what it looks like when it's not there by default so when it's not there click away. When it's not there by default it's blank like that. Right so then you have to click click inside there and you'll have to scroll down and look for your custom conversion. Okay, right there is this is where we're telling Facebook came in the second page that thank you page is the most important. And that's where we let them know and then when we get to the third and final step, where we're choosing the actual image or the video or, or writing out the ad right now the text for the ad. That's where we include the learn more button, and we tell them about the opt in page on the third step. So, so we'll get we'll get to this full full blown ad setup, you know, in our next few calls but that is something we wanted we needed to knock out right away is those custom audiences a custom conversion and adding the pixel. So, any questions on that. No right now.


you know when I was younger my mother had certain dating rules for me and the basic rule was that the boy had to come home to pick me up he had to sit with my parents for about 15-20 minutes chat to them and then he was allowed to take me out. Now as you can imagine most guys of 18, 19, 20 did not want to be doing this they didn't want to come home they didn't want to sit with my parents to talk to them and as a result my love life was just going down the tubes and I thought this was so unfair because most of my friends were just sneaking out so they could go out with anybody they wanted but me with all my so-called permissions had all of these restrictions. I remember being very upset with my mother and I remember my mother explaining to me that if someone thinks that you snuck out and nobody knows where you are they can do whatever they want to you because they know that you have nobody to turn to but if they realize that everybody in your family including your parents know where you are and know who you're with they will be very careful in how they behave with you in how they treat you if you want to keep your children safe be a part of their lives explain the rules that you're putting down for them meet them at least halfway because then they're far more likely to listen to what you have to say and to appreciate your value system because trust me just saying no doesn't work your child wants to do something they will do it anyway


what is going on guys today I am back with another destiny video and I have a question for all you guys do people still play this shit if they do this is for you now me personally I haven't been a destiny for a well since the beta dropped I mean I've logged in come down to the tower log straight back off here I haven't played any PvP any PvE I just I just I just don't but I am bad it is back today so I do plan on playing it later today so expect some more videos later but let's see well this video is basically my recommendations of what should spend your legendary marks on this week the weekly refresh which is the first of August 2017 okay so what does the crucible quartermaster have to offer this week to be honest not much there's a couple of decent weapons but nothing incredible nothing a must buy in my opinion the first one we should look at is the palindrome I doubt you haven't got a decent one of these by now the man he's sold but if you haven't this one isn't too bad on it we have reactive reload we have rifle barrel and we have spray and play so that's a great role right there we also have on it quick draw fast draw and true sight so true sight spray and play rifle barrel and reactive reload definitely a decent palindrome for damn show okay the eight great roles but they're okay we've got third eye handle eight stuck danger close and rodeo or you can have a bit of range of rifle would kind of stability range and third eye or could just go for full stability well not full stability but great stability with third eye okay role not perfect party favor same with this we haven't third eye handle laid stuck or appended mag with secret round or life support secret round I'd probably go for here because this thing shoots so quick so you will miss a few shots sometimes so secret round hand laid stuck and third eye again if you need a decent pulse rifle well I say decent and say average party favors for you and nothing else really I mean the hand hand the Anton's rule sidearm side that hand cannon is okay we haven't hidden hand we haven't hand loaded or lightweight with outlaw or cascade nothing incredible it's still decent still decent true sight sure shot or quick draw as well so what we're gonna do now guys is I'm gonna quickly skip to Vanguard and see if they have anything badass to offer okay so the Vanguard this week hasn't got anything great but it does have a wild card weapon which could be worth spending your marks on but we'll get to that lastly okay so first up we have the continental here which isn't the best role the quarter masters offered but it's still quite decent I think we've got hidden hand perfect balance or rifle with spring play or close and or personal and sights ain't too bad either but I'd probably go with spring play here perfect balance and hidden hand I mean if you want range you can always switch to rifle but it's actually a great great well it's a weapon not many people use because there's don't just don't waste a time of auto rifles I've got a version of this weapon and it is is incredible so so underrated it really is and the role this week isn't too bad it seriously ain't another weapon this week isn't too bad is the teacup tempest which if you want a sidearm I doubt you probably need a sidearm but I think we've got a range finder fit stuck or lightweight with relentless tracker or crowd control with true sight fast draw or quick draw I'd go here definitely with crowd control I don't know about between lightweight and fit stuck I probably go with fit stuck to be honest and range finder because we all love that range so yeah not a bad role to be honest not a bad role at all but the one weapon which I would say is probably a wild card this week which could be quite decent is this right here the Parthian shot on it we've got glass half full small ball or rifle with barrel with rodeo so we've got stability we've got range and we've also got glass half full which makes the weapon even more powerful now this is a two burst head shot kill if you can hit two burst to the head with about close to medium range you will kill your enemy with glass half full that more or less guarantees it if you hit pure headshots with rifles as well you get an extra added little bit of range to land them shots and we've also got a bit of stability isn't the best stability perk but it definitely does a decent job in your audio so yeah this is a wild card weapon and when I get the marks up to play an iron banner I may may may just purchase this I may just purchase it now but that's it for Vanguard we're gonna head to dead orbit and see if they have anything there okay so dead orbit this week nothing great here people nothing great as well okay the fusion rifle is okay but it's lack of stability puts me off it really does now if you want a great the best fusion rifle in this game the best fusion rifle go on grind arcans forge and get the Saladin's visual that weapon is just unbelievable okay so on this world's the confusion rifle we've got the range finder we've got a small bore which increases range and stability we've got knee pads we've got accelerated coils or lightweight so to be honest it's not too bad but then again it isn't the best role you're gonna get on a fusion it's base stats as well it's okay impact but its range is pretty bad stability these things need stability I mean a lot of people won't say it but they do if you want to hit somebody at decent range you need stability otherwise they just recoil so bad you'll only eat one of the shots out of the how many it shoots at normally about four or five whatever it is so yeah but I suppose we've got a little bit more stability there in small world with extra range with range finder so it could be quite decent it really could but often than that guys there's nothing else that good right here I mean the auto rifle could be better it needs stability and we've got a hidden hand hammer force or cry control with fled magwell or hip fire but no stability it's a great great auto rifle though I look out for that one and I roll it well well the rolls it brings in coming weeks keystone needs stability I mean like I know it's a super slow rate of fire scout rifle but it just bounces I mean it just bounces it's it's bad when it does I think we've got hidden hand small which does increase stability a bit but it drops magazines lies down to about two now about 11 I think it is something like that then we have outlaw explosive rounds or lightweight it could be okay I suppose for PvE but definitely not PvP and that's basically it goes for dead orbit this week I do now is I'm going to check out future warcoats you to have anything to offer okay so future warcoats this week actually you know best vendor yet again I mean the visual code never lets you down she always brings a decent at least one decent weapon every week and today we have the perfect roll PvE rocket launcher on it we've got cluster bombs we've got heavy payload or tripod and we've got on it field scouts or creature but obviously want to go with field scout right here field scout tripod and cluster bomb a great great great PvE weapon a must buy for anybody who needs a rocket launcher for PvE it's gonna say PvP then PvE when would this week isn't too bad and we've got hidden hand hand loaded Zen moment high caliber rounds quick draw with steady hand sure shot or quick draw so yeah not too bad at all two quick draws look at that but yeah not too bad not the best roll and so I'm you're gonna get but not too bad not too bad another weapon this week which might surprise you is the wounded the wounded is a great great weapon it really is a great great weapon we've got his end moments small boat or outlaw and we've gotten it high caliber rounds or quick draw I'd go here with high caliber rounds outlaw and Zen moment without a shadow over there but it's a great great scout rifle it really is okay so we also have here this waltz which could be could be quite great like the party favor I mentioned at the start of the video this could be quite decent as well we've gotten it head seeker perfect balance or secret round and high caliber rounds or hip fire so you probably go here with high caliber rounds perfect balance and head seeker I mean secret round decent I mean you'd like I said with a party favor you will miss a few shots with this weapon because it shoots so quick so secret round could come in handy there but you normally miss them towards the end of your births anyway and this will obviously fire a fourth if you miss certain shots leading up to that fourth or third shot within that birth so yeah but head seeker decent perfect balance not the best but okay with high caliber rounds so yeah great great great role and guys that is it for future war cult but well hold up a minute hold up a minute rangefinder oh yeah not great not great so rangefinder it's actually a really really underrated hand cannon there but the role in that great this week so yeah that's it for future war cult I am going to run to new monarchy now and end the video right there okay so new monarchy this week again is nothing there's just nothing here I mean I feel sorry for people who wait on decent new monarchy weapons because they just never seem to bring them they seriously do not I mean there's nothing here I can even recommend you even taking a risk with I mean obviously sniper rifles always quite decent but there's no way you need a decent sniper now just no way you need a decent sniper now to be honest he's saying even that great they say anything that great but yes guys I'm afraid that is the end of the video because new monarchy sucks so yes hope you guys do enjoy the video thanks as always for stopping by a time down below in that comment section if you purchase anything this week let me know if you do take a risk with the parking shot from vanguard because I may do that as well but guys hope you enjoyed the video thanks for stopping by as always and I'll see you on that next one


Thank you for having me. This has been pretty incredible to see such a large word camp here in Philly, first ever word camp US. This is pretty amazing. So those of you who don't know me, my name is Andy Nason. I am one of the lead developers of WordPress, doing that for about five or six years now. I also separately currently as my full-time job work for a group called the US Digital Service. This is a talk only in my personal capacity. I am not a covert internet assassin. Thank you, Michael. And I'll be talking about purely WordPress stuff. If you want to talk about government stuff, by all means, you can find me later. So today, I'm going to be talking about advanced topics in WordPress development. For those of you who have seen me talk before, you might have recognized this title. This is my version of the TBA. In this particular case, one of the reasons why is because I'm able to kind of get an idea for what is happening in the community at a particular point and potentially bring it together for something that is particularly pertinent for that time. So there are a number of things happening recently. And also earlier this week, some of the core committers got together in New York and talked about vision and project philosophies. So today, I would like to talk a little bit about how users must be able to trust the software that they use. We have all always had a situation, I'm sure, where you've tried out a new editor or a new tool. And at some point, you stop using that tool. And a lot of times when you stop using that tool, it's because something happened that you didn't expect. Usually, you lost your data. I don't know how many times that I have used an editor, lost my data, and nope, not using that anymore. You don't exactly want to keep using it at that point. This is a fairly important piece. Your content is supposed to be sacred. And if the tools that you're using just don't care about that, well, that doesn't really make it a very good editor. That's kind of the very first thing. Also, with WordPress, if WordPress breaks, you are probably all still here. But the vast majority of users, they're gone. They're completely gone. They don't care how it broke. They don't care why it broke. They might not know that they're using WordPress. They certainly don't know about PHP. They're just gone. We've lost them. So that user trust is really, really important to establish and to hold. So WordPress has done a lot of really interesting things over the last few years. So for example, with automatic updates. We're at this point, and I love being able to continue to update this number, we owe it to 25% of the internet to keep WordPress sites secure, as many of them as possible. So with automatic updates, we have to make sure that they work. We have to make sure that they're consistent. We have to make sure that they don't break the person's site and they're only doing good as much as possible. This actually isn't true. It's actually 100%. Because at that scale, you're pretty much always hitting a WordPress site on your day to day. This is just the way it works. I think it's one out of every six people on the planet use Google every day. It's got to be pretty close to that for stumbling across a WordPress site as well. In practice, for automatic updates, the real world chance of failure is about 99 out of a couple of million. That is a 99.996% success rate. Pretty good. I think that the WordPress team would love to get it to perfect 100. But this is really important. We actually delayed shipping WordPress 2.7 by about a week, because we're only at about 91 or so. And we ended up going from about 91.19 to 3.9s plus in a matter of a week with just some simple improvements because we realized how important it was that if we were gonna launch a major feature like this and basically, in many ways, it was telling the community, don't worry, trust us. We got this. We're not gonna break any sites. And I don't know if you've read any comment, threads, and WP Tavern, but there were some concerns. This was a pretty important thing that we had to think about. Another situation where this has happened is with autosaves. So autosaves have been in WordPress for quite some time. But in WordPress 3.6, we focused a lot of our time on trying to make autosaves even better, making it so your content really cannot be lost. It's going to be somewhere. If your computer suddenly just boom shuts down, it's still somewhere, potentially. So essentially, we're trying to make sure that WordPress is trying to protect your content from cats on a keyboard or east quarter joke, anyone, no, maybe, and track Wi-Fi. Have you ever noticed, by the way, that it's written in PHP? Have you ever noticed that? Anyway, okay, it is, in fact. And then it comes to another piece, which is background compatibility. And this has come up a lot lately, and especially one of the interesting things where I find this come up is some recent conversations around Clipso, which is the new pretty amazing dashboard from WordPress.com, and how, by rewriting pretty much from scratch, they're able to focus on a lot of really interesting, really, really awesome improvements because they weren't hindered. And I think this is interesting because it opens up a good question as to why is WordPress backwards compatible? There are a number of reasons for this. One is we don't want to be burdened in users. We don't want users to ever experience pain when they don't necessarily need to. Because, quite frankly, it's probably gonna be less painful if we handle this edge case than if we pass that off to potentially millions of people or tens of thousands of developers or whatever it may be. Ultimately, I hope that we're a little better at debugging our own tools. And this is one of these problems over and over again where you end up having, in many cases, you have libraries that will break something and they'll say, but it's easier for us to maintain. I'm like, okay, how hard was it to maintain? Because now you have just caused X number of people to upgrade all your stuff. Not saying that everything in the world should be perfectly backwards compatible is not what I'm saying at all. But I am saying that backwards compatibility is one of the most important drivers of WordPress growth. It works everywhere, pretty much everywhere. So for example, PHP 7 just released yesterday. Many extensions are not yet updated, but the extensions that WordPress needs, which is one, works. So WordPress can already or tomorrow work on PHP 7, just as an example, or yesterday, I guess. But this kind of back to compatibility is actually a huge driver of growth. Why? Because it doesn't prevent people from upgrading. Many users, they have no idea what all of these things mean. They don't know what MySQL is. They don't know what PHP is. They find a plug-in that answers their call, and if it works, great, if it doesn't, oops, and that's about as far as they will get. All they really want to really focus on doing is they want to be able to publish on the internet. WordPress lets them do that. If WordPress at any point becomes too complex for a user to publish on the internet, they're probably going to stop using WordPress. So in the case of backwards compatibility, we have to be really careful because we want to really try and build smarter. So for example, backwards compatibility, it's kind of interesting, Helen mentioned this earlier, where it's kind of the two-way street. It's not just making it so previous stuff breaks, but also there's the forwards aspect, the forwards-looking aspect of. You want to make sure that you're not kind of like putting your feet in cement later on. So maybe we might not make another change for two more years, but we want to make sure we're at least going in the right general direction to avoid that. Of course, in WordPress, there are a lot of case studies for this, and I had quite a bit of fun researching them for the last few weeks. They're this comment. If you know WordPress well, you will know that this is probably a bit of a lie. This comment in the exact form appears in the code base like five times. Some of them date back to like very early days of WordPress, but at the same time, well it hasn't been removed yet in many cases because it hasn't been a burden. Because if it is a burden for future development, it probably would get stricken, but there's no real reason. It's sitting there, it's harmless, it's not causing any of the bugs, it has no other side effects. Maybe it could just stay there. Maybe it's a little bit of extra technical debt that we're taking on, for sure. WordPress is not short of that, but that's not necessarily a bad thing. And also we try and be pragmatic, and we have said before that WordPress never breaks any changes, that's a lie. Totally break things all of the time. The difference is that we're very careful about it. And usually it happens after a bit of a delay. Good example of this is that I'm gonna talk about media in a little bit, and the current media library, pretty great, old media library, still kind of around. Doesn't have all of that new functionality still. We're not deliberately bringing back stuff into that old interface. And so what we're trying to do is we're just trying to be as much as possible just careful and say, if we're going to break this thing, let's at least not have it fatal error and perhaps trying to figure out what is the most graceful way for this to fall back. This is a help screen, which is not all that useful as a help screen. Going back to WordPress 3.2 or so. And what we ended up doing is we changed it. Now this was just like one giant thing of text that was filterable in the admin. Not very effective to work with. We changed it to this other thing.  And what we ended up doing is we were able to still handle this in a nice, easy, backwards compatible way. We still ran the old filter. If anyone and added any more help to it, we just appended it to the bottom in a new tab. Additional information. That way, anything that a plugin was still doing was not being lost into the ether. It was still there in some way. Was it perfect? No, if we wanted to handle this in a backwards compatible way, we wouldn't have launched it. We would have left it as is. It's not always what it means. We have other random things in core, like setting superglobals, which is not really something you should do, but some plugin was looking for this value and activating a plugin. So this is a thing that's been existing in WordPress core for like five years. It's pretty harmless because, well, it's there. It does this thing, but it otherwise doesn't really cause any side effects or any other problems. Few releases ago, press this was written. Really, really fantastic effort to improve the book Mark Lit. And from scratch, completely from scratch. And this happens sometimes at WordPress. For the most part, a lot of features are not rewritten from scratch. And yet, it all still worked with all the other things it integrated with. It had a number of URL arguments that could be passed in. It had all the old book Mark Lits and the new book Mark Lits, and it just worked. And that's kind of a nice graceful way to handle this. You can go back even further than that to WordPress 3.0, which merged in Multisite, which was originally WordPress Mew. If you've been around since 2009, 2010. Actually, this is funny. Matt Mullenweg announced that WordPress Mew was being merged in to WordPress 3.0 on stage at WordCamp San Francisco 2009. I was not yet involved in the WordPress community, but all of the other lead developers were, and they didn't hear about it either. And so this is one of these things where it's like we have this thing that we want to do, now we have to go about doing it. That's also not a bad way to think about software in many cases. The programming is kind of like a, it's the means to the end. The goal was stop maintaining this separate fork that was 99% duplicative and 1% could be better. And instead, try and make it so we could perhaps improve the whole ecosystem and bring this functionality to WordPress. So I was involved for this cycle and we spent months trying to figure out all the different things that we had to merge and bring in together. And in this particular case, we ended up turning off a lot of stuff.  And by the time you got up there, they were gone. So it was a bit of an upgrade path, for the most part, didn't affect a lot of people. And even the ones that it did, it failed fairly gracefully. All new installs didn't have all this extra cough, all the old installs still did. So a lot of times we're making these case-by-case decisions. Sometimes it's a little harder to handle. Sometimes we have little comments like this. This is actually in WordPress right now. We're like, this is random thing that we needed to handle, probably going back like to 2005, 2006, but it's easier to handle it than to just break the site entirely. This ends up happening a few times. This is also probably my favorite comment in WordPress. And then what follows is a thing that is not really decipherable. So maybe not the best example. In some other cases where this compatibility is a thing is that when WordPress 3.2 came out and the PHP minimum requirement bumped to 5.2, we realized great, we can use JSON now. Problem is a very, very, very small percentage of sites did not have JSON enabled. I'm not entirely sure how these servers functioned, but they did. The problem is that 0.012% of sites is still in the tens of thousands of sites. They didn't do anything wrong, so there's now a library in core, you can find it if you try, that parses JSON in PHP for these sites. Never gets loaded otherwise, it just sits there. But it took us a day to find the library, test it out, write the little compact code, put a shim in, it's done. And that was not a lot of time, and it was totally worth it because then we never need to worry about this problem again. Suddenly, we are portable with even more servers, we don't need to worry about this, there's gonna be no more support, we've cut down the amount of support that we have to deal with. And plugins, of course, can go ahead and use JSON without really being worried about like, do we need to fall back for this? Cause that would be kind of, that would be kind of lame. Who's been around in WordPress since plugins didn't exist? Number of hands. So this is really great file called myhacks.php. It used to sit in the root. And what would happen is, it would just be included if it existed.  There was the option, there was a check box in the UI until like five years ago to turn on legacy myhacks.php support, which no idea what that means. So that's gone. But yet if the option is still set and the file is still there, it still pulls it in. This actually code right now WordPress that will pull this file in. You're like, well, that's kind of a waste. Okay, well, right now it's one line of code and basically one CPU cycle cause it's looking up a value in cache before continuing. So it's not really causing a whole lot of problems here. And if you look at the startup for WordPress, there are probably a lot of other larger things that you could target to make it faster. This is probably not it. But someone from automatic said, you know what, I wanna clean this up, I wanna remove this. I said, okay, great. Question, how much do you think it's used? I was like, I have no idea. So he ended up looking to see how many WordPress sites this is a few years ago had it installed. And he only found it on six of them, but that's still six. But my favorite thing about this is that it included both co-founders of WordPress, which in fairness, they haven't even been using WordPress for quite a while. So it's potentially understandable. So rather than breaking it, it's just still there. I don't know what's in these files, but it's still there. It doesn't really cause any harm. It still sits in core. Another thing that I worked on in particular was a WP theme. This was in WordPress 3.4. It was a complete replacement of this gigantic, ridiculous, multi-dimensional associative array of theme data, which it usually needed on average, like half a percent of the data on any page load. So obviously, of course, we calculated and loaded the whole thing. It was so big that on WordPress.com it couldn't fit into a cache bucket. So they had to chunk it up. Wouldn't fit in a memcached. And so we ended up doing a complete replacement of this. And it was way more performant. It was orders of magnitude faster. It added support for a dozen new features, including things like internationalized theme headers. The customizer came in this release. Custom headers and backgrounds all happened in this case. And there were no reports of breakage, which is funny because we were passing around the filters and the functions and everything else. This theme object, which was array, and then suddenly it was an object and nothing broke. The reason why nothing broke is because everything became a magical PHP object, which is not to be confused with the rest of all the objects in PHP. So this is thing called array object. If you haven't heard of it before, it's pretty cool. This is just an example of one of the interfaces it implements. We could do something like this, where that's actually supposed to be offset get. Type O in my slide, first problem. And you can go ahead and actually, this is an array, right? Like we're calling it as if it's an array, but it's not. And it spits out hello world. This is just something that PHP could automatically do. So now suddenly, we can take the return value of when the theme was an array and then when the theme is an object with decorated methods. And then also when the object gets cast to an array because some of their array of WordPress is doing this. And we're able to kind of like standardize all of this in one go pretty easily. There's also this thing called magic methods in PHP. So you might have seen a magic getter before, where this is for properties in this case. So world as a property doesn't exist yet. We can go ahead and call this. So this took this entire effort. It was one person six days, about 12,000 lines of WordPress where we ran. And nothing broke in the end. This whole API, which it was not an API to begin with, let's face it, was upgraded into a real one. Nothing broke. The whole thing made it a lot easier for things like the customizer and media and a lot of things to be written in the ensuing years. And it was just a really nice way to be able to ship a new thing into WordPress. So in this case, we're able to upgrade an entire API in place. We're able to enable the user facing features. We made sites faster. And these are a bit in order of what preference is, right? We were also able to empower developers to build new things, standardized all the craziness under the hood, and didn't break anything. Not bad for six days of work. In WordPress 3.5, there was media.  There have been a few talks about this. REST API, Calypso, a lot of things here. Now, when we tackled this, we didn't really set out to break plugins, obviously. That is actually never our intention, at least not on purpose. But so what we ended up doing is that we realized that because of the ecosystem, because of a desire to kind of handle this gracefully, a lot of things still went back through PHP, because in many cases, it had to, for example, go into the database, whatever it might be. So when you send a link to the editor or you upload a post, of course, it gets processed by PHP before it gets sent there, and we're able to still do things like fire filters off when we needed to. And so any plugin that was doing anything crazy on these random send editor, media, whatever hooks, that there were a lot of plugins in the library doing a lot of these things, we were able to handle this completely transparently without any problems, even though we were completely gutting the interface, left it for dead and build a new one in Backbone. There were some things like attachment fields to edit and attachment fields to save that ended up creating these giant arrays of HTML that would print out your fields. So the new library automatically handled this by default. It was like, oh, you registered some fields previously. Well, I guess I need to render these in JavaScript instead and then save them with an AJAX call.  And they were able to then suddenly use the new functionality of media without any problem. So this kind of like fully transparent to the user and to the developer is really important. Another example is, you guys remember this? Good old days. This is the old media library from, this is 2.5 to 3.4, give or take. And you can see the tabs at the top, from computer, from URL, media library, and these were set in PHP. There's a filter called media upload tab, still exists today, can still use it if you wanted to, but we still kept it in WordPress. We got rid of the labels but they weren't useful. And we got rid of everything when we were done. So we ended up with an empty array. Unless a plugin added something. So if a plugin wanted to, a plugin can today, not saying I recommend this, but a plugin can right now add a bunch of tabs. And then suddenly this is the new media library and they'll show up. That's it. And then the best thing is that they will actually, if you go to one of those tabs, it will render the original tab in an iframe firing the old PHP hooks and give you back your old media UI. Completely seamless, fully integrated, new interface, new technology stack, JavaScript, not PHP, didn't affect the user at all, didn't break the plugins at all and from start to finish we were done in two days to that entire piece. So this of course made it so when you upgraded to 3.5, you didn't need to really worry about all this stuff. It was pretty great. A number of smaller edge cases, things we didn't try to, that we didn't realize we were breaking of course. There were a lot of situations that we were considering, how can we meet all these requirements in a sane way, in a pragmatic way and when we can't, when can we just kind of like shove it off to the side and don't worry about it anymore but make sure that the site doesn't break in the process. Vastly improved user experience. Placed the whole PHP driven thing with the JavaScript thing. The media handling was way better. Developers had more tools to do things and we didn't need to break anything. So hypothetically, conceivably, we could migrate the WordPress dashboard to JavaScript and still actually keep a lot of things compatible. Hypothetically, maybe. And then I'll close with talking about how a lot of the times, especially when dealing with these kinds of things, documenting the decision is of course really important. So there's a lot of places in this case in WordPress where we documented on the handbook or what was the codex in the code of course, sometimes in a commit message but not everything really belongs just purely in documentation because in a project that is as large as WordPress, you're gonna have situations where three or four years later, you, and I don't mean someone else, I mean you will come by and have a completely different answer to the same question and you will be wrong because you three or four years ago was smarter. This happens to me a lot. Like wow, that's a really smart comment, you scroll up. Oh, I wrote it, yes. Right? And so that can be interesting. How do you actually document these things? WordPress in many cases tries as much as possible to codify these design decisions in its testing framework. So for example, four or five years from now, someone decides I'm going to go ahead and change this thing and it was written in this way eight, nine years ago and it was someone proposed like can we change it? And the answer was like no and here's why and I did a lot of research. In a lot of cases, the ticket will just then be closed. This happens in all software. They're like nope, not a good idea, the ticket will be closed. What if we enforced that as part of our unit test? A failing unit test could just trigger an immediate review. It can say like, well there, take it over here, you're about to break it. Actually you just did, right? There are different ways to approach this. So one of my favorite ones is that I don't know if you ever noticed this but if you're looking at a post object or a common object these are strings, not integers. And if for some reason we change these to integers which we've tried to do at least twice and every single time we'd get a ton of bug reports saying like, hey by the way you broke this thing because I was doing a strict comparison here and here and whatever and then by the way WordPress broke over here and Drupal broke over here and a lot of things went wrong, right? So we have a unit test that just enforces that. It's simple, this is not hard but it's a thing that we need to consider. If you saw Gary Pendergas talk this morning about what would usually called Trojan Emoji now, thank you Brian Krogegaard for coining that one. Where we have a situation where there's actually a type of serialized class that cannot be serialized in WordPress, like it will break. If this ever got added into core, like this special kind of serialized class got added to support foreign core, we would be immediately committing to WordPress core a remote code execution vulnerability. That's not good, so there's a unit test for that. There's also little comments like this, like double serialization is required for backup probability, which is true. Also the world will end, see the security release. This is sitting in WordPress right now. And then finally, more recently, there was this HTML embed, WordPress O embed, this is a new feature in WordPress 4.4, I'm sure you'll hear about it tomorrow. And there's this giant, I'll see this, you go to YouTube, like copy and paste the embed code, paste it in, things like that. Well, there was this like problem where we have this code in this JavaScript file that then got inlined and WordPress in its infinite wisdom on older sites would change it. So you're gonna see the change there, the ampersands change to hex. So that's not good. So now we have nested if statements instead. We removed all of the ampersands out of this file, which is not exactly the most effective way to write JavaScript. So how do you enforce such a decision like this? How do you prevent someone else or yourself, a few years later being like, wow, we should probably remove all these nested ifs. Someone forgot that there was a thing called and. So there's this comment at the top of the file as of yesterday, this file cannot have ampersands in it. This is to ensure it can be embedded in older versions of WordPress, see this commit. Well, that's good, but this is a pretty bad thing. And I don't usually read the comments at the top of the file. And I'm not gonna comment every single situation where there could be an if statement that could be optimized. So we wrote a unit test, pretty simple. It checks to make sure there's no ampersands in the file. Simple, easy, codified, cannot break this. Except for the fact that this file is also uglified. Uglified.js, it runs all sorts of compression and optimization algorithms. So you can turn off optimization of conditionals. The problem, of course, is that there is no setting in uglify, I'm really glad for this, that says do not use ampersands, because that would be kind of weird. But we cannot use ampersands. So we now need to test the compressed JavaScript, and I'm just gonna show you this briefly. I don't think you'll be able to see it too well. Yeah, that's a nasty regex right there. This is now in our unit tests. It's not in WordPress, it's okay. And in this case, what it's doing is it's actually very much carefully checking to make sure that this minified file does not have an ampersand in it, no matter what. So TravisCI will pick this up and it'll flag it and it'll say like whoa, pause, you just broke everything. And by everything I made a very random HTML embed feature that not a whole lot of people use because it's only on older versions of WordPress, blah, blah, blah. But that's not all. In addition to the unit test, we wrote four paragraphs explaining exactly what's going on. And if you wanna take a look, it's 35762, that was the chain set that added all this code.  So that is codifying your decision, putting it directly into there. So going back to philosophies, which I mentioned earlier, we have a number of these core development philosophies available on WordPress.org. They were written many years ago before I got involved in the project. They're really great. I think that they personally have affected me a lot in how I think that products should be designed. There's a lot of these. You've heard of a lot of these decisions on options and working well out of the box and things of that nature. But backwards compatibility is actually missing out of this. It's not there. And the reason why I think it's not there personally is because I think that it's only the means to an end. I think that the end goal is that we should make it so your users can actually trust your software. So if we want to break things, that's okay. The philosophy is not never break something. The philosophy is make sure your users can trust your software. In reality, the ability to establish and then maintain that trust, it's essentially a contractual relationship with users and developers. We don't get a whole lot out of it if we do it well. But if we don't do it well, we're not really gonna have that user or developer for that much longer. So I think in this case, it's really just very critical as much as possible to respect the trust that user places with your software and to really consider all the different things that you can possibly do to make it. So that is okay. Thank you very much. I have, I think, about six or seven minutes for questions if you wanna come up to the mic up in the aisle. All right, Sealer. Not really, anything? Wow. It's my 47th WordCamp. I've never had no questions. When it comes to PHP versions, I think you're totally right in the decision with 5.2. But obviously at some point, we have to make that decision. So I'm wondering if you have an idea in your mind and more specifically, like you're interested in coming up with a pattern, like a rolling pattern after X number of years, we deprecate support for this version. So the problem with that, with the idea of a rolling pattern is that PHP just recently changed its own supported versions. So particularly with seven and with each of the major versions there's a lot of flux there. We're now five, four is now end of life and then a year each, everything will start going away. I think PHP five points or PHP seven is end of life in like 2018, I get that right. I don't think that our minimum requirement will be seven by 2018, just throwing that out there. So I think a lot of this is maybe wait and see to see how the whole ecosystem reacts. But I'm sure that Matt will talk about this tomorrow, I'm not saying ask him about it, but I know they'll probably end up talking about how we spent the last year trying to engage with hosts. Deon Hulse in particular worked a lot on this to try and understand a little bit how they can upgrade more. There's a number of really cool success stories there as well. So I don't know exactly. I would like to stop supporting 5.2, but at the same time there's a few million websites that are still running 5.2. Personally, I care more about the older versions of WordPress than I do about the older versions of PHP. And even on 4.3, the latest version for the moment for WordPress, something like I wanna say like six or seven percent of sites are running 5.2 still. So that's, I mean, that's a few million sites right there. And we wouldn't wanna just break it just so we could start using namespaces as cool as they are. I'm curious when you talk about replacing a really big feature like the media library or something like that, when you're trying to maintain backward compatibility, what's the process? Do you just start out by building, like this is what we think would be the coolest thing and then going backward and figuring out where the backward compatibility needs to fit in or do you start with like these other things that we need to maintain and then going forward? What does that process look like? So in my experience, it has usually been the first one. It is like we want to build this thing, we do not wanna be constricted in what we're building. And then let's figure out where we might need to make some adjustments. There have also been some times when we've slipped fatal errors into core on purpose for like a few betas or RCs just to see if anyone would, see if anyone was using that particular feature, see how many reports we might get, maybe to like let them know maybe stop using this thing. We're not gonna leave it there, of course, but there are a lot of, we might accidentally, that's why we have unit tests for this stuff. And so there are little things like that that we try and maybe, that we try and watch, but in media's case in particular, this really was like we're gonna build the thing and then we're gonna like shim in anything that we possibly can. And this happened with, I only talked about like two things, like post-parenting, menu order when you're rearranging galleries. We did a lot of random little stuff that was able to, in many cases, continue to support a lot of the crazy plugins that were in the media landscape, like some of the gallery plugins and things like that, but we realized that it can be a little easier to banding them. That said, it can be helpful to fully size up what you feel like you might need to support. But two problems with that, one, it might not be possible to do so. And two, if you do that, you might really constrain yourself from being able to think about what the next product is, which I think is a lot more important than how it's the best way to technically implement it. Any other questions? All right, thank you very much.