Hi guys, welcome back to this channel. It's Meks from the Meks creation. Thank you so much for coming back to this channel. By the way, if it is your first time to come across this channel, please consider subscribing by pressing the subscribe button. By the way, don't forget to hit that notification bell because it's very important you'll be updated when I upload a new video. It also motivates me to do more content and chat for more content. In today's video, we are going still to look at what we call the opportunities in the Gulf countries. Remember, we talked about most of what you call about the Gulf countries, the Middle East countries. We talked about Oman, we talked about the UAE, we talked about Qatar, we talked about Abu Dhabi, we talked about Kuwait and today's video, we want to look at some one unique country and that is what you call Bahrain. Remember, most of people have also taken Bahrain to be one of the favorite spot or one of the interesting spot for those people that wish to look for opportunities in UAE and the Gulf of the Middle East. In today's video, we are going to look at the top 10 security companies in Bahrain. Remember, when I'm making the research regarding the top security, top security companies or any opportunities or top cleaning companies in any way, there's a lot of factors that I get to consider. There's a lot of research I do and that research I normally do, I consider a lot of factors. I'll consider factors of salary, I'll consider factors of accommodation, I'll consider factors really, I'll consider the worthiness of that company in providing what it promises or what is agreed on the contract. That is where my basis of research. So when I'm definitely putting these companies, I might have not mentioned your company but sincerely it's that to do this, we normally have to look at the payment of salary, we have to look at accommodation, we have to look at food, we have to look at other benefits if what you're supposed to get as agreed in the contract. If the company contrary agrees or gives those exact benefits that it promise to give in the contract, then probably it will be among my list. So in today's video, we are going to look at the top 10 security companies in Bahrain and this is my own research that I did and this if I don't mention your company is not in a bad name but this is my research which I did basing on the factors I talked about. In position number one, we look at what you call international security services which is called SPS. International security services was formed in 2012 as a fully owned Bahrain company that has grown to one of the best quality oriented known security organization, delivering what we call a high quality service to variable customers. It is ISO certified company. Remember the international security services SPS provide services like the man security, CCTV, maintenance, we have patrol serving, we have response then also have what you call electronic severance in one or the other. In position number two, we look at what you call Kingdom security protection services. Kingdom security protection service is operating in the field of integrated security. It's also one of the good companies operating in the field of integrated security management and supplies under what you call the Securo group since 2016. The management have extensive background in law enforcement in the Kingdom of Bahrain and as a private security services. Remember it deals in activities such as the manned service, the risk assessment, mobile patrolling, security consultants, disaster and a margins response. Those are services that have been provided by what you call the Kingdom security services. In position number three, we look at secure me. Secure me is a security guard service team maintenance, IST solutions and it has a lot of what you call option visual solutions. It deals also in what we call the cleaning services. It is committed to providing clients with the best services 24-7 to meet the requirements and the business strategies. Remember some of the services that it deals in what you call IT solutions, the cleaning services, the auction services and also what you call security guards, security system maintenance and also what you call the manned guarding at the same time. In position number four, we shall look at Batsco security services. Remember it is a private of the security services to major corporations, what we call the major corporations. We look at the government entities, the government agencies and also industrial companies and the commercial clients. The services that are being provided by the Batsco security will include guarding services, security consultancy, security system and also manned guarding at one way or the other. In position number five, we shall look at what you call the ego guard. Remember the ego guard security company is currently providing security guards in many sites across the kingdom of the Bahrain. It offers profession and well trained and specially recruited to provide sites and client needs. Remember some of the services that are being provided by the ego guard include guard services, corporate services, electronic service, servicing then also what we have as valet parking. Remember when we are talking about valeti parking we are looking at that custom day of people's parking, people's cars as they have to live them at the same time. In position number six, we are going to look at secure services limited. Remember it's also another private security companies which is ICO certified with the registration number 9001 as a registered company. It was established in 2000 to provide a range of professional security related services of international quality to the banks at the financial institutions together with what you call the commercial and the private clients. Remember it provides services such as the cash in transit then we have technical or what you call cash processing because remember it deals so much in what you call the financial services. In position number seven, we have what you call secure core. Secure core is one of the leading advanced security and technology integrated with which has been, which okay, which has been operating in Bahrain since 2012. As a pioneer in the industry it has a unique distinction of what we call providing a solution in both mandate guarding as well as electronic security services or security systems and when we look at some of the services that have been provided by the secure core, we look at system access control, we look at system fire fire alarm and separation, we look at entrance control, we look at x-ray and explosive detectors, then we also look at traffic management, then out to door perimeter security and also we look at what we call the vehicle tracking system. Those are some of the services that have been provided by Secure core so and it's actually a very good company when it comes to salary and payment which grade is. Remember when I am talking about this company, all these companies pay their salaries in time, they pay their salary well and the standard the living conditions of the employees are quite fair to according to what was agreed in what we call their employment contract. This is such a survey that I took in what we call a given portion of individuals that are coming from this country. In position number eight, we look at what we call jzero security company and we say it provides what we call professionally trained uniform security officers for financial institutions, corporate headquarters and office building residential towers, shopping malls and healthy care facilities. Remember it has unique services such as the unified guards, security assessments, patrol services or also what we call employee escots, homeland security, residential security, VIP security and also what we call the gross management. Also what we call the gross management at the time. In position number nine, we shall look at what we call the delta security services This was formed as a fully owned Bahrain company in 2011 with a mission to provide the latest technology and a high-end security and safety equipment to what we call the regional market services. Remember when you are looking at for CC, when you are looking for CC TV severe resolution, it is one company fire prevention and control. It's the same company you look at perimeter security, X-ray baggage scanners, explosive access control system, mandate security services, security and safety consultants, parking management system, these are some of the services that are being provided by what we call the delta security services. In position number 10, we have what we call handmade security services where they are committed to giving what you call lasting customer care or partnership with the customer, offering what you call the high quality services of up-to-date market information with less technology and philosophy in mind to deliver what you call extraordinary services. Remember the services that are being offered include management services, air conditioning, maintenance, spider-mind cleaning, security services, cleaning accessories, maintenance services, tour and travel. So those are what we call the top 10 security companies in Bahrain that I did my research. So for anyone that would wish to go to Bahrain to do any security job, you probably can look onto these companies, they are really very good. They are salary is good, moderate, very good, they are living conditions very good and there are a lot of opportunities on what we call career development. Remember most of the people, most of you take up careers, you take up, you want to take in career and security, but remember a good company, that company that will give you opportunity to take up a career is for example in security or in any way organization. So that will give you a good company in any way is that one that is going to give you an opportunity to improve yourself and upgrade yourself aware. Thank you so much for coming back to this channel. Remember it's mechs from the Medspression. By the way, don't forget to click on, don't forget to hit on the notification bell. It will be the only way that will be updated when I upload a new video. Don't forget to give up the thumbs up. It's the only way that I will be motivated to make more videos and if you feel my video is very important or it's very useful, please share it, give it a thumbs up and share it. By the way, don't forget to drop a comment in the comment section or it's more than happy to get back to you. See you again. It's mechs from the Mechs creation.


I remind members of the Covid-related matters that are in place and that face coverings should be worn when moving around the chamber and across the Holydude campus. The first item of business this afternoon is time for reflection, and our time for reflection leader today is Reverend David Burt, minister, old guru and Ashton Church. Good afternoon, Presiding Officer, and thank you so much for allowing me the privilege of sharing with you today. Today is Tuesday 21 December. This is the day of the winter solstice. It is the shortest day of daylight that we have here in the Northern Hemisphere. For us, it is a symbol of the start of our journey out of winter darting. The darkness starts to get shorter, daylight longer. Also today, there are now only three more windows to be opened on the advent calendars. If you happen to have a chocolate one, only three more chocolates to go. The wait is nearly over and Christmas is just around the corner. For the church, the advent journey began on Sunday 28 November, as we lit the first advent candle. Sunday there, we completed that countdown as the fourth candle was lit. We saved the last one in the middle of the ring for Christmas Day. As each candle is lit during the Sundays of advent, we get ready to receive the wonderful gift of the Messiah, the light of the world and, as each candle is its own significance. The first one reminds us of hope, hope of better things to come. The second candle is for peace, peace in our lives and in the lives of all throughout the world. The third is for love, that we may indeed learn to love one another and to love this wonderful world in which we live and to know the love of God. The fourth candle is for joy, that sense of happiness and wellbeing that all is well for us. In these difficult Covid times, I believe that advent candles have taken on a extra resonance for us. We need to have that sense of hope for better days to come, that the darkness that Covid has brought upon us can indeed be put to flight. The uncertainty of these days has created worry and fear. The promise of peace in our lives, in the lives of our community, the length and breadth of our nation is important for us to hear. Throughout these difficult days, we have witnessed the power of love in action, as neighbours have rallied around one another, random acts of kindness have taken place and been shared, and we have seen the outpouring of wonder for the NHS and all who have been there for us in our time of need. In these dark times, in the times of all the difficulty, we can still know that sense of joy, that even one small candle lit in a dark room dispels all the gloom. In the Gospel of John chapter 1 of verse 9, we read the true light that gives light to everyone was coming into the world. For Christians, that light is Jesus Christ and that for us is the wonder of the Christmas message. I pray that, as you start the last few days of your work in this Parliament for this year and as you contemplate what your Christmas experience will be with all whom you share your time with, that you may be blessed with the living light of Christ, and that for us all there may indeed be hope, peace, love and joy this Christmas and in the year to come. Thank you for allowing me the privilege of sharing with you today. I wish you all a peaceful Christmas and a blessed new year.


Okay, awesome. Cool. So what you can do is you can, um, can you share your screen and I can kind of just walk you through where whatever we need to work on. Yes. So I have the, let me find the Oh, here. Because yesterday. Remember, we We set up the custom conversion Yeah, my We Yes. That's what we did yesterday. Perfect. So what we'll do is we'll also set up one more conversion. So while we're here. Why don't we do that. Let's set up one more conversion and it's going to be the call confirmed page. Okay, right. I just yesterday we did the thank you page. Yes. So let's go and just do the the the call confirm. So go to Cartier grab that URL. And those are basically your two conversions. Those are the two pages that we want to tell Facebook when we run ads. Our objective is to find people that are likely to get to these two pages. That's what this is all about. So grab the call confirmed everything after the WWW dot Um, And so when you go and run Facebook ads, you'll be running conversions and these are the two that you'll be running them to And this is again, just like the standard events. So rather than using Facebook standard events, we created two of our own. Right. Okay, so I need to click create custom Yep. Yep. And then I need to name it. So Yes. So we're going to name this. It could be scheduled appointments. It could be, it could be Yeah, it could be appointments. It could be HB guide. Yeah, call confirmed or call or guide appointments. Perfect. Yeah, appointments. Perfect. And then select your own category. Click on that one down there. You can leave that one. That's that pixel. Anytime you see the green. That's good. That's the pixel. That's active. Whenever you see the green Okay. So click on select your own category. And then we're going to, we're going to hit the drop down and we're going to look for scheduled Yeah, there we go. So there's our standard event. That's what that pretty much is we limit our own and go ahead and paste in the the URL right there. And then always hit the drop down. Yeah, always click the blue and then and then you'll be able to click the blue button. Okay. Perfect. And then again, what we had to do yesterday is we had to And you know what, yeah, we had to open up a new tab. So hit the plus sign above there at the top, open up a new tab and paste in That that URL go to paste it right there and open up that page. So this right here allows Facebook to read it. So right when we right when we open that up. So now now that pixel. So if you look at the pixel helper click on the blue, the number four up in the top right click on that and you'll see what we just set up. So there's our standard event. I noticed this from yesterday because now it has this type of symbol. Yeah, set up method custom conversion. Yep. So that's our custom conversion. Again, Facebook, the standard events are just general, but we want to name our own. That's why I do it this way. Okay, so there's our own HB guide appointments. That's our custom conversion. So now go to the Facebook page. So again, you got to open it up in a new tab, which is what we did. And then we come back over here and we refresh this page because we need we need that inactive wind it we need it to come active. So the way you do that is we opened up the page and another tab we come over here. We refresh this one and that should now go active and it's active. There is is there. So now you're literally you're literally ready to start capturing leads like you're ready to start running conversion ads to capture leads. Bottom line. But what we want to do first is we want to make sure that we're creating these audiences. We want to make sure that we're able to Set up custom audiences because that's that's going to be the most important as well. So those are basically your two conversions. Those are the only ones you'll ever need to focus on. So if you ever run a seller guide, for example, do the same with that. Thank you page. Set up a custom conversion. Okay, right. So, And yesterday you said my first landing page where people go to download the home buyer guide. That's not a conversion. That's a custom audience. Yes, I'm glad you brought that up. Yes. Because as as we run Facebook ads. Here's the way Facebook really looks at it. And here's here's kind of the best way I can explain it. When you're when you're running an ad, your, your objective is to get them to your goal. Let's call it a goal. Your goal when you're running a Facebook ad your goal is to get them to click learn more and go to your landing page. Right. That's your goal. But Facebook, what they want to know is they want to know what your ultimate goal. Your ultimate goal is to get them to fill out that form and go to the thank you page. Yes. So that's why we set up. That's why we set up the thank you page as a custom conversion to let Facebook know, hey, that's the page we want to get people to However, not everyone's going to get there. Not everyone's going to get to the thank you page. A lot of people are only going to land on the thank you page. Like how many times has that happened with you? Like you're online. You might see a cute bag. You might see some cute shoes. You click on it, but you don't buy it. That's a custom audience. That's a custom audience. She clicked. She got to the product page, but she didn't buy. That's a custom audience. Now, if that, if that company, if that advertiser were smart, They would have put you in a custom audience and they would have retargeted you and showed you another ad with maybe a different bag. Because they know you got that bar. You just didn't pull the trigger. So same thing with this, the custom audience. It allows us to build an audience of everyone who's landing on the landing page, but hasn't landed on the thank you page. Anyone who clicks on my ad and comes to my landing page. There had been some interest there. There's no way you're going to just click learn more go to my landing page. If you're 15 years old and don't even have a house. Like there's no way or let's just say not not because you're focused on home buyers, but that was kind of a bad example. But let's just say you're 15 And not even thinking about a house. There's no way you're clicking on it. Right. The only people are clicking learn more or people that have some type of interest. But again, not everyone's going to fully pull the trigger and opt in every time. But those are people that had an interest and we need to make sure that we're we're we're putting all these people in a certain category. And then also also the leads. Let's say, for example, this is where custom audiences really play a huge role. Let's say, for example, I see your ad I click learn more I go to your landing page I fill out the form I then go to your thank you page. That thank you page. Yes, we set it up as a custom conversion. But what we also have to do is we have to also set up as a custom audience because I need Facebook to also put all the folks who landed on the thank you page. I need all them in their own custom audience as well. And the reason why that's so important is because as I continue to run ads to my local area. I need I need to make sure that that custom audience is excluded because if you're already down to my buyer guide. Why do you need to keep seeing my ads. You don't Custom audiences either you land on my landing page and I include you and you haven't put out the form so therefore I include you and retarget you for future ads. Or you come to my landing page. You opt in go to my thank you page. Now I know you landed on my thank you page because Facebook's pickle is tracking you and now you're in a custom audience. I know you landed on that thank you page. So therefore, when I go run future ads. Now I'm going now I'm going to exclude you. Right, because also when they land on that thank you page. They've entered my email sequence. Yeah. Cartra. Yeah. Okay. Yeah. However, they may not have clicked on my button to schedule a call on my thank you page. Yep. Yep. Yep. But I'm I'm nurturing them through my cartra email sequence. Yep.  They go to your calendar. They put their their their best time and the day they click schedule. Now they go to your call confirmed page. The pixel is tracking that and that's also set up as a custom conversion, but then we also are going to set set up the call confirmed page. We're also going to set that up as a custom audience, because again, that's a specific audience that I need to exclude from seeing future ads. Yes. Okay, right. Make sense. So, so our custom conversions are good. We're done with this. And here's what I would do bookmark this page so you can always refer back to your custom conversions. Oh, we did that yesterday as bookmark. Did you. Okay, cool. Okay, awesome. So now let's click on the dots to the left. And let's go to audiences. You should you should be able to open that up and see audiences. Perfect. Okay, so there's going to be a few different pages that we create audiences around One's going to be the landing page. One's going to be the, the thank you page. One's going to be the call confirmed page. And that's pretty much it really And again, once we go in and set up an actual all walk you through just the ads. So you, you know, you can run it later or whenever you want, but I'll show you where just like I showed you yesterday, the custom conversion Right, you clicked you clicked in the red box and then you saw the green dot you saw that custom conversion yesterday, which was lead That's who we would target for the custom conversion, but it's very similar with the custom audience as well as we go and set up the ad. We're going to be including or excluding These audiences as we set up the ad as well. So we'll go through that part. So yeah, click on that one. Create a custom audience and look alike audiences is something you'll do later on, but look like audiences is super, super powerful as well. But let's let's let's focus on this first. So many different things that you can use to create a custom audience video is going to be one. In fact, you know what, let's do that one first because you ran your intro video. I did. Yeah, let's create an audience of all those who watched it. Okay, so we can retarget them with ad number two. So go ahead and click choose a Yeah, click right there to yeah, perfect. And then let's go with I mean I've I've tested several several of these as you go higher in percentage. It's lesser people right because if you have a three minute video only a handful watch 95% of it. Okay, nobody watching the whole damn thing, not everyone right so so as you go higher in percentage it's lower the amount of people in that audience. So what I tend to do is I tend to go with the through play like if you sat there and you watched at least 15 seconds, you're going to see another video for me. Especially if you're my targeted area. You know what I mean. So I'll create I'll create an audience. I'll either created around through play or or I'll create around 25% Okay, quick question. So my intro video was only 26 seconds and I made was like 38 seconds. So it's super short. So is that good or bad. It's I mean it's not good or bad, but at the same time and this targeting this creating the custom audiences. Oh work, no matter what because as you can see the lowest one is three seconds. So you could have made a five second video and I could retarget everyone who watched at least three seconds of it. So so it's not it's not the fact that it's it's it's such a short period of time. It's more of the way I look at it. It's more of the fact that how much how much value could you have possibly given me in 20 seconds. Right. How much of education, how much, you know, that's what I kind of look at these videos should be value based and educational based. Okay, if we have time towards the end. I would like to show you my intro video. Yeah, for sure. For sure. So let's do through. Let's do through play and you can create as many of these audiences as you want around one video. So it doesn't matter. Let's just start with this one. Let's start with through play. And then go ahead and choose video. You'll click on choose video right there at the top. And then you'll find that video. Oh, that's this one. Perfect. So let's let's let's hit confirm on that one. And then and then let's go ahead and give it a name. So the name is intro video through play or intro video 15 seconds. So something like that, you know, like you can get perfect intro 15 seconds create audience. Perfect. Okay, so that 365 days. Was that correct. Yeah, that's fine. Okay. Yeah, that that's fine. That's perfect. So Oh, it's populating now. Oh yeah, for sure. It's ready to go. It's ready to go. So now what we're going to do is we're going to create we're going to create three more audiences. So let's click the blue one again.  Create an audience. The first one. Yeah, perfect. That one. Actually, I think you clicked on something else. Let's X out of this one. X out of that window. Let's go back real quick. The other option said expand an audience. Yeah, that's fine. X out of this one right here. Let's X out of this one. Go back to the other one. Okay, let me put the thing is in my way zoom. Okay. Yeah, you could drag that. And let's just hit create audience and then We should be we should be good. Yeah, what we're going to do is we're going to create an audience. So, so click that blue button. We're going to create an audience around the landing page, the thank you page and the call confirm page. So there's going to be three more audiences. Okay, now create Custom audience right. Yes, right there. Perfect. Yeah, audience insights is just that's kind of more for for nationwide type of brands. When you're targeting the entire country and you're looking for the best targeting to narrow down to a specific interest. That's for like more nationwide type of business. In your case, being a local business owner, you're targeting one specific city, for example, yes, so there's not too much narrowing down. You want to do like you want to just target the whole city and that's it. Okay, should I click website. Yes. Okay. Okay, perfect. So this is how you set up your your website custom audiences. So what you're going to do is you're going to leave, you're going to go in and click on click on the drop down all website visitors. Oh, this is not green. So, yeah. Yeah, make sure And do you have so you have two of them name the same. Well, the first one is shermin and the second one is shermin W. Okay, so the first one says something about the website. So the first one says something about I couldn't set it up because I had a vertical account. I don't know. So I had to create a second pixel. So hit the drop down again on the pixel what you always want to do whenever you're you're you're pulling up a page your pages, for example. You always want to look at your Facebook helper right your pixel helper in the top right, but you always want to try to match those numbers and you're not going to memorize the whole the whole freaking pixel ID. With the nine. So Exactly. So it either ends with it either starts with a nine or you remember the last two digits of each one. So yeah, so just always make sure that the one you're using starts with nine Perfect. Cool. So, so you'll click on that and then hit all website visitors hit that drop down and you're going to go down to specific web pages people who visited specific web pages. Okay, perfect. And so that's where your URL is going to go. So go to your, let's start with the landing page. Okay, this one. Perfect. So we'll get the link and just like the custom conversion will only grab everything after the WWW perfect. So all of that, that's our URL and that's what you'll paste in and then you'll give it a name. Do I want 30 days in the past 30 days, you can you can go up to 180 180 is the is the highest. But yeah, you can you can max it out. I mean anyone who has landed on this page and last 180 days are in this audience and and and you can keep using you can keep retargeting that audience. I yeah, you could take it to 180 for sure. And then name the audience and it is what it is HB guide visitors or website visitors or whatever. Yeah, website guide visitors. Perfect. Okay, so here's what we're going to do that. Okay, so here, here, here, here's what this is. This is going to be an audience of everyone who lands on this page, but never landed on the thank you page. Never landed on the thank you page. Very specific, very, very specific. So in this. So in that case, what we're going to have to do is we're going to have to click on exclude. So let's exclude people. And this is where our thank you page is going to go So we're going to exclude anyone who landed on the thank you page because this is strictly visitors. Okay, okay, perfect. So we'll do the same with that contains our specific pages. Yeah, perfect. And then there's that and you can go 180 Perfect and then create audience. Okay, perfect. And that's that. And then also with over here hit done with the website. Custom audiences. What you also want to do is you want to Actually, it's pending. It shows ready. Sometimes you'll want to do the same thing. You'll want to open up a tab. Go to that page and then come over here and refresh it just like we did with the custom conversions to to go from inactive to active. Right. Sometimes you have to do it with this one. But in this case, it looks like you don't have to. It's already reading it right away. It's pending. It's ready. Website visitors are HB guide visitors. So that that one's good to go. So Custom audience. Yeah, let's do the next one. Let's do the next one. So what the blue button again custom audience. And then website and then now let's just grab the thank you page. So specific There you go. And the thank you page. Right. Yep. And then you'll turn 30 to 180 and then name, name this one. This will be HB guide leads. Perfect. And then let's just do one more. I got time. Let's let's do another one. Let's No, I don't have to exclude anyone for this one. Good question. No, you don't. You don't exclude anyone on this one. Okay. So the next one will be the call confirm page. Your video. I love you. You're amazing. Right on. I appreciate you. Cool. So we'll just grab that part. And then Yeah, they call this one appointments or whatever. And also 180 is fine. Yeah, you can go 180 on this one. And let me and let me let me let me explain that 180 and 30 and all those days just to kind of, you know, bring some context to it and make it's make, you know, help make sense to you. That right there is mainly for Let's say, for example, let's say, for example, you have, let's say you have an open house coming up. And let's say that open house. Let's say today's let's say today's let's say today's Sunday. Let's say today's Sunday and that open house is next Sunday. Okay. Okay, so we're seven days out and we're about to start an ad right now. Okay. I'll create a custom audience around everyone who lands on that page within the last few days, because I want to retarget those people who just saw my last ad because that open house is coming up and it's very time sensitive. I see. That's when I'll adjust that number. So in this case, it's a very general home buyer guide. There's not a whole bunch of urgency to it. So I'm telling Facebook, just bring me anyone, anyone and everyone who at least viewed this page in the last 180. I don't even care. There's no urgency. It's not the last 10 days, 30 days. It's everyone with the last 180. So when you're creating urgency when there's something that has to happen now and there's a date to it where you can adjust the 180 to maybe drop it to the lowest number. Which I think the lowest number is 30. So if you have a, let's say you have a home buyer workshop going on. And you're running an ad and you're doing it one day out of the month. And that that that and today's today's a 2028 or whatever it is, 26 or whatever. Let's say you're running that. Let's say you're doing a live event at a local restaurant.  And you're about to put on a first time home buyer seminar and that seminar is going to be on September 15. Okay. And we start running ads today. That's when the 30 days would be necessary because I want to create a specific audience for everyone who's landing on this seminar page within the last few days because I want to keep retargeting them to keep reminding them that that event is coming up on September 15th and they better not miss it. Yes, that makes sense. Okay. You know, so that's that's the day, the day's part. Which which really don't matter. It's not a big deal. Which which really don't matter. It don't matter unless you're doing a live event. Okay, so that's that Audience create audience. Perfect. And you're done. So those are your main audiences. Those are your main audiences and take that same blueprint and apply it to a seller guide. Take that same blueprint and apply it to a listing that you may be running an ad on someday. You know what I mean. It's those same audiences. It's, it's, it's the appointments. It's the, it's the, it's the leads. It's the website visitors and it's in its audiences of any videos that you got going on. Yes. Okay. Okay. So we're Yeah. Yeah, go ahead and bookmark your custom audiences. So What I can do. Yeah. Any other question you have for sure. But then what I also want to do is show you how to now use these in an actual ad. Okay, so where do we go here. So So you got that bookmark. So yeah, so now you just go to your, your ads manager. And let's just go in and go through the process of the actual ad and I'll show you where these now play a role. I'll dig the Ad objective will be conversion. Yes. Now we're going with conversions, even if it's a video, we're still going with conversions. So, so now as you roll out weekly videos or bi-weekly or whenever weekly as you roll out your next video ad, you'll notice that you won't have as many views because it was only this intro where you went video views. When you go video views, that's for video views. That's what you're paying for to get tons of people to watch it. But we can't cash views like right. I can't close escrow on views. I need conversions. So as you start to run out, roll out more videos. The videos aren't going to have as many views, but you're going to have conversions and conversions are leads. Got it. So click create click create. And we're going to click on conversions. Actually, what you're going to do first is you're going to make sure you check the box. So click on start over. Oh, this is where we left off from yesterday. Yeah, let's just start over. I'll walk you through from the beginning. So hit that drop down. You got to always hit that special category. You got to always go housing. Perfect. And then now we're going conversions. And then and then each each step, you got campaign, ad set and ad. Those are your three steps, right? So each step has a title. So I would for sure title it like give it a good description. That way when you're looking at it on the dashboard, you can tell right away what ad that is without having to dig into it and click on it and all that stuff. So conversions, I would go, I would go conversions. Yeah, HB guide conversions, maybe maybe second ad or something like that. Like that way you I know the theme of my ad is going to be about interest rates. Okay, perfect, perfect. So that's that's exactly and that you don't want that to be too long. Just a nice little short description that you can remember that you that you know right that you know exactly what that ad is. So perfect. So HB guide interest rates conversions perfect. Okay, perfect. And so what you'll do is you'll click on the blue make that gray. So campaign budget optimization. You don't need that right now. Hit continue. And that's step one that's your campaign objective that's conversions. Now this is where it continue the next step ad sets. This is where your custom audiences and your custom conversions are important. So this is where we're going to include them or exclude them. So I'll show you what that that's all about. So now we come here. So now you look at the top you got ad set name you got us dash 18 plus. So again, that's the title of the ad set. You want to try to be as specific and detailed in that title as What's that I use your trick copy and paste. Yeah, nice. Nice. Right on. But here's the thing I do that when it's when it's like, like for example, I'll do that on the like ad Because like ad I kind of keep everything the same. But now that we're going into into into conversions all name that something different. Okay, and what I'll name this is I'll name it the city that we're targeting. Okay, so I'll name it I'll leave it HB guide and then I'll put the city. That way. Okay, because when you look at yeah, yeah, you'll yeah put the city put the city and it'll make sense once we look at everything from the beginning. I do Falls Church Virginia because I like that 15 mile radius.  Perfect. Okay, cool. So right there the pixel, click on that. That box. So down select a pixel. Oh, here. Click right there. Choose an event. Perfect. So that's your custom conversion. So scroll down and you're going to always focused on it's even though we even though we created one for for appointments, you're really going to be going with 99.999% of time you're going to be going with leads. So the HB guide leads. That's, that's what we're focused on is that one. So click on that. Okay, so, so there's your pixel there's your custom conversion. And then if you scroll down. Here's where we're going to put in our audiences. So right there, we're either going to click. Yeah, go ahead and click. And then, and then click on custom audiences, which they're all right there. But if you just go to custom audiences, you could see the same. It's the same but either you're under the all or you're under custom audiences whatever it's the same. But this right here. So now what I want to do is I want to let's say this is at number two. I don't have any leads yet. I may not even have any visitors yet, because all I ran was an intro video. So in this case with add number two, you would just retarget the intro retarget the the 15 second through play. So if you're going to retarget, you're going to include that in your retargeting. Now let's say we were on going to click click that. Let's say we were on. Yeah. Like the HP guy leads size not available because it's still populated or because I don't have anybody in there, both. Really because you ain't got no one in there really. But yeah, so that's why right now you'll just go with 15 second. But as you go on to add number four, add number five, add number, add number six, that's when you're going to be excluding. You're going to be excluding. So click on click out click click right there click click. Yeah, go to exclude click on exclude. This is where you'll be excluding click the box. And you'll be excluding leads, and you'll be excluding appointments. Actually, you know what, and then yeah and add number add number three, four, five and six. So what and click on that click on leads click on appointments. But then as you go on to add number three, add number four, add number five, which you're always going to always going to include is not just the 15 second but go back to the top. So click on that box below intro video. Yeah, click on there. What you're always going to be including from add I would say add number add number three and on. You're always going to retarget you're always going to include the visitors. Those are people who landed on the webpage but never opted in. Yes. So I want them to keep seeing me. Okay, so I'm going to include that. I'm going to include visitors and I'm always going to include my videos. Yeah. Okay. And there it is there. So as as you start to run ads and as you really get this pixel data going. Those audiences are going to are going to are going to start to grow even even bigger as you start to spend more and just start to just get the ball rolling. Those will always continue to grow more and more and more and then and then scroll down your locations, you'll go to United States, and you'll just click edit and then you'll put in your city. And then just go from there. So the age you won't mess with the gender you won't mess with. Even the detail targeting, you won't mess with just make sure when you put in false church make sure you X out United States. Yeah, because you don't want to target the country do you know Oh, I have to exit out here. Yeah, you got to exit out because it was there by default. So you got to get rid of it. So, so here's another thing do it again type in false church. Yeah always just X out United States first and then type in your city. And then also what you're going to do right above. People living in hit that drop down. People living in people recently in people traveling in. So you want to go with people living. You want to go people living in this location people living in this location. Target, but United States is still there. Yeah, it's all good. It's all good. You leave it my bad it's just a city and then you can go 15 miles or you can go more than 15 miles. It's up to you. I want to go under under 15 miles 15 is a minimum. Yeah, okay. Yeah, 15 is a minimum. That's fine take over that whole 15 mile radius that's good. So that is Washington DC I'm licensed in DC to perfect perfect. So scroll down. So you got that targeting. And then and then on the detail targeting. That's where you would normally put an interest. But because you're only targeting a 15 mile radius. You don't want to exclude people at all. I actually did that on my real estate intro video I focused on people who had, let's say, Velo truly a buyer stuff like that. You don't need to because again if you were if you were running ads to the entire country, then you'd want to narrow it down. But you're only running ads to a 15 mile radius you don't want to try to you don't want to exclude that many people at all. You don't want to narrow it in you don't want to you don't want to narrow it into just your city just to 15 miles and then just to people who looked at Zillow because then you're dealing with a very, very small audience. Got it. So you want to try to brand yourself in that area 15 miles brand to everyone. You can't change the age anymore so it doesn't even matter. 1865 you can't you can't change the age anymore and that's a big deal. So you might as well just leave the interest open as well. And at the end of the day, what we're really doing here anyways is we're creating audiences. We're creating our own audiences. So right now we're going to blanket everyone we're going to we're going to cast a wide net to everyone within this 15 mile radius. But at the end of the campaign, I'm going to be building my own audiences. I'm going to I'm going to have my my website visitor audience builder built bigger. If this is a video which I'm going to run. I'm going to create another custom audience around everyone who watches video number two. I'm creating my own audiences in this 15 mile. I don't care if they've been on Zillow or not if you're watching my stuff if you're letting on my website. You're in my custom audience you're going to keep seeing my stuff, regardless if you've been on Zillow or Redfin or whatever. Got it. Right. So, and again it's again it's mainly because it's such a small area that we're targeting so we don't want to narrow it in any further. Got it. So, so go down you'll leave it on automatic placements I used to go manual placements but now Facebook it's Facebook is so so advanced way more advanced than I can even comprehend. And I've just learned where automatic placements though Facebook they know where to place your ad like they know where to place it you don't have to tell them where to place it anymore. Just leave it automatic and you're good to go. So, daily budget I would I would normally change that to lifetime budget same same budget same dollar amount just go lifetime and whatever that number maybe, you know, put the date. Yeah, yeah you want to be at least 10 bucks a day that's something that they you know you definitely want to understand is at least at least 10 bucks a day, like at least 10 bucks a day which would be 70 a week is kind of where you want to be. Okay, I still need to finish my video so yeah yeah yeah so I can hear right. Yeah so this is all you need right here so you're good you got all that part already down. So that video that video the next one just again uploaded to your page first and then as you as you hit the blue button below. You'll just go to the third and final step which is the ad, and that's when you'll just click on use existing post, and you'll run it as that you'll run that post as that ad and just continue. Yep. You can go show more. You can either choose it to go out on only certain hours of the day but I kind of leave all that I leave all that alone. Yeah so as you get to here, you'll just click on use existing post and then just grab that post once you once you have it up. Exactly. And the ad name should it be HB guide Falls Church or the other name HB guide interest rates conversions. Whatever's going to help you know what ad that is the moment you look at the dashboard. So it could be either one. Perfect. And then and then you'll go you'll always make sure that that's your business page, right that's the one right there at the top that's the Facebook business page. I G you might as well connect it use. Okay yeah hit that drop down and then just see if you can see there you go yeah so connect that. I've never tried this before but okay. Yeah so just click on it. Perfect you're good. And then you'll go you'll go use existing post, you won't be able to do it now. But once you have that post on the page, you'll click on use existing post, you'll find that post, and then you'll hit continue. And then and then you'll have that post watch just pick anyone for now pick the pick the intro one for now. Okay, let's just do this as an example. So hit select post, and then there there's where your video would be. So you'll just you'll just scroll through to find that video, and then you'll hit continue. And then this is the last step. The last step is where we'll come down and we'll click the call to action. This one already has the call to action so it has the learn more button already because you have it from the previous ad. Yeah, but if you didn't, then it would say, you know call to action right there and you'll just click on learn more and yeah that's where your, your link goes right there. Okay, and that's it scroll down make sure that your pixel is is is is is is running perfect so that's that's the correct pixel right. Yes, yes it is. Yeah, perfect so you're good then you hit confirm and that's it and you wait, you know an hour few hours or whatever maybe until Facebook approves it and and you're good to go. So, So, great. Why is this button not blue. No it's fine it the but the the dot is green so it's active it's good it's not blue because because you don't have any other pixel to choose from. That's the only that's the only pixel that's active so it's not even letting you choose a different one, or turn it to great. So, so from this point on here's what you kind of want to want to just keep in mind. As you continue to stay consistent that's the thing about this it's all about consistency like that's what everyone misses they miss the consistency. If you can stay consistent and keep it this simple. I'm telling you you're going to crush it, but it's all about retargeting these audiences. That's what it's all about is retargeting these audiences because every single ad, you're going to have more people watch these new videos. That's a custom audience. Every single ad, you're going to have people click learn more and go to your landing page but they don't fill it out for whatever reason, every single ad. We got to we got to make sure that we're retargeting these audiences at all times that's what's going to create your brand awareness. That's what's going to get that entire town to know who you are.   Yes, and that's my plan I know you have to be consistent and I really want to do what you're suggesting, you know, put out a video or some type of ad each week. Yeah, and keep it that simple make make it make it seem like a weekly TV show. You know, every Friday you're going live with a new video, keep it simple keep it simple have fun.  I got to have a little Polish can I show you the intro, I can get you. Yeah, I hear you can polish it you can polish it but don't spend money on it. If you can do it. I have I have my sister and she comes over and I mean I give her like $10 $20 but oh here it is can you see it. Yeah. To buy or sell a home. Hi, this is Shermaine Washington with wikert realtors. I'm a local real estate agent here in Arlington, Virginia. If you're looking to buy or sell a home in Arlington, Alexandria DC or the surrounding areas, give me a call. You can schedule a call with me by clicking the button below. I love it. I love it. I love it. And see so from this point on though, from this one on, you're going to focus on one. Okay, you're going to focus on buyers. Well, I want to focus on first time home buyers and then also for sellers, baby boomers who want to that downsize. Okay, so in that case, you'll be creating different audiences, you'll be creating different audiences and and and and yeah they'll be different landing pages that they'll be going to as long as you're creating your audiences. Then then then you can you can do kind of whatever you want, but it's just it's so easy when you can focus on one topic and just create audiences around this one topic. Because as you go in and retarget these people, you know they're interested in the same thing and that's buying. But the moment you put all these different things in it foreclosure. Now you're doing a video on short sales. Now you're doing a video on forbearance. It's like now you're grabbing although you know all about it. Now you're mixing up the audiences. So so if you're putting me in an audience and one week you were talking about short sales, but now you're retargeting me with an ad. And you're now talking about first time home buying.  Yes, but but I can like you said set up different audience because when I when I target those baby boomers. I'm going to set up a funnel and cartridge yes just for that a seller guide for those baby boomers. Yes, perfect. So so what I guess what I'm saying is don't don't mix it don't mix the topics in one video do separate videos for each topic. Exactly. Yeah, for sure. For sure that'll work. Can you see my screen here. Yes. Okay, this is this is the second video ad I made using kick camber camber. Mm hmm. So I'll play it for you. So this is okay.  Now it just comes down to pouring it on pouring. How do I see how do I leave this ad because I don't want to confirm.  Yeah, leave this page you can click on this page. Yeah. And you're good. So, um, so like, like, watch, let's go back to the dashboard real quick. So let's hit the ads manager. And this is what I was referring to. So as you title each step in the actual title. This is where you're able to see it. So right here this is my bird's eye view of the dashboard. So as I look at the first tab campaigns, I can look right away and I would have seen intro conversions, like I would have said I would have seen it right there. Right. Yes, the ad sets. I can just look at the title and know what ad that is. Got it. So just helps it when you title them it just helps it helps you know what ads those are right away. I'm just just one request when you do your video tomorrow. Can you just please because I know you discussed discussed it with me here about when when I retarget wish custom audiences or conversion sets to to you, because you mentioned about for ad three at four, and I should include an exclude. Yes, it's really just right now. There's no audiences. We just have them set up right. But as we go and run multiple ads week two week three week week four, that's when those that's when that pixel is going to start picking up the website visitors. That's when that pixel will start picking up who lands on the thank you page. So it's not until we get into it. Week two week three week four week five when those audiences are now going to start having some people in it. So you're always going to include website visitors. You're going to always include people who watch your videos. And then you're going to always exclude leads. You're going to always exclude appointments. That's it really. Okay, and then the custom conversion, you're going to always use the lead conversion, the, the, the HB guide lead conversion, because when, because in that case you're telling Facebook, I'm looking to get people to this page. And that's the thank you page. Okay. Okay, so that's the conversion, the HB guide leads, but the audiences, you'll always exclude leads, you'll always exclude appointments, and you'll always include visitors and include these audiences of your videos and I would probably all I would always go with the 15 second if are you retarget and create audiences around people who watch at least 15 seconds of your video. Okay. And always retarget them include, include, include, include. Okay. Okay, well I really appreciate the help I'm excited and I just know I'm going to get some leads using your strategies and methods. I know it. Oh, you're, you're, you're rockstar, you're so welcome. And will you do me one, one huge favor. Will you go to my, my, my business page and just give me a few words will you just give me like some kind of short review or whatever on my business page. Okay, so that's the inspire digital. Yeah, so on Facebook, so if you just go and inspire digital and then click on reviews and just write me a few words I would appreciate it from here to the moon. Okay, we'll do. Awesome. And I'll do the same for your page as well. So I'll hook you up and write you out a review as well so reach out to me anytime and let's keep, let's keep crushing it. Okay, great. Thank you, David. Okay, you're so so welcome. God bless. Talk to you soon. Bye. Bye bye.


So hey guys, and welcome back to another Python tutorial. So in today's video, we're gonna be creating a easy and simple horse racing game using Python. So to begin with, I'll give you guys a quick demo of what the games looks like. So let me run the program quickly and here it is. So it's a basic UI and there's basically two horses like they usually is. You can obviously add more horses in once you learn about the implementation. You can play it with two people. So each person selects a horse for themself and when you have selected your horse, you will click on play. Now, when you click on play, you'll see a trashy animation because it's a beginner tutorial and one of the horses will win at random. So each time we run the game, we can expect a different horse to win. Sometimes the same horse may win, but this is at random possibilities. So as you just saw the implementation of the game of how it works, we are now gonna jump into the code. So to start with, I'm gonna close this off and we need a folder structure. So we're gonna create a new folder and I'm gonna call the folder horse racing, quite appropriate for what we're creating. And then I'm gonna open up the folder real quick. Inside the folder, we need another folder called images because we need the red horse and blue horse images that we just saw on screen before. And the images folder is where we're gonna be putting the red and blue horse images. So I've got them on my desktop. I will be cutting them and pasting them into my images folder. Now I will obviously put a zip file with all the scripts and images that are required to run this game in the description. So if you guys need that, you can head over to description and download it as well. So first things first, let's create a new file in VS Code. And before we do that, if you're using VS Code, what you wanna do is I'm gonna close this folder right now and what you wanna do is drag this folder into your VS Code screen. That way it will load the folder in as sort of like a workspace. So you don't have to type in full image links and stuff when you're importing images, which is great. So now that we've got the folder in for horse racing, we see our images directory that we created earlier. We wanna create a script file or a new Python file in the horse racing directory. So you just click on this icon for new file. And I'm just gonna call this horse racing.py Quite rightfully. Now that we're done with that, what we wanna do is we wanna actually import the modules that we're gonna be using, okay? So I'm gonna zoom in a little bit and so the modules that we're gonna be using for this tutorial are tick enter. So from tick enter import star, which means we're gonna import everything from tick enter. If you guys are new to tick enter, I will be linking a playlist for tick enter beginners, which is quite fun to learn from in the description. So make sure to check that out as well. So let's import tick enter. We will also be needing time because we would wanna sleep during our animation so that our frames play out smoothly. And we will also need to import a module called random because we need the horses to move at random speeds or steps. Cool. So now that we're done with that, we wanna actually create the main screen using tick enter. So let's create a comment and we'll say setting up the main screen. Now to start with, we're gonna create a new variable called main screen and we're gonna equals that to TK. Now that initializes the tick enter TK object and it will create like a window. So if I run this now, you give it a quick second and nothing happens. That's because it actually shows up but we need to put the main screen into a sort of loop so that it keeps running until someone clicks on the exit button in the UI. So you always want to do main screen dot main loop without the snake case in the middle to make sure that the screen doesn't just close off straight away. So we run this again. We wait for it to load up and my little window has loaded up on my first monitor which I'm gonna drag in right now and this is what you'll see. So successfully created a tiny window. Cool. So that's the first thing done. What we wanna do is everything that we're gonna add onto this screen is gonna go between the initialization of the screen and the main loop because we want it to run sort of because obviously code runs from line one to line 10. We wanna make sure that the rest of the stuff that goes on the screen is in the middle of the main loop. Otherwise it will get excluded. So first things first, we're gonna change the title of our screen. So we're gonna do screen main screen dot title and we're gonna call it force racing and then we are also going to change the size of our screen because it was quite small as we saw. So I'm gonna do main screen dot geometry and 600 by 500. Now, obviously these numbers are familiar with me because I've already programmed this stuff so I already know what size I wanna go with and what positioning I'm gonna use. So if you wanna follow through that you're more than welcome to or you can experiment with your own numbers as well. So I'm also keen on changing the background of the main screen to white because by default it is gray which is sort of boring for the game. So I'm gonna do main screen dot config and then in config I'm gonna provide the background to be whites. Now at this stage we're gonna quickly run this program to see what it looks like. And as you see right here, first thing we did was change the titles. The title up here has indeed changed towards racing. We set the geometries to the screen size to 600 by 500 pixels. That's reflected as well and it's all white right now. So perfect. Everything we done has worked successfully. The next thing we wanna do is we wanna create a canvas on our screen. So the canvas is where we can add stuff like images and objects that basically move around. And Tecanza basically allows us to do that. So we wanna create a new canvas and we wanna attach that canvas to our screen. So we create a new variable called canvas just like we did for the main screen. And then we equals that to canvas with a capital C which is part of the Tecanza library and then we need to provide where it's gonna be sitting on, so it's gonna be sitting on the main screen. We need to provide a width which I'm gonna assign it to 600 and height which I'm gonna say is gonna be 200. Now we also need to provide a background. Well, you don't have to but I'm gonna provide a background of white. And then lastly, you need to position it on your screen as well. So I'm gonna say canvas.pack basically which means put the canvas in the middle of the screen and I'm gonna add a padding on the y-axis of 20 pixels as well. Now when we do this, we will see that we have a canvas in the way we asked it to be positioned and in the size that we asked it to be positioned as well. You'll see these little borders which are sort of the canvas at the minute. So this is gonna be where the two horses are gonna be and they're gonna do the moving stuff in the canvas. Cool. So we've created the screen, we've created the canvas. We're doing great so far. Now what we wanna do next is actually import the images that we're gonna use for the different horses into our program. I'm gonna quickly expand the images folder to see what I called the names of each file. Obviously feel free to use your own images as well but then you're gonna have to use different sizes and dimensions to what I'm using. So to import the images, let's make a new comment and say adding images to canvas. And I'm also gonna make a comment up here saying that we are setting up the canvas. Okay, so to add the images to, actually this is wrong, we're gonna import the images first and then we're gonna add them to the canvas. Okay, so we have to actually import the images into variables, sort of first, resize them next and then we add them to the canvas. So we create a variable first, so red horse image and then we equal that to photo image. And then the file, we need to basically provide the link to the file. So I'm gonna say it is in my images folder and it is called redhorse.png. As we can see right here, it's called redhorse.png. Now we copy and paste the same line over again and I'm gonna change red horse image to blue horse image because it's a different image now and I am going to change the link to my file. I'm gonna change red horse to blue horse because I've named my images sort of with the same conventions to make it easy on myself. Cool, at this stage, if you run your program, you will not see any change because obviously you haven't added these images to your canvas just yet. You have only sort of imported them into your program and assign them to variables. So we actually need to resize these images first. So let's resize the images, so resizing the images. Now first we're gonna resize the red horse image. So we're gonna do red horse image is equal to and then red horse image dot zoom 15. Feel free to play around with this number because I have played around already and I find that it's a perfect size for me to use. Now we also need to do something else to it. So we need to do red horse image equals red horse image dot subsample. That will make sure that the image has been actually reduced in size because initially these images are quite big. If I show you the blue horse image is quite big, so is the red horse. So I'm reducing it to the size I need it to be. We're gonna do the exact same thing with our blue horse image. Gonna overwrite the previous one with the resized one. So we're gonna do blue horse image dot zoom. And for this one we're gonna do 50 as well. But for the subsample, we are going to use 90. Now I remember tinkering around with this a little bit because the blue horse image is bigger than the red horse image when it's initially downloaded. So it needs to be shrinked more than the red horse image so that they're sort of the same size. Once again, feel free to play around with these numbers that will actually help you learn. So once we're done with that, what we wanna do next is, we wanna add these images to our canvas because we've imported them, we've resized them. Now it's finally time to add them to our canvas. So adding images to the canvas, cool. So to add them, we need to actually assign them to a new variable because when we add these things to our canvas, they're sort of objects that you can control. So the image is attached to this sort of object that you can't really see that you can control. So we create a new variable called red horse because this is the actual red horse and not an image. So red horse equals canvas dot create image. And then what we're gonna do is we're gonna provide an x-axis. We need to provide an x-axis, a y-axis. We're also gonna provide an anchor, which is gonna be set to North West. That's just where the anchor of the image is gonna be. And then we need to provide where to pick this image from. Now the image is obviously stored in our red horse IMG variable up here because we resized it as well. So we use that image, but for the x and y, we are actually gonna create dedicated variables for this. So let's quickly create variables for our x and y for the red horse and the blue horse. Now I would suggest that we go all the way up in the file. And just after we import random, we create a new file and then we put the x and y-axis for these horses up here. So I'm gonna create a new variable called red horse x. I'm gonna assign that to zero, red horse y. Assign that to 20, blue horse x. I'm gonna assign that to minus 28 and blue horse y. I'm gonna set that to 110. Now you might say, how do I already know this? That's because I've already got them written up and tested and these are the same sort of numbers I used for the x and y positioning for the program I demoed in the start of the tutorial. So if you wanna follow along with the same numbers, feel free to do so. Otherwise you can pause and then quickly figure out what numbers you wanna go with as well. That's fine too. Cool, so now that we got these variables set up, what we wanna do is actually use them over here. So since this is the red horse, we're gonna use the red horse x. And since it's the red horse again, we're gonna use the red horse y. Cool, let's quickly run this to see if our red horse will actually appear on our canvas. So I ran it at this point and wonderful, no errors and it actually shows up where I positioned it, which is to the left of the screen and sort of to the top. Perfect, let's do the same thing with the blue horse. So I'm gonna close this again and let's do blue horse is equal to canvas.createImage. We need to use the blue horse x and y this time, which we created a second ago, blue horse y. And we need to set the anchor to northwest again. This is the easiest one to position in my opinion. And the image is gonna be blue horse image, which was previously resized as well up here. Cool, cool, cool. So let's run this again and we will see that we have two horses nicely positioned. The blue one is clipped off a little bit, but the winning criteria will make it fair enough, which I will explain later. Cool, so let me close this down, close this as well. Now that we've got everything set up, we mainly need to design the labels that will tell the player what to do. Basically the text is what is referred to as labels and we need to create the button that will allow the player to start the game. So to create the labels, I'm going to create a comment first, say adding labels to screen and text in brackets because obviously labels is just text in a way. So we're gonna do L1 is equal to label, which is gonna go on main screen. So L1 is just a variable that we create just like we use a variable to create a canvas image and all the other stuff. So label, which goes on the main screen and the text is gonna be equal to select your horse. Cool, now we're also gonna use a custom fonts, which I'm gonna use Calibri. You might need to look up the documentation to see what other fonts they have.  I'm also gonna specify that the background on my label is gonna be white because by default, once again, it's gonna be gray and it's not gonna match with a white background of the overall main screen. So we want that to match. So once I'm done with that, I'm gonna place this on my screen. So I'm gonna do L1.place. Now instead of pack, I'm doing place because I specifically wanna mention the X and Y axis where this is gonna sit. So I want it to sit on X 230 and Y 280 units. So let's run this quick to see if that looks okay. And indeed it looks okay. It's sort of centered and it's where I want it to be. It's got the custom Calibri font and it's 20 units big. Cool. Let's move on to creating the next label which is just gonna say click play when ready. So L2 is equal to a new label.  Text is gonna be equal to click play when ready. Once again, we're gonna use my favorite font Calibri with a font size, I believe of 20 as well. Again, just to keep things consistent and we're gonna set background to white. Now I'm gonna do L2.place and this time we're gonna have to use a different X and Y axis because we want it to be placed below the previous label. So X is gonna be 200 and Y is gonna be 330. Now obviously I have these values written once again, guys, so feel free to use your own after experimenting. Okay, so let's run this again just to make sure the second label has showed up and it indeed has showed up. Now the only thing we have to do is create a button that says play and then we will be good to program the main sort of logic of the game. So let's create a button, create a new variable called B1 and assign that to button which is part of the Tecinta library. Once again, it's gonna sit on our main screen. The text is gonna be set to play. Feel free to change that if you want. I can set the height. So I'm gonna set that to two units and I'm gonna set the width to 15. Once again, feel free to play with these. I will change the background of the button to white because by default I believe it is gray. I'm going to change the font on the text of the button to Calibri and this time we're gonna go with just 10 as the font size and I'm going to then place the button. So I'm gonna do B1.place X is equal to 250 and Y is equal to 390. Cool, cool, cool. Let's run this quickly and let's see if that worked. Okay, so there is an error and I'm just trying to see where the error is. Okay, let's see. Calibri B1.place B1 is equal to button. We've got the text, we've got the height, we've got the width. I'm pretty sure it's something really tiny. I can't seem to spot it at the minute. Unknown option, wait. Let's try it again. Unknown option, wait. Okay, oh, I typed in wait instead of width. Sorry about that. I'm not sure how I managed to do that but okay, let's run this again and if I look at it now, we have a button but obviously it's a dumb button because we click on it and it literally doesn't do anything. So what I'm gonna do with this is we need to assign this button to a function. So whenever it's clicked, a function is run and the game can actually do something. So we are gonna go to the button again. So where we created the button, we're gonna use comma and then we're gonna use something called a command and a command basically lets us assign the button to a function. So each time this button is clicked, a function will be run. So we will assign this button to a function called start game. Now the function start game doesn't exist just yet because we haven't created it. So that's what we're gonna be doing next. So this is all really that we need to do on the decoration side of things and the GUI. So that's all the tough bit out of the way I would say. Now the next thing that we need to do is actually create the functions that's gonna sort of be the main me of this program. So I'm gonna go at the top where I last declared my blue horse Y, create a new line and we create the function start game that we assigned to the button. Now in here we wanna make the blue horse X a global value. You wanna make the red horse X a global value so that the function can see it. And we wanna also create a new variable outside just under random called winner and we assign that to false. So this winner variable is later gonna help us find out which horse won. So I'm gonna create winner as a global variable in start game as well because it needs to access it. So these variables will make sense in a bit but we just need them in this function at the minute. So what we need to do first of all is we need to create some helper functions for this function to actually work. So helper functions are just gonna help this function do some tasks with ease and make our code a bit more readable. So the helper functions we're gonna need is we need a function that will help us move the horses. So let's create that first. So def move horses. Now this function will take in a two parameters. So red horse random move and blue horse random move. Random move, cool. So basically red horse random move is gonna be how many steps we want the random horse to move and blue horse is how many steps we want the blue horse to move at random. So what we're gonna do is we're gonna use the canvas variable we created below before right here and we're gonna use that to move our images. So we're gonna do canvas.move which is an inbuilt method again and then we wanna move the red horse and we wanna move it by on the x-axis we wanna move it by red horse random move and on the y-axis we don't really wanna move it we just keep it the same. We don't move the y-axis at all because we don't want it going down we just want it going from left to right. We do the exact same thing for the blue horse so we do canvas.move, blue horse because we wanna move the blue horse and we wanna move it how many steps on the x-axis is gonna be told to us by the blue horse random move parameter and we don't wanna move it any steps on the y-axis we just want it to be consistent. Perfect. So that's the move horses function ready which is good. Now we can just whenever we wanna move any horse we would literally just have to do move horses and then we provide how many steps we want the red horse to move and how many steps we want the blue horse to move but obviously these will be generated at random. Cool. So that's the tough bit sort of done and then we need another helpful function which is gonna help us check consistently check whether a horse has won. So we will call this function check winner. So we create another function called check winner and we're gonna say if the blue horse x which is up here if the blue horse x is greater or equal to 550 which I calculated and it was the end of sort of the end of the canvas if it's greater or equal to 550 and the red horse x is greater or equal to 550 then we return a tie. So basically that means both horses won at the same time because obviously they're both the x-axis equal to 550 which is the finish line. We need to do two more conditions. We're gonna say if blue horse x is greater or equal to 550 then we return blue horse because blue horse wins and we need another one which is gonna be if red horse x is greater or equal to 550 we return red horse because obviously in this case the red horse wins since it's x-axis is greater or equal to 550 and if none of these if conditions are satisfied then we just return false which means whenever this function is run if any of these positions so if none of these horses have won the function will just return false so we just carry on the game. Cool, now that we have all these helper functions ready it's time to make sense out of this so we'll go to our start game function. Now we globalized a few variables in here which was the blue horse x and the red horse x we're gonna be updating these as well to keep track of where the horse is at the moment so that we can use the check winner function as well. So first things first we have to run a loop so we wanna keep running this game until a horse wins and when the horse wins is when the loop should break basically. So we're gonna say while winner is equal to false we're gonna keep running obviously that means that there's no winner been declared yet so winner is just at false consistently. So when we run our loop what we wanna do first is sleep for a fraction of a second I would say so 0.05 and then we do the sleep because every time we move a horse we wanna actually see it move if we don't do a sleep it'll be so quick that we can't actually see it. So we do the sleep to basically for us to you see the movement. Now that we've done our sleep we're gonna actually create a variable called random move blue horse. Zoomed up accident blue horse and we'll assign that to a random number. So we'll do random.randint which is a method of the random library and we're gonna pick a random number between zero and 20. We will do exactly the same thing we'll create a random move red horse this time because we want both horses to have random moves and we use the same thing again we use zero and 20. Just to keep it fair we keep it between the same ranges. So our program will pick at random between zero and 20 for each horse. Also I just realized that I use a single equal over here it's meant to be a double equal because we're not assigning we are checking. So we have our random moves ready so we can actually update update the X positions of both horses. Now we globalize the blue horse X and red horse X so we will update them with whatever random move they just received. So we will do blue horse X plus equals which means it's gonna update it with whatever it was previously it's gonna add on to it the random move that was just produced. So random blue horse move and red horse X plus equals red move red horse. Cool. So at this point we are doing great. We have a random move for the blue horse and the red horse and we're updating the X axis as well with whatever move they have. So now that we have done that we actually need to move the horses on the screen. So we're gonna use our move horses function that we previously created down here and we're gonna provide it with the red horse random move and the blue horse random move which is up here. So we're gonna say random move red horse first because look at the parameters we're asking for the random move for the red horse first. So we do that first. And then secondly we do blue horse, sorry, random move blue horse. Cool. So we're gonna use the move horses function to randomly move the red horse and randomly move the blue horse based on the numbers we get but when zero and 20 over here. Perfect. Now when you move these horses you need to do something called you need to update the main screen because otherwise once again the movement is gonna be too swift and we won't be able to see it. So we're gonna actually update the main screen every time we move the horses. So we're gonna do main screen to update. Now we are gonna use the winner variable which we created up here and we're actually gonna assign it to our check winner function which we created earlier. Now this is gonna be false until a winner has been picked because we said we're gonna keep returning false unless one of these conditions were satisfied. And if one of these conditions were satisfied it would mean that it was either a tie or the blue horse one or the red horse one. So we will update the variable with whatever the check winner function basically returns. In most cases it will return false until it's either a tie, the red horse wins or the blue horse wins. Cool. So that is the main bits of the game done really. Now the only bit that we need to update or do is once the loop finishes or after the end of the loop which means the game has finished there has been a result in the race. We go one and then back and we're gonna say if winner is equal to tie which means there was basically a draw then we're gonna create a new label on our screen. It's gonna be set on our main screen. The text is going to be winner which means it's just gonna say tie and then we're gonna use a font of Calibri 20. We're gonna use a foreground which is a color for the text. I'm gonna set it to green because obviously it's a positive outcome and we're gonna use the dot place function. Now obviously you don't have to always use variables to use dot place. So I'm gonna use dot place on the label itself and I'm gonna do X is 200, Y is 450. Now that's if we have a tie. If anything else happens which is usually gonna be either the red horse wins or the blue horse wins we create another label that sits on our main screen as well. Actually I might as well just copy and paste this over because everything remains the same. So I'm gonna copy the same label, paste it down here. The only thing that changes is we say winner plus space wins and exclamation mark if you want to. So that's because if the blue horse wins then our function returns blue horse. So the text is gonna say blue horse and then we're adding more text that says wins. So it's gonna say blue horse wins. If the red horse wins is gonna say red horse and we're adding more text which says wins. So it's a red horse wins. And if it's a tie then it will just say tie. We don't add anything onto that. Now obviously you might have, I might have moved a bit too much there. You might have noticed that we didn't change the X and Y on this one. And that's because we don't actually need to change it because the outcome is gonna be one or the other. It's never gonna be a tie and blue horse and red horse wins. So it's either gonna be a tie or the red horse wins or the blue horse wins. So at this pace, I think we are ready to actually run this program and check if it works. So fingers crossed we don't have any errors and let's run it. Okay, cool, no errors so far. Pick your horses guys. I'm gonna say I'm gonna go for red. Click on play. And it's looking like, oh it was going in favor of red for a bit. Okay, cool, red did win. Now obviously sometimes it may look like the other horse won but this is very accurate because it uses the X axis of both horses which is being updated. So I hope you guys have enjoyed this tutorial and I see there's a little bug in our coding. When it says red horse wins, the background still remains gray. The challenge for you guys would be to figure out this bug and make it blend in with the background. So the background for this label should be white. Let me know if you guys managed to figure out the challenge and I will feel really good about it because I would feel like I taught you something. If you guys are interested in more of these tutorials, please drop them down in the description. I mean, comment box. I also have a discord server guys where we are trying to build a community of junior and senior programmers. So if you feel like you want to join that, feel free to do so. Apart from that guys, please help me grow the channel by sharing the content, liking for the algorithm and subscribing for more such tutorials. And guys, I will see you beautiful faces in the next one. Peace out.


What's up guys, it's Josh and we're back again with another video. This will be the fourth installment in my series where I talk about every single AP class I took and give you guys my tips for succeeding in the class and on the exam. Last time we talked about AP World History and today we're talking about a very similar class. Welcome to AP Survivor Guide, US History Quiz. Like in the other videos in this series, I'll start off giving you guys my own personal US History story. Then I'll go into my tips for the class in the exam. I took AP US History the year following AP World History, which happened to be my junior year and at that point I was living back in Herndon, Virginia. Like most AP History classes, the key to succeeding in a class is your textbook. Rather than having daily quizzes like I had in AP World History, my AP US History class was based around the saying we called guided readings, which meant for every chapter in the book I would go online to a Google Doc and answer a list of about 40 or 50 questions on that chapter. Not only would I have to answer those questions, I would have to pay attention to the key terms that were contained in the chapter because the day that the guided reading was due, I'd have to come into class and take a key terms quiz. I really like the layout of this class and it really resonated with the way that I like to learn. Not only did it focus on the big major concepts in history, but also on the specific key terms that you will have to use as evidence on your essays. And then every couple of weeks we would have a big test on a couple of chapters in the same time period. This test would consist of AP style, multiple choice questions, you know where you read the passage and then answer the questions following the passage that kind of relate to it, but kind of don't. And then we would sometimes have short answer questions and essays in addition to this. Personally, I liked my US History class way better than my AP World History class because of the structure. Of course, with you guys, the structure of your APush class is going to differ, so I can't speak for all of you guys, but hopefully it'll be pretty similar. My success in this class eventually led to me scoring a five on the AP exam. Now let's get into my tips for how you can too. So like I said, every school is different in the way they kind of force you to read the textbook. Some do daily reading quizzes. My school did guided readings or some do outlines that you have to turn in every day. At any point in this class, if you feel like you're moving too fast, I recommend going home that night and outlining the textbook by yourself and really taking your time with it to make sure that you're understanding all the concepts. That's what I did a lot to make sure that I was caught up. And also as you're reading through the textbook and making your outlines, take note of all the key terms because they are a very important part of the test. And also similar to AP World History, this test also contains the same two essays, a DBQ document based question and a long essay. These essays contain rubrics that show how to gain the maximum number of points on each essay. Each point is awarded for doing a very specific task in that essay. And the DBQ, it may be mentioning a certain number of documents or examining a certain point of view or the context of a document. These essays are not academic English essays. These are history essays. So your grammar, sentence structure, diction, word choice, does not matter at all. Throw it out the window. It's all about content, content, content, and making sure you back up every single point you try to make. As for study tips for the exam itself, I recommend reviewing all your outlines and all your notes from the whole entire year. If you still feel like you need some more review material, I recommend going to pick up the Barron's APUS History Prep Book. I personally did not use that, but a lot of my friends did and they said it was a really great resource. What me and a couple of my really close friends used instead was this YouTube channel that's made by this guy named Adam Norris. Adam Norris is an APUS history teacher and he puts up his own class PowerPoints and records a video of him lecturing and going through each slide in the PowerPoint and talking about all the major concepts. He manages to condense a whole 30 to 40 page textbook chapter into about a 10 to 15 minute video. His videos are awesome and not only use them before the AP exam itself, but also before every test or key term quiz. I have to say I've probably watched each video at least five times at this point. That is my secret trick to succeeding on the exam. Thank you, Adam Norris.  I'm not saying that he covers everything, but he at least covers the major concept. OK, guys, that's it when it comes to being successful in APUS history. I hope you guys enjoyed. Hey, hopefully you learned something. If you did, go down below, drop a like. It helps a lot and hit that bigger and subscribe button to support more content for me in the future. Comment down below any questions or concerns or what you thought of the video. I try to respond to everyone. As always, I'll be back again tomorrow at 3 p.m. with another video. See you soon.


This one verse completely transformed my mind when it came to the nature of the Holy Spirit. There was a real excitement when I first learned of this reality. Second Corinthians 13, 14, powerful truth here. May the grace of the Lord Jesus Christ, the love of God and the fellowship of the Holy Spirit be with you all. We are to walk in fellowship with the person of the Holy Spirit, friendship with him, conversation with him. You can know him because he knows you. You can walk with him in such a way that it profoundly transforms everything about you. Imagine that, that the Holy Spirit can be known.