Archive

Archive for the ‘’ Category

How to Land the Web Development Job of Your Dreams

December 8th, 2023 No comments

If you’re looking for a fulfilling, lucrative career in tech, you can’t do much better than being a web developer. There’s just one issue: It’s extremely competitive. To snag your dream job, you’ll need more than just skills and desire. You’ll need to differentiate yourself during the entire interviewing process from making sure your resume gets noticed to wowing interviewers and employers into making an offer. 

Despite the challenges of landing a web development position, it can be well worth the effort to try. The U.S. News & World Report has listed “web developer” as the seventh-best STEM sector occupation and the ninth-best overall career. And those rankings aren’t likely to wane anytime soon. Employment opportunities for web developers are expected to grow significantly until at least 2031. At an average salary range of around $81,000, that’s a reason to get into the web developer game.

Ready to stand out as you pursue the web developer path? Put these innovative techniques into motion and you’ll position yourself for the outcome you want.

1. Ditch your old-style, single-template resume.

You might already know that plenty of companies rely on software programs to sift through the resumes they receive. Typically, those programs evaluate applicants on how well their resume information matches the job description. Resumes that contain appropriate keywords and candidate data will be more likely to reach human eyes.

In other words, your resume needs to be carefully tweaked every time you apply for a role. Yet it can be very time-consuming to rework your resume to fit each job opening. That’s where you can leverage the power of AI-fueled software. For instance, you might want to apply to one dozen or more web developer roles. Rather than manually updating and optimizing each one, turn to free software like Teal to do it for you. 

Teal offers job seekers a comprehensive platform that makes it easy to build your resume with AI and customize it to match closely with individual job descriptions. The company’s core SaaS product also provides users with a dashboard where they can track their customized resumes. Haven’t written your resume yet? No worries — Teal can make suggestions and keep your resume from falling through the cracks or being denied by an algorithm “gatekeeper.” 

2. Create an impressive portfolio.

Even if you’re somewhat new to web development, you’ll be expected to showcase your technical abilities. This is best done in an online portfolio that can be shared with potential employers. However, you don’t want to clutter your portfolio with junk or make it difficult to evaluate. Your portfolio should be streamlined and contain just enough samples to entice someone to ask for a first or second interview. (Or make you an offer!)

What belongs in your web developer portfolio? You should have some examples of projects that relate to the job you want. For example, let’s say an organization is looking for someone with extensive coding capabilities. Your portfolio should contain two to three examples of pages or site elements that you wrote the code for. Don’t just share the code. Describe the goal, talk about how you met the goal through coding, and illustrate the end result. This will paint a clear picture of the talents you’re bringing to the table. 

You can host your portfolio on any site you like, including on a read-only Google doc. Just be sure that you link to your portfolio on your resume. Don’t be afraid to include the link in your cover letter and, if applicable, your application form. Over time, be aware that you’ll need to update your portfolio and replace dated experiences with fresh ones.

3. Use social media to your benefit.

As with any field, web developers have online communities, forums, and groups. Consequently, you should become visible in these social communities. Present yourself as both a thought leader and an eager learner. For example, you might want to answer questions posed by others and post some questions yourself.

Publishing articles on LinkedIn can be another wait to gain some credibility among other IT professionals and corporate leaders. The same is true for posting, sharing, and commenting on Facebook and X, too. The more people you engage with in the IT sector, the higher your likelihood to hear about job openings — and get noticed. 

What if you’re comfortable in front of the camera or talking to a crowd? Setting up your own YouTube or Twitch channel devoted to web development could make sense. The higher your following, the more authority you naturally acquire. Plus, you may be able to make a little money on the side by coding live. Small-time Twitch streamers with 100+ viewers can net up to $1,500 monthly. That’s not exactly peanuts.

4. Stay up to date on the industry.

The world of technology is expanding and evolving at a faster-than-ever pace. In a flash, your knowledge can become outdated if you’re not keeping up. Therefore, it may be wise to invest in certificates or degrees, and the occasional coding bootcamp. (As a side note, bootcamps will offer the chance to meet peers and expand your network, which is a bonus advantage.)

Not sure where to start? There are many places that offer training to current and aspiring web developers. Some are well-known institutes of higher learning like Arizona State University and Capella University. However, other programs are run by companies known for web development. A helpful site for discovering short-term and long-term web development classes is Coursera. While Coursera offers some options that are branded to itself, others are through partnerships with universities and companies. For instance, Coursera features classes for learners at all levels from IBM. 

As you advance your continuing education credentials, be sure to add them into your resume as well as your LinkedIn profile. This step can be easy to forget, but it’s essential if you’re trying to highlight exactly what makes you a more appealing, well-versed candidate than someone else.

Web development might be a crowded field, but that doesn’t mean you can’t edge your way in. Just take a little time upfront to plan out your career strategy. Then, go forward with gusto. Someone has to land every job that’s available — and the next person who hears “You’re hired!” could be you.

Featured Image by James Harrison on Unsplash

The post How to Land the Web Development Job of Your Dreams appeared first on noupe.

Categories: Others Tags:

Top 5 IP Ping Tools

December 8th, 2023 No comments

When you’re dealing with network issues, the go-to solution that often comes to mind is using a ping monitoring tool. Why? Because it’s the quickest and ?asi?st way to check if your s?rv?rs or d?vic?s can talk to ?ach oth?r ov?r th? n?twork. It’s lik? a virtual handshak? to s?? if ?v?rything is okay. 

Ping monitoring tools help you keep an ?y? on your int?rn?t protocol (IP) and r?lat?d compon?nts. Th?s? tools l?t you manage and watch over your connections, making sure your n?twork is doing its job – k??ping syst?ms conn?ct?d and running smoothly. 

By using a ping monitoring tool, you can quickly v?rify if your conn?ctions are working as they should. It’s lik? a n?twork h?alth ch?ck to see if your systems ar? up and running or if th?r?’s a hiccup. 

Now, let’s div? into th? world of ping monitoring and explore some of th? b?st tools out there to help you monitor and fix any n?twork hiccups. 

How Ping Monitoring Works?

By doing Ping tests regularly, you can figure out the fastest, slowest, and average times for the device to respond. We call this time between sending the signal and getting a response the “ping time,” usually measured in milliseconds (ms). The lower the ping time, the better – it means your network is speedy and in good shape.

Ping monitoring is lik? s?nding a fri?ndly signal to a d?vic? or comput?r and ch?cking how quickly it r?sponds. It’s lik? saying “h?llo” to s?? if ?v?rything is working smoothly. If the d?vic? replies fast, it’s a good ping, but if it takes too long, it’s considered bad. 

Here’s the technical bit: ping sends a special message called an Internet Control Message Protocol (ICMP) echo request to a specific spot on the network. When that spot gets the message, it quickly replies with an echo to confirm it got the signal. So, ping monitoring is like a quick conversation to make sure everything is running smoothly in your network.

Top 5 Ping Tools 

Here are the top five ping tools that can help spot issues by providing real-time network info.

SolarWinds Ping Monitor Tool

With SolarWinds Ping Monitor Software, you can easily keep an eye on how quickly devices respond. All you have to do is pick the device you want to watch. This software lets you share monitoring data using text files or show it off with images or graphs.

And it’s not just about pinging! SolarWinds comes with a bunch of cool features. You get a WAN Killer Traffic Generator, a MAC Address Scanner, an SNMP MIB Browser, a Ping Sweep, a Subnet Calculator, an MIB Walk, a Switch Port Mapper, and a whole lot more. It’s like having a superhero toolkit for checking and managing your network.

Site24x7 

The Network Monitor part of the Site 24×7 is smart. It uses the ping monitor to find all the gadgets connected to your network and creates a list of them. Then, it takes this info and makes a cool map to show you how everything is connected. Regular check-ups make sure this map is always up to date.

Site24x7 is like a superhero for monitoring everything related to your online world – websites, cloud, servers, networks, applications, and even how real users experience your site. It keeps an eye on important things like how fast your site responds and if it’s available, giving you useful metrics. Among the basic monitors in Site24x7, you find ping alongside other friends like HTTP/HTTPS, WebSocket, DNS, and FTP, NTP, or SMTP servers.

PingPlotter 

PingPlotter Pro is a great tool for checking how your network is doing. It works on Windows, Mac OS, and iOS, and you can even keep an eye on things remotely through a web interface. This means you can monitor lots of devices from one place.

For a quick look at your n?twork’s h?alth, PingPlott?r Pro has summary scr??ns and jitt?r graphs. Th?s? h?lp admins s?? what’s going on with just a glanc? at th? data. But what r?ally stands out is its trac?rout? f?atur?. 

With a us?r-fri?ndly int?rfac?, it shows you th? tim? it tak?s for data to travel and any loss?s that happen along th? way. It’s lik? following a virtual trail of data from point to point, giving admins a cl?ar vi?w of what’s happ?ning in their n?twork and making it ?asi?r to spot and fix problems. 

Better Stack

B?tt?r Stack is like a superhero for keeping an ?y? on your onlin? stuff. It does a bunch of cool things, like checking if your w?bsit? is up, managing incidents, and letting p?opl? know if th?r?’s downtim? through status pages. 

With B?tt?r Stack, you g?t ch?cks for all kinds of things – k?ywords in URLs, multipl? v?rification st?ps, heartbeat ch?cks, SSL, ping, and port monitoring. It’s lik? having a virtual sup?rh?ro squad, making sure ?v?rything runs smoothly. Plus, it plays nic? with oth?r tools you might already be using,  lik? Datadog, N?w R?lic, Grafana, and mor?. 

Here’s the neat part: Better Stack checks your website every 30 seconds, not just from one place but from different locations. This means no more false alarms or missing issues that depend on where you are.

If something goes wrong, Better Stack doesn’t just tell you there’s a problem – it shows you exactly what happened with screenshots and a timeline. You can use its reports and analytics to look back at how well your site has been doing, check if it meets service level agreements (SLA), and understand incidents better.

iplocation.io

The Ping test tool by iplocation.io is like a handy helper for people who want to check if a website, domain, or IP address is working okay. It’s super easy to use – you just open it, type in the website or IP address you’re curious about, and hit the “Ping Now” button.

After that, the tool gives you some useful info. If ?v?rything’s good, and no data is lost, it m?ans th? conn?ction is solid,  and th? thing you’re ch?cking is onlin?. But if th?r?’s data loss, it could m?an th? connection isn’t r?liabl?. 

If th? tool tim?s out, it’s lik? a littl? r?d flag. It might m?an th?r?’s an issue with th? IP addr?ss,  th? thing you’r? ch?cking is offlin?, or th?r?’s som?thing in th? way that’s stopping it from r?sponding to ping r?qu?sts. 

Final Words  

For IT professionals, it’s crucial to know if their important s?rv?rs and n?twork gadg?ts ar? doing well or if they sudd?nly go offlin?. A ping tool is lik? a helpful buddy in this situation. It constantly sends r?qu?sts to your important n?twork d?vic?s, making sur? ?v?rything ar? okay. 

Using a ping monitoring app is smart because it doesn’t hog up a lot of your network’s power.  This means you can k??p your s?rvic?s running smoothly without slowing down your whole network or internet connection. How you s?t up your ping monitoring d?p?nds on what you need, but with a littl? digging and t?sting, you can find th? b?st way to k??p your n?twork in top shap?. 

Featured image by U. Storsberg on Unsplash

The post Top 5 IP Ping Tools appeared first on noupe.

Categories: Others Tags:

Preparing For Interaction To Next Paint, A New Web Core Vital

December 7th, 2023 No comments

This article is a sponsored by DebugBear

There’s a change coming to the Core Web Vitals lineup. If you’re reading this before March 2024 and fire up your favorite performance monitoring tool, you’re going to to get a Core Web Vitals report like this one pulled from PageSpeed Insights:

You’re likely used to seeing most of these metrics. But there’s a good reason for the little blue icon sitting next to the second metric in the second row, Interaction to Next Paint (INP). It’s the newest metric of the bunch and is set to formally be a ranking factor in Google search results beginning in March 2024.

And there’s a good reason that INP sits immediately below the First Input Delay (FID) in that chart. INP will officially replace FID when it becomes an official Core Web Vital metric.

The fact that INP is already available in performance reports means we have an opportunity to familiarize ourselves with it today, in advance of its release. That’s what this article is all about. Rather than pushing off INP until after it starts influencing the way we measure site performance, let’s take a few minutes to level up our understanding of what it is and why it’s designed to replace FID. This way, you’ll not only have the information you need to read your performance reports come March 2024 but can proactively prepare your website for the change.

“I’m Not Seeing Those Metrics In My Reports”

Chances are that you’re looking at Lighthouse or some other report based on lab data. And by that, I mean data that isn’t coming from the field in the form of “real” users. You configure the test by applying some form of simulated throttling and start watching the results pour in. In other words, the data is not looking at your actual web traffic but a simulated environment that gives you an approximate view of traffic when certain conditions are in place.

I say all that because it’s important to remember that not all performance data is equal, and some metrics are simply impossible to measure with certain types of data. INP and FID happen to be a couple of metrics where lab data is unsuitable for meaningful results, and that’s because both INP and FID are measurements of user interactions. That may not have been immediately obvious by the name “First Input Delay,” but it’s clear as day when we start talking about “Interaction to Next Paint” — it’s right there in the name!

Simulated lab data, like what is used in Lighthouse reports, does not interact with the page. That means there is no way for it to evaluate the first input a user makes or any other interactions on the page.

So, that’s why you’re not seeing INP or FID in your reports. If you want these metrics, then you will want to use a performance tool that is capable of using real user data, such as DebugBear, which can monitor your actual traffic on an ongoing basis in real time, or PageSpeed Insights which bases its finding on Google’s “Chrome User Experience Report” (commonly referred to as CrUX), though DebugBear is capable of providing CrUX reporting as well. The difference between real-time user monitoring and measuring performance against CrUX data is big enough that it’s worth reading up on it, and we have a full article on Smashing Magazine that goes deeply into the differences for you.

INP Improves How Page Interactions Are Measured

OK, so we now know that both INP and FID are about page interactions. Specifically, they are about measuring the time between a user interacting with the page and the page responding to that interaction.

What’s the difference between the two metrics, then? The answer is two-fold. First, FID is a measure of the time it takes the page to start processing an interaction or the input delay. That sounds fine on the surface — we want to know how much time it takes for a user to start an interaction and optimize it if we can. The problem with it, though, is that it takes just one part of the time for the page to fully respond to an interaction.

A more complete picture considers the input delay in addition to two other components: processing time and presentation delay. In other words, we should also look at the time it takes to process the interaction and the time it takes for the page to render the UI in response. As you may have already guessed, INP considers all three delays, whereas FID considers only the input delay.

The second difference between INP and FID is which interactions are evaluated. FID is not shy about which interaction it measures: the very first one, as in the input delay of the first interaction on the page. We can think of INP as a more complete and accurate representation of how fast your page responds to user interactions because it looks at every single one on the page. It’s probably rare for a page to have only one interaction, and whatever interactions there are after the first interaction are likely located well down the page and happen after the page has fully loaded.

So, where FID looks at the first interaction — and only the input delay of that interaction — INP considers the entire lifecycle of all interactions.

Measuring Interaction To Next Paint

Both FID and INP are measured in milliseconds. Don’t get too worried if you notice your INP time is greater than your FID. That’s bound to happen when all of the interactions on the page are evaluated instead of the first interaction alone.

Google’s guidance is to maintain an FID under 100ms. And remember, FID does not take into account the time it takes for the event to process, nor does it consider the time it takes the page to update following the event. It only looks at the delay of the event process.

And since INP does indeed take all three of those factors into account — the input delay, processing time, and presentation delay — Google’s guidance for measuring INP is inherently larger than FID: under 200ms for a “good” result, and between 200-500ms for a passing result. Any interaction that adds up to a delay greater than 500ms is a clear bottleneck.

The goal is to spot slow interactions and optimize them for a smoother user experience. How exactly do you identify those problems? That’s what we’re looking at next.

Identifying Slow Interactions

There’s already plenty you can do right now to optimize your site for INP before it becomes an official Core Web Vital in March 2024. Let’s walk through the process.

Of course, we’re talking about the user doing something on the page, i.e., an action such as a click or keyboard focus. That might be expanding a panel in an accordion component or perhaps triggering a modal or a prompt any change in a state where the UI updates in response.

Your page may consist of little more than content and images, making for very few, if any, interactions. It could just as well be some sort of game-based UI with thousands of interactions. INP can be a heckuva lot of work, but it really comes down to how many interactions we’re talking about.

We’ve already talked about the difference between field data and lab data and how lab data is simply unable to measure page interactions accurately. That means you will want to rely on field data when pulling INP reports to identify bottlenecks. And when we’re talking about field data, we’re talking about two different flavors:

  1. Data from the CrUX report that is based on the results of real Chrome users. This is readily available in PageSpeed Insights and Google Search Console, not to mention DebugBear. If you use either of Google’s tools, just note that their throttling methods collect metrics on a fast connection and then estimate how fast the page would be on a slower connection. DebugBear actually tests with a slower network, resulting in more accurate data.
  2. Monitoring your website’s real-time traffic, which will require adding a snippet to your source code that sends traffic data to a service. And, yes, DebugBear is one such service, though there are others. You can even take advantage of historical CrUX data integrated with BigQuery to get a historical view of your results dating back as far as 2017 with new data coming in monthly, which isn’t exactly “real-time” monitoring of your actual traffic, but certainly useful.

You will get the most bang for your buck with real-time monitoring that keeps a historical record of data you can use to evaluate INP results over time.

That said, you can still start identifying bottlenecks today if you prefer not to dive into real-time monitoring right this second. DebugBear has a tool that analyzes any URL your throw at it. What’s great about this is that it shows you the elements that receive user interaction and provides the results right next to them. The result of the element that takes the longest is your INP result. That’s true whether you have one component above the 500ms threshold or 100 of them on the page.

The fact that DebugBear’s tool highlights all of the interactions and organizes them by INP makes identifying bottlenecks a straightforward process.

See that? There’s a clear INP offender on Smashing Magazine’s homepage, and it comes in slightly outside the healthy INP range for a score of 510ms even though the next “slowest” result is 184ms. There’s a little work we need to do between now and March to remedy that.

Notice, too, that there are actually two scores in the report: the INP Debugger Result and the Real User Google Data. The results aren’t even close! If we were to go by the Google CrUX data, we’re looking at a result that is 201ms faster than the INP Debugger’s result — a big enough difference that would result in the Smashing Magazine homepage fully passing INP.

Ultimately, what matters is how real users experience your website, and you need to look at the CrUX data to see that. The elements identified by the INP Debugger may cause slow interactions, but if users only interact with them very rarely, that might not be a priority to fix. But for a perfect user experience, you would want both results to be in the green.

Optimizing Slow Interactions

This is the ultimate objective, right? Once we have identified slow interactions — whether through a quick test with CrUX data or a real-time monitoring solution — we need to optimize them so their delays are at least under 500ms, but ideally under 200ms.

Optimizing INP comes down to CPU activity at the end of the day. But as we now know, INP measures two additional components of interactions that FID does not for a total of three components: input delay, processing time, and presentation delay. Each one is an opportunity to optimize the interaction, so let’s break them down.

Reduce The Input Delay

This is what FID is solely concerned with, and it’s the time it takes between the user’s input, such as a click, and for the interaction to start.

This is where the Total Blocking Time (TBT) metric is a good one because it looks at CPU activity happening on the main thread, which adds time for the page to be able to respond to a user’s interaction. TBT does not count toward Google’s search rankings, but FID and INP do, and both are directly influenced by TBT. So, it’s a pretty big deal.

You will want to heavily audit what tasks are running on the main thread to improve your TBT and, as a result, your INP. Specifically, you want to watch for long tasks on the main thread, which are those that take more than 50ms to execute. You can get a decent visualization of tasks on the main thread in DevTools:

The bottom line: Optimize those long tasks! There are plenty of approaches you could take depending on your app. Not all scripts are equal in the sense that one may be executing a core feature while another is simply a nice-to-have. You’ll have to ask yourself:

  • Who is the script serving?
  • When is it served?
  • Where is it served from?
  • What is it serving?

Then, depending on your answers, you have plenty of options for how to optimize your long tasks:

Or, nuke any scripts that might no longer be needed!

Reduce Processing Time

Let’s say the user’s input triggers a heavy task, and you need to serve a bunch of JavaScript in response — heavy enough that you know a second or two is needed for the app to fully process the update.

Reduce Presentation Delay

Reducing the time it takes for the presentation is really about reducing the time it takes the browser to display updates to the UI, paint styles, and do all of the calculations needed to produce the layout.

Of course, this is entirely dependent on the complexity of the page. That said, there are a few things to consider to help decrease the gap between when an interaction’s callbacks have finished running and when the browser is able to paint the resulting visual changes.

One thing is being mindful of the overall size of the DOM. The bigger the DOM, the more HTML that needs to be processed. That’s generally true, at least, even though the relationship between DOM size and rendering isn’t exactly 1:1; the browser still needs to work harder to render a larger DOM on the initial page load and when there’s a change on the page. That link will take you to a deep explanation of what contributes to the DOM size, how to measure it, and approaches for reducing it. The gist, though, is trying to maintain a flat structure (i.e., limit the levels of nested elements). Additionally, reviewing your CSS for overly complex selectors is another piece of low-hanging fruit to help move things along.

While we’re talking about CSS, you might consider looking into the content-visibility property and how it could possibly help reduce presentation delay. It comes with a lot of considerations, but if used effectively, it can provide the browser with a hint as far as which elements to defer fully rendering. The idea is that we can render an element’s layout containment but skip the paint until other resources have loaded. Chris Coyier explains how and why that happens, and there are aspects of accessibility to bear in mind.

And remember, if you’re outputting HTML from JavaScript, that JavaScript will have to load in order for the HTML to render. That’s a potential cost that comes with many single-page application frameworks.

Gain Insight On Your Real User INP Breakdown

The tools we’ve looked at so far can help you look at specific interactions, especially when testing them on your own computer. But how close is that to what your actual visitors experience?

Real user-monitoring (RUM) lets you track how responsive your website is in the real world:

  • What pages have the slowest INP?
  • What INP components have the biggest impact in real life?
  • What page elements do users interact with most often?
  • How fast is the average interaction for a given element?
  • Is our website less responsive for users in different countries?
  • Are our INP scores getting better or worse over time?

There are many RUM solutions out there, and DebugBear RUM is one of them.

DebugBear also supports the proposed Long Animation Frames API that can help you identify the source code that’s responsible for CPU tasks in the browser.

Conclusion

When Interaction to Next Paint makes its official debut as a Core Web Vital in March 2024, we’re gaining a better way to measure a page’s responsiveness to user interactions that is set to replace the First Input Delay metric.

Rather than looking at the input delay of the first interaction on the page, we get a high-definition evaluation of the least responsive component on the page — including the input delay, processing time, and presentation delay — whether it’s the first interaction or another one located way down the page. In other words, INP is a clearer and more accurate way to measure the speed of user interactions.

Will your app be ready for the change in March 2024? You now have a roadmap to help optimize your user interactions and prepare ahead of time as well as all of the tools you need, including a quick, free option from the team over at DebugBear. This is the time to get a jump on the work; otherwise, you could find yourself with unidentified interactions that exceed the 500ms threshold for a “passing” INP score that negatively impacts your search engine rankings… and user experiences.

Categories: Others Tags:

How to make WordPress GDPR-compliant

December 7th, 2023 No comments

What Is GDPR?

GDPR(General Data Protection Regulation)  is a set of European regulations designed to protect your data. It gives you control over how your data is used and ensures that businesses handle it by stringent guidelines. Before using your data, they must obtain your consent and notify you in case of a data leak. Businesses that violate these regulations risk incurring hefty fines. These guidelines apply to any business, regardless of location, that handles information from individuals in Europe. Similar to a global norm, GDPR protects the privacy of your data.

The Importance of GDPR Compliance in the Digital Age

Following through with GDPR is becoming increasingly crucial. These regulations benefit the public and businesses by protecting people’s privacy. By abiding by these guidelines, everyone’s information is kept secure.

  • GDPR requires companies to disclose to customers how they gather and use personal data. Customers will grow to trust you as a result.
  • GDPR is a crucial web security undertaking that forces companies to take great care of customer data. This increases the security of online information and helps to prevent data breaches.
  • GDPR increases your control over personal data. You have the option to view, edit, or even remove it.
  • Despite coming from the EU, GDPR is mandatory for any international business handling the data of EU individuals. So it’s akin to an international law.
  • Businesses that violate GDPR risk facing steep fines. Thus, to stay out of difficulty, firms must abide by these guidelines.

In essence, GDPR compliance is not just a legal obligation but also a commitment to ethical data practices in today’s interconnected world.

Does the GDPR Apply to My WordPress Website? 

Whether the GDPR applies to your WordPress website depends largely on your audience and data handling practices.

  • Audience Location: If your website caters to users from the European Union, regardless of your location, GDPR applies.
  • Data Collection: Collecting personal data like names, email addresses, or IP addresses from EU citizens means GDPR is applicable.
  • E-Commerce: For WordPress sites involved in various services, including e-commerce, GDPR compliance becomes essential.
  • Plugins and Analytics:  Installing WordPress plugins or analytics tools that gather user data and also bring your website under the interest of GDPR.
  • Global Standard: Given its broad scope, many businesses opt for GDPR compliance as a global standard for data privacy and protection.

In summary, if your WordPress website interacts with EU citizens or collects any form of personal data, GDPR compliance becomes crucial to avoid potential legal and financial repercussions.

Requirements of GDPR for Websites

A set of regulations for websites is the GDPR. To protect your information, they must abide by these guidelines. It functions similarly to a to-do list for websites, keeping your personal information safe from tampering or disclosure. Your online secrets are protected by these guidelines.

  • Unambiguous consent must be obtained from users before collecting, processing, or storing their data. This includes WordPress cookies and email subscriptions.
  • It should be clear on websites how they gather, utilize, and distribute your personal information.
  • Collect only the data that is necessary for the intended purpose.
  • Users have the right to access, rectify, erase, or port their data. Websites must facilitate these rights.
  • Implement strong security measures to protect data from breaches. This includes secure storage and encrypted data transfers.
  • In case of a data breach, affected users and relevant authorities must be notified within 72 hours.
  • Appoint a DPO (Data Protection Officer)  if your website processes large amounts of data or sensitive information.
  • Ensure that any third-party processors you use are also GDPR compliant.
  • Obtain parental consent for processing data of children under the age of 16 (or lower, depending on the member state).

Adhering to these requirements helps ensure that your website is compliant with GDPR, thereby enhancing user trust and avoiding potential legal consequences.

Who Is Subject to GDPR?

GDPR functions similarly to a set of guidelines for companies handling names and addresses or other personally identifiable information. It instructs them on how to protect that confidential information. For instance, companies need individuals’ permission before using personal data, and they have to remove it from their systems when it’s no longer required.

  • Any business based in the European Union, regardless of where the data processing occurs, falls under GDPR.
  • Companies outside the EU are subject to GDPR if they offer goods or services to, or monitor the behavior of, EU residents.
  • Applies across all sectors, from tech companies to retail, healthcare, and beyond.
  • Both entities that control data (decide how and why data is processed) and those that process data on behalf of controllers are included.
  • Websites that collect data from EU residents, including personal blogs, e-commerce sites, and social networks, must comply.

In essence, GDPR casts a wide net, encompassing virtually any organization that handles the personal data of individuals within the EU, regardless of the organization’s location.

Primary Rights Under GDPR 

The General Data Protection Regulation (GDPR) grants several primary rights to individuals regarding their data. Understanding these rights is crucial for both individuals and organizations handling personal data:

  • Right to Access: Individuals have the right to access their data and obtain information about how this data is processed.
  • Right to Rectification: This allows individuals to correct inaccurate or incomplete personal data.
  • Right to Erasure (Right to be Forgotten): Individuals can request the deletion of their data in certain circumstances.
  • Right to Restrict Processing: Under certain conditions, individuals can request that the processing of their data be restricted.
  • Right to Data Portability: This right allows individuals to receive their data in a structured, commonly used format, and to transfer that data to another controller.
  • Right to Object: Individuals can object to the processing of their data for specific purposes, including direct marketing.
  • Rights about Automated Decision Making and Profiling: Individuals have the right not to be subject to decisions based solely on automated processing, including profiling, which have legal or similarly significant effects on them.
  • Right to Lodge a Complaint: Individuals can complain to a supervisory authority if they feel that the processing of their data violates GDPR.

People now have more control over their online personal information thanks to these rights, which are crucial for maintaining their privacy. To stay out of legal hot water and maintain the confidence of their clientele, businesses must abide by these regulations.

Making Your WordPress Site GDPR Compliant: Practical Steps 

Making your WordPress site GDPR compliant involves several practical steps to ensure you’re handling personal data responsibly and legally.

Update WordPress and Themes

  • Regular Updates: Keep WordPress, themes, and plugins updated. The latest versions often include important security patches and features for data protection.
  • Compatibility Check: Ensure that updates are compatible with GDPR requirements. Some themes and plugins might not be compliant, necessitating a switch to those that prioritize privacy.

Use GDPR-Compliant Plugins

  • Privacy-Focused Plugins: Install WordPress plugins designed with GDPR in mind to prioritize user privacy and data protection.
  • Data Handling: Plugins that process personal data should offer clear information about their data handling practices.
  • Regular Audits: Regularly review your plugins for GDPR compliance, as standards and regulations may change over time.

Add Opt-ins for Forms and Newsletters

  • Clear Consent: Add clear opt-in mechanisms for forms and newsletters. Users should actively consent to data collection and usage, and this process should be documented.
  • Cookie Consent: Implement a cookie consent tool. This lets users choose which cookies they allow, aligning with GDPR’s emphasis on informed consent.
  • Transparency in Forms: Ensure that forms on your website explicitly state what the data is for and how it will be used.

You must protect the data of your users. You can accomplish that and gain their trust by doing the things listed above. Make sure you routinely evaluate and improve your practices.

Key WordPress-Specific Considerations 

In the context of WordPress, there are specific considerations to keep in mind, particularly regarding privacy policy updates and handling analytics and cookies.

Privacy Policy Updates

  • Regular Reviews: Regularly review and update your privacy policy to reflect current data handling practices.
  • WordPress Tools: Utilize WordPress’s built-in tools to create or update a privacy policy, ensuring it covers all aspects of data collection and usage.
  • Transparency: Clearly articulate how and why personal data is collected, stored, and used on your WordPress site.

Handling Analytics and Cookies

  • Consent for Cookies: Implement a system to obtain explicit consent from users for cookie usage, in line with GDPR’s requirements for informed consent.
  • Analytic Tools Compliance: Ensure that any analytics tools used are compliant with GDPR. This often involves anonymizing IP addresses and providing users with the option to opt-out.
  • Cookie Policy: Include a detailed cookie policy on your site, explaining what cookies are used for and how users can control them.

These WordPress-specific considerations are essential in maintaining GDPR compliance. They not only address legal requirements but also enhance user trust and website integrity in the digital realm. Regular updates and transparency in these areas are key to effective data protection and privacy management on a WordPress site.

Protecting User Data and Handling Breaches (200 words)

Protecting user data and efficiently handling breaches are critical components of data management and privacy.

Data Security Measures

It is essential for ensuring user data security. When transferring and storing data, use robust encryption techniques to protect critical information. This ensures that access is restricted to those who are permitted.

Do thorough security audits regularly to find and fix any vulnerabilities in your system. A robust defense against potential breaches is maintained with the aid of these audits.

Strict access control procedures should be used to limit access to sensitive information. Keep admittance to authorized staff only and prohibit unauthorized individuals from entering.

Observe the data reduction principle. Only gather information that is necessary for the goals you have in mind. This lowers the possible impact in the event of a breach by limiting the amount of sensitive information kept.

Procedures for Data Breach Notifications

  • Incident Response Plan: Have a detailed incident response plan in place for data breaches, outlining steps to take when a breach occurs.
  • Timely Notification: In case of a data breach, GDPR mandates notifying the relevant authorities within 72 hours. Affected users should also be informed promptly.
  • Documenting Breaches: Keep a record of any data breaches, including the effects and the remedial actions taken.

Trust-building and legal compliance both depend on user data protection. In today’s digital environment, robust security measures and well-defined breach-handling procedures are essential.

Additional GDPR Tips for WordPress Sites

For WordPress sites navigating GDPR compliance, here are additional tips to enhance data privacy and security:

  • Conduct regular website audits to identify what personal data you’re collecting and ensure it’s being handled securely and legally.
  • Ensure clear user consent mechanisms are in place, especially for cookies and subscription forms. Users should explicitly agree to the collection and use of their data.
  • If using third-party services (like email marketing tools), ensure they are GDPR compliant and set up Data Processing Agreements with them.
  • Adopt a data minimization approach. Collect only the data that is necessary.
  • Facilitate users’ rights under GDPR, such as the right to access, rectify, or delete their data.
  • Use SSL encryption to protect data transmission on your site.
  • Educate your team about GDPR compliance to ensure everyone understands their role in protecting user data.

Implementing these tips can significantly bolster your WordPress site’s GDPR compliance, safeguarding user data and reinforcing your site’s credibility and trustworthiness in the digital realm.

In conclusion, ensuring your WordPress site is GDPR compliant is a crucial aspect of managing a digital presence responsibly in today’s data-driven world. From understanding what GDPR is and its significance to applying its principles specifically to WordPress, this guide has covered essential facets of compliance. 

It extends further only following the law to ensure that we adhere to GDPR. Gaining confidence, protecting people’s privacy, and guaranteeing data security are equally important. We must take concrete actions to achieve this, such as upgrading our WordPress themes, utilizing compliant plugins, and putting robust data security mechanisms in place. When using the internet, these items provide people with a sense of security and confidence.

FAQ’s

1. How do I update my WordPress privacy policy for GDPR?

  • To update your WordPress privacy policy for GDPR, start by reviewing your current policy to ensure it accurately reflects your data collection and processing activities. Use WordPress’s privacy policy guide as a framework. Your policy should clearly state what data you collect, why it’s collected, how it’s used, and users’ rights regarding their data. Include information on cookies, third-party data sharing, and how users can access or delete their data. Regular updates are necessary to reflect changes in data practices or regulations.

2. What plugins can I use to make my WordPress site GDPR compliant?

  • There are several plugins available to help make your WordPress site GDPR-compliant. For consent management, consider using plugins like ‘CookieYes’, ‘GDPR Cookie Consent’, or ‘Complianz’. Tools like ‘WP GDPR Compliance’ or ‘Data443’ are useful for handling personal data requests. These plugins assist in automating consent management, handling data access requests, and ensuring your site complies with GDPR’s cookie policy requirements. Always ensure that any plugin you use is up-to-date and well-supported.

3. How do I handle user data requests under GDPR?

  • Under GDPR, handling user data requests involves several steps. Firstly, verify the identity of the person making the request to ensure data security. WordPress offers tools to facilitate this process, like the ‘Export Personal Data’ and ‘Erase Personal Data’ tools under the Tools section. Respond to requests within one month, providing the user with a copy of their data in a readable format, or erasing their data if requested. Keep a log of requests and actions taken to maintain compliance records.

Featured image by Freepik

The post How to make WordPress GDPR-compliant appeared first on noupe.

Categories: Others Tags:

Why Your Business Should Focus on Employee-Generated Content

December 7th, 2023 No comments

Audience and brand loyalty are invaluable in today’s competitive business landscape. Your business’s reputation and profitability are at the mercy of your customer relationships. So, you’re smart to constantly seek ways to deepen customer connections. 

Employee-generated content (EGC) can be a game-changer in this regard. EGC is any content crafted by employees and shared on their social media pages and other digital platforms about their work experiences and expertise. 

Quality EGC gives you something else to share with customers that incites an emotional connection with your brand. In addition, it can have a profound effect on your internal processes and employees. 

Let’s explore why prioritizing EGC is a must and how businesses can get their employees to create and share EGC consistently. 

Why EGC Should Be a Priority for Businesses 

According to Sociabble, “98%?of employees use at least one social media site for personal use, of which 50 percent are already posting about their company.” 

Most of your employees are already on social media talking about their work days, what they do for a living, and the company. In addition, there are millions of websites and podcasts out right now. Many of your employees could have their own blogs or podcasts disclosing their work experiences as well. 

So, whether you’re leveraging it or not, what they’re sharing on their social media platforms, blogs, podcasts, and other digital platforms about work is impacting how others view your company and what actions they take with it. 

In addition, by not collecting and using EGC, you’re missing out on opportunities to elevate your business internally. 

EGC should be a priority for businesses for these three main reasons:  

Give customers more reasons to love your business

Some people only need to know you have great products at affordable prices to move forward with purchases. However, many others need more to convince them that your business is worth their money and loyalty. 

For example, how you treat your employees could be the deciding factor for a lot of consumers. Many won’t support a business that treats its employees poorly. 

Conversely, if a company can prove how well it treats its employees, it’ll help customers form a positive perception of the business that ultimately inspires purchases and brand interactions. 

For instance, a lack of work-life balance can cause employees a lot of harm. They can’t show their personal responsibilities and passions the attention they deserve because they’re burnt out. 

Long hours can also negatively impact their physical health, including their oral health. Stress can cause employees to grind their teeth, wearing down enamel. They won’t be able to fight off gum disease as efficiently. And they may be so worn out they can’t make dentist appointments. 

Many companies may fail to provide their employees with the work-life balance they need to avoid poor health and life outcomes. You, on the other hand, can show your commitment to helping your employees maintain a healthy work-life balance thanks to EGC.

Whether through vlogs of work-from-home days or posts praising the flexible scheduling options, your employees can show customers they’re well taken care of, giving consumers more reasons to love your business.

Get valuable insights into your company’s processes 

As great as EGC is for bettering customer relationships, it can also be a valuable tool for gathering insights about your internal processes. 

It’s never fun to hear employees express issues with their work experience, especially when you’re hearing about them for the first time on a podcast episode or blog post. Even if they’re just saying, ‘I wish this was better at work,’ you can restructure your processes so that they better support employees when you have this information. 

Continuous process improvement is essential because:

  • Better processes equal happier, more productive employees
  • It streamlines technology implementation
  • It helps you identify and solve hidden bottlenecks
  • You can take advantage of opportunities in your market faster
  • You can determine whether or not what you’re currently doing accommodates growth
  • Customer satisfaction improves because you can fulfill orders more efficiently, respond faster, and serve consistently 

Actively seek out the content employees are creating that expresses concerns and shares the suggestions they have for making things better in your company. You can use it to make more informed decisions about how to improve. 

Deepen employee relationships 

You can empower your employees and make them feel valued by encouraging them to share content that reflects their experiences, insights, and expertise, so long as your efforts are genuine and about more than profit. 

We say that last part because your employees know when you’re asking them to do something as a means to an end, like asking them to share positive work experiences just to enhance recruitment efforts. 

Yes, that’s an important goal for EGC. However, you want to collect EGC for meaningful purposes, such as trying to amplify employee voices and create a better work environment for them.

Your employees will be more likely to create EGC when they know it’s for something significant. Not only that, your relationships with them will get stronger as you implement their suggestions and they see you’re actually listening. 

How to Encourage Employees to Create and Share EGC

EGC can be influential in a business once you get ahold of it. The key phrase there is once you get ahold of it. Getting employees to create and share EGC can be difficult for a few reasons: 

  1. Employees may be concerned about the consequences that come with being honest
  2. They may not know what good EGC looks like or how to create it 
  3. It may not seem worthwhile to spend time crafting EGC 

Addressing these three things is a good start if you want to encourage your employees to create and share EGC regularly. 

You don’t want your employees bashing your business online. However, you do want them to be honest about their work experiences and authentic in their content. 

Reassure your employees that you want truthfulness. Let them know there won’t be consequences for sharing their story respectfully. But set the expectation that they come to you with serious complaints or concerns first and not their online platforms. 

EGC guidelines would help with point number two. You can share good examples of EGC that your employees can reference when creating their own content. Explain what isn’t appropriate to share online. Detail how to make the best content

You can also make a repository for visuals, messaging, and templates your employees can use to simplify the creation process. 

Finally, you can give your employees the push they need to create and share EGC by offering incentives. For example, you could have employees rack up points for every piece of EGC they publish. Whoever gets the most points at the end of the quarter gets a gift card to their favorite place.

It will take some time to get the ball rolling with EGC. However, it’s worth the effort for what EGC can bring to your business.

Featured image by fauxels

The post Why Your Business Should Focus on Employee-Generated Content appeared first on noupe.

Categories: Others Tags:

Five-Second Testing: Taking A Closer Look At First Impressions (Case Study)

December 6th, 2023 No comments

In today’s world of shortening attention spans and omnipresent hustle, wasting even a second could mean losing the chance to earn more time from a person you want to impress. If your interests lie in creating good user experiences, there is a fair chance you have heard of five-second testing.

Five-second testing is an established technique of usability research used by UX researchers, designers, product managers, and in a variety of other professions, such as marketing or business analysis.

In short, you show a picture of whatever you are designing (site, app, pair of socks) to a member of your intended audience for exactly five seconds. Then, you hide the picture and ask the participant a couple of questions. The goal is to learn whether the reaction — the participants’s first impression — is what you wanted to see. Did you get the main message across? Do people remember the company’s name? Sounds like an efficient way to test your product without needing to turn to full-on usability testing, right?

Note: The word “participant” in this article is used to refer to users involved in five-second testing or related usability research methods. The word “user” is used in more general contexts since users form first impressions all the time, not just when you are testing it.

Why is it five seconds exactly, though? Are five seconds some magical moment when everything we see should become clear? And if it does not, does it automatically mean that a user experience is bad? Or are five seconds just the right amount of time for first impressions to brew in the user’s mind so that they’re neither undercooked nor overcooked?

These are some of the questions that we asked ourselves. Not satisfied with the answers written by others who covered the topic before us, we kept drilling and conducted an actual peer-reviewed scientific case study, exploring the hidden truths behind the testing of first impressions. The research paper examines the five-second test and discusses the results.

So strap in and read what science has to say about five-second testing. And then, what the implications are for you so that you can take practical advantage of this new knowledge to develop better first impressions of your services or products. But first, let us delve into what we know about five-second testing and its caveats so that you see the greater picture of the focal points of our investigation.

The Mythos Of Five Seconds And Its Gaps

You may be familiar with the well-known statistic that a website has about ten seconds to communicate its key message to the user. Knowing that waiting only five seconds to ask testing participants about their first impressions may suddenly seem like an odd choice. If indeed visitors of a website have about ten seconds to grasp a message, are five seconds really enough time for users? There is an alleged justification, as we explain below.

Cutting a bit forward, though, the factual basis for it is admittedly a bit of a Wild West if you look for hard data to support it. There is an almost uncanny resemblance to another not wholly scientific five-second rule that says it’s okay to eat food off the ground if it’s within five seconds from when it dropped there.

The five-second testing method has its origins as a simplification of usability testing. The first references to five-second testing point to Christine Perfetti, who coined the term for the method in the mid-2000s. The answer to “Why five seconds exactly?” comes largely from anecdotal evidence in the form of the experience of usability researchers.

The common story is that if something is shown to participants for more than five seconds, their first impressions will start to deviate from the actual user’s genuine initial impressions. The participant’s perspective becomes more analytical and less task-driven. The five-second test lets you avoid overtly speculative feedback that nobody would give you under normal circumstances.

Fair enough, that could potentially be true. But five seconds is still quite a short period of time. Consider how different people can be when it comes to their cognitive abilities (and there is nothing wrong with that). For example, one user’s sharp perception may let them realistically form first impressions in five seconds or faster, but another user may barely have the time to blink, much less absorb any meaningful information–they need a moment to take it in at their own tempo.

The reasoning starts to fall apart a bit more at its seams once you also consider the visual complexity of the stimulus (a.k.a., the picture you show to the participants). The nature of the things you may want to test can range from very simple to very complex. If the stimulus is simple, it is possible to take even less than five seconds for participants to form their initial impressions. Would this mean that there would be the risk of them using the remaining time to get over-exceedingly analytical?

Conversely, there is the question of whether five seconds is enough time to let participants realistically visually scan a more complex stimulus. I can already hear staunch proponents of five-second testing saying that this last discrepancy is actually rightfully intentional. It’s a feature, not a bug, if you will.

After all, if a stimulus is too complex, that is exactly why you conduct five-second testing. It allows us to find out about things like complexity. It can help you find out if participants cannot extract the key information you want to communicate so that you can fix it.

However, we need to consider that not all user interfaces are the landing pages of websites. They serve to support different user tasks, some of which cannot avoid having a certain degree of complexity.

Five-second testing guides typically avoid directly addressing testing of these types of user interfaces by saying that the method has the following limitation: it should not be used to test user interfaces with multiple purposes. If the same stimulus serves for more than one task, it is alleged that you should probably conduct full-fledged usability testing, which is technically correct (the best kind of correct).

Giving up on the five-second testing in the inherently more complex user interfaces, however, also gives up on its advantages for measuring and optimizing first impressions. For instance, the idea that a screenshot or a mockup is all you need to quickly find usability problems and iterate your designs. This is where five-second testing really shines.

Usability testing does not tell you accurately what the actual first impressions are without considerably interrupting the participant. And even then, you would encounter the same problem: At what moment from when the participant is exposed to a design should their first impressions be gauged so that they are genuine?

As we have discussed so far, there are certainly a fair number of question marks surrounding five-second testing. The method still undeniably has a number of merits, as proven by our experience at UXtweak, where we also provide our own Five Second Test tool. A lack of proper research on the topic is what drove us at UXtweak Research to conduct our very own case study.

The Science, Abridged

Essentially, what we sought to investigate in our case study are the relations of a number of key factors that are absolutely crucial for five-second testing:

  • What are the cognitive abilities of the participant engaging in the five-second test?
  • How visually complex is the stimulus shown to the participant?
  • For how long is the stimulus shown to the participant?
  • What kinds of questions do we ask the participants afterward?
  • What is the feedback that participants give you?

As you may have noticed, time — that iconic yet controversial five-second threshold — is considered a variable factor. In our experiment, we investigate the differences in feedback between three separate groups of participants who are shown pictures for either five (5) or alternatively two (2) or (10) seconds (so a bit less and a bit more time, respectively). This means that it would not be correct to refer to it as just a five-second test anymore, but rather an N-second test (or a first impression test, if you do not wish to be too pedantic about the number of seconds).

Each participant first passes not just one but two cognitive ability tests. Human minds are multifaceted, and there is not just a single “cognitive ability” metric that would encompass everything that the mind can do. Among standard tests used by psychologists, we picked two that are linked to abilities that can be found as the most relevant to the formation and testing of first impressions:

  • Perceptual speed: How quickly you pick up visual information.
  • Working memory: How much information you can mentally process at the same time.

Working memory is the appropriate memory ability to focus on since it operates with information that receives the user’s attention. This distinguishes it from sensory memory (the memory processing information that our senses pick up) and long-term memory, where information is stored persistently for later use.

For the first impression test itself, six website screenshots were used as the stimuli. These screenshots were selected for possessing a broad range of visual complexity, from the simplest with just a few visual elements to the most complex with a number of distinct sections that serve different purposes.

Screenshots of real websites local to Czechia and Slovakia were translated into English, and their logos were replaced with fictional brand names so that, for all intents and purposes, the website screenshots would be authentic yet also unfamiliar to the participants who were recruited in the UK.

Finally, participants were asked to provide feedback by answering practically a complete portfolio of the various types of questions that can be typically asked during a first impression test. Each type of question tests a different aspect of the first impressions that the participants have formed inside their heads:

  • Attitudinal questions: Rating a perceived quality of the website (e.g., ugly vs. attractive) on a scale from 1 to 7.
  • Target identification questions: Questions directed at specific elements or aspects of the stimulus.
  • Memory dump questions: Asking participants to describe everything that they remember about what they saw.

The resulting answers were analyzed both quantitatively (with statistics) and qualitatively (by inspecting the contents of the received answers on an individual level). With it, a number of conclusions can be reached, some expected and some rather surprising.

Now that you have a picture of what our case study was about let’s dive into the actual, interesting implications for developing the first impressions of your product.

Note: If you would like to immerse yourself in further details of how our case study was conducted, you can learn more in our scientific paper.

Takeaways

Statistically, all the variables we experimented with — the time duration of showing pictures to participants, the participants’ innate cognitive abilities, and the visual complexity of pictures — had a significant effect on the first impression answers.

For instance, between the groups that were shown screenshots of websites for two, five, and ten seconds, the number of answers that incorrectly identified what the websites were for dropped as time progressed. Notable is the difference between five and ten seconds. If the participants were really focusing on inconsequential details after five seconds, there should not be differences in recognition of such a key aspect as the website’s entire purpose.

Statistical differences lay the grounds for further observations on how changing the conditions of a test can (or cannot) affect its results:

  • Attitudes crystallize faster than in five seconds.
    In attitudinal questions where participants are asked to rate how they view the picture’s various qualities (e.g., from clear to confusing, from captivating to dull), answers stay relatively consistent, regardless of how much time the participant has or how good their cognitive abilities are. If you are laser-focused on assessing participants’ attitudes about your product and nothing else, you could present pictures for two seconds, or possibly even less, as research done by others on a related topic also implies.
  • Logos are recognized earlier than in five seconds (with one exception).
    The target identification questions where participants are asked to recall the company name from the logo are, on the whole, impacted by time very little. This is to be expected: when viewing a website, our eyes are usually drawn to the top left corner to find out where we have found ourselves. There is an exception to this rule, however.
    Among participants with slower perceptual speed, significantly fewer identified the company name correctly at two seconds when compared to five seconds. This establishes five seconds as a more inclusive choice for timing your first impression test if you expect your target audience to have, on average, lower perceptual speed than the general populace and if the primary aim is to test contents of the header, such as logo design or company name identification. Otherwise, two seconds is a safe bet.
  • Irrelevant nitpicking? Yes, if visual complexity is low.
    In some cases, the popular narrative about five seconds being a good viewing time for testing first impressions is indeed true. Particularly for the simplest website screenshots, once five seconds have elapsed, participants start paying attention to minute details (e.g., the girl’s shirt color in the hero image).
    Curiously, though, having more time does not mean that participants would write longer or more complex answers. Instead, when participants have ten seconds to view the screenshots, the higher visual complexity of the screenshots is reflected in better-quality answers. Participants stay more on-topic–describing how the site is visually structured or justifying their criticisms of the page’s design. Different viewing times may be optimal in different situations. Especially since…
  • Low working memory warrants longer viewing time.
    When asked to reiterate what they saw in their own words, participants with low and high working memory provided significantly different answers. With low working memory, answers become shorter, less complex, and recall fewer concepts overall. However, when the viewing time is extended to ten seconds, these differences disappear. This implies that the same information is being processed — memory capacity just dictates how fast it can happen.
    Without knowing where each participant’s memory ability stands, it is difficult to tell what they would actually recall if we left them to work at their own pace. Consequently, assessment of working memory before testing first impressions (and adjusting viewing time accordingly) should be considered a good practice.
  • For cognitive powerhouses, five seconds are enough.
    A less practical point maybe, but if you are developing an app for people with reasonably high perceptual speed and working memory — be it the mentally gifted, hyperproductive hustle enthusiasts, or caffeine addicts — you could likely show them your screenshots for just two seconds and get similar results as in a five-second test.
  • Give participants the proper amount of time to form a first impression.
    When the visual stimulus is more visually complex in a first impression test, the task of mentally processing it becomes more difficult and time-consuming (just like in any normal scenario). This manifests in test results. Fewer people correctly identify the purpose of a more visually complex website, and they recall fewer elements and aspects of the website.
    This could be seen as a bit of a paradox since more complex stimuli mean there is actually more content that participants could potentially remember and comment on, but only if they had the time to absorb the information properly. Data shows that when participants are given ten seconds, the answers do actually normalize, becoming more similar to stimuli of lower visual complexity.

If the purpose of the particular first impression test is not to remove all visual complexity at any cost outright, we would suggest adjusting the viewing time to reflect the visual complexity of the stimulus.

Keep in mind there are still aspects of first impression testing that remain unknown. A reasonable question that you can ask now would be: “Okay, so how exactly do I time my first impression test?” While we can sum up our observations into a conceptual framework of how time can be treated in first-impression test planning, it is not an exact guideline; there may be other interpretations or exceptions.

Take this more as an eye-opener and a call to action. Indeed, in our study, ten seconds yielded more appropriate results for more complex websites than five seconds did. But there is nothing to say that for other websites, the best timing could not be fifteen or even twenty seconds. Even more so, once you also factor in the influence of the cognitive ability of each individual participant.

The key takeaway? When you gauge your audience’s first impressions about something, take a more holistic approach.

Consider your goals for your test. What kind of questions do you want to ask? Use some of the tools that are available to measure the visual complexity of the pictures that you want to present. Give your participants a short working memory test before you start bombarding them with pictures and questions.

Try to adjust the timing in your first impression test to match the situation. To give an analogy, by blindly following a different five-second rule and eating off the floor, you could end up getting sick. Be just as cautious about relying on myths in your usability research methods. This is not to discount five seconds. As we show, it is still good timing for first impression tests in plenty of cases, but it is not the be-all and end-all as far as first impression testing goes. By broadening your perspective, you can do even better.

Resources

Categories: Others Tags:

How to Master the Art of Building An LMS Website

December 5th, 2023 No comments

Ever imagined learning could be so easy?

Like you’re learning from your own home. Maybe some of us thought about it. However, it was not that easy for everyone before. The Internet has become our blessing to shower us with this newfound opportunity. As people started building their online presence through websites. Then the rise of WordPress, a popular Content Management System (CMS), made it more popular. 

Everyone can easily create their websites and share their content with their audiences. 

In this blog, we’ll explore the concept of LMS and delve into the benefits of LMS website online courses.  Furthermore, we will discuss the key elements that can help you save valuable time and expenses. Not only this, how this can enhance your skill assessment, and promote ongoing learning and skill advancement.

What is a Learning Management System (LMS)

Before diving deep, let’s discuss the concept of LMS. As already mentioned, LMS refers to a Learning Management System. This is a software application or web-based platform designed to facilitate the administration, documentation, tracking, and delivery of educational courses or training programs. 

LMSs are used in various settings, including schools, universities, businesses, and other organizations to manage and organize learning content, track learner progress, and administer assessments.

Benefits of Online Courses and LMS Sites

When the questions come about creating any websites, we have to think about their benefits for both the audience and for owners.

Building an LMS site and online courses offers numerous benefits like making education more accessible and flexible for a diverse range of learners. If you’re a teacher then you can provide convenience by allowing your students to access materials and lectures from anywhere with an internet connection. This can help eliminate the need for physical attendance.

Image by macrovector on Freepik

 This flexibility is particularly advantageous for individuals with busy schedules, working professionals, or those with geographical constraints.

Secondly, online courses often offer a self-paced learning environment, enabling students to progress at their own speed. This personalized approach can help students with various learning styles. It allows everyone to delve deeper into complex topics or review material as needed. 

Online courses frequently offer various subjects, allowing learners to explore diverse fields of interest beyond traditional academic boundaries.

Moreover, the interactive nature of online platforms fosters a collaborative learning experience. Students can engage in discussions, share perspectives, and collaborate on projects, enhancing their understanding through diverse viewpoints.

Furthermore, online courses often come with cost benefits, as they eliminate expenses related to commuting, textbooks, and sometimes even tuition fees. This affordability expands educational opportunities to a broader audience, promoting inclusivity and lifelong learning. 

Overall,  online courses empower individuals with the flexibility, accessibility, and affordability needed to pursue education in a dynamic and interconnected world.

Why WordPress is Important for LMS Sites

Image by Freepik

WordPress is now moving forward with its unique functionality day by day. Statistics show, There are approximately 810 Million websites built since the inception of WordPress.

The reasons behind this is the flexibility and time-saving. There are various reasons behind creating an LMS website in WordPress. If you’re a tutor then building an LMS website in WordPress can provide you with the following benefits-

Unified Learning Center

If you wish to create an LMS website then this can serve as a Unified Learning Center. You may wonder how.

It helps you bring diverse educational resources, materials, and activities into a cohesive digital space. This centralization brings up a seamless learning experience for both educators and learners. It helps promote collaboration and interaction.

Versatility and Expandability

The versatility of the LMS website,  allows you to integrate various multimedia elements, such as videos, quizzes, and discussion forums. 

With this LMS site, you can expand to accommodate a growing user base and evolving educational needs. You can also make them scalable and adaptable to changing requirements.

Improved Educational Engagement

One of the primary benefits of online courses is the enhanced engagement they offer. When you create an LMS website, it facilitates interactive learning through features like discussion boards, live chats, and collaborative projects. 

This engagement helps foster a sense of community. It also improves comprehension and retention of the course material.

Streamlined Administration and Monitoring

Efficient administration and monitoring are critical for the success of online courses. LMS automates administrative tasks, such as enrollment, grading, and progress tracking. 

Anyone can reduce the workload on educators and ensure a more organized and systematic approach to course management.

Saving Time and Expenses

LMS brings about significant time and cost savings. Traditional classroom setups often involve logistical challenges and overhead costs. 

With online courses powered by WordPress LMS, it can help you reach a global audience without the need for physical infrastructure, saving both time and expenses.

Skill Assessment and Performance Oversight

WordPress LMS provides tools for assessing learners’ skills and monitoring their performance. Through quizzes, assignments, and real-time progress tracking, educators can gain valuable insights into individual strengths and areas that need improvement. 

This data-driven approach allows users an independent and personalized learning experience.

Ongoing Learning and Skill Advancement

The learning journey doesn’t end with course completion. LMS facilitates ongoing learning and skill advancement through features like continuous assessment, certification programs, and access to supplementary resources. 

This ensures that learners stay relevant in their fields and continue to develop their skills. 

Build a Successful LMS Course Using WordPress Plugins

Image by pikisuperstar on Freepik

For those looking to create a dynamic and user-friendly LMS course, WordPress plugins can be a game-changer. 

These plugins can provide additional functionalities, customization options, and seamless integration with the WordPress platform. 

Before starting this, you need to focus on some important basics. This could help you create a successful LMS website to share knowledge.

Focus on your LMS 

There are different ways you can create an LMS website. Before creating, you have to decide if you will start a free LMS website or a Premium Course site. 

If you’re thinking of creating a premium plugin then you should go for some free topics. It will attract your audience in the long run. Then you can go for some free or premium plugins.

Build a Structure for your WordPress LMS Website

Building a well-structured WordPress LMS (Learning Management System) site is a critical step in creating an effective and user-friendly online learning experience. A thoughtfully organized structure not only enhances the overall navigation but also contributes to a positive learning environment. Here are key considerations when building the structure for your WordPress LMS website:

Clear Course Categories

   Organize your courses into clear and intuitive categories. Whether it’s by subject, difficulty level, or any other relevant criterion, clear categorization helps students quickly find the courses they’re interested in.

Logical Course Progression

   Consider the logical progression of your courses. Arrange them in a way that makes sense for learners to follow, ensuring a smooth flow from basic to advanced topics. This helps students build a strong foundation before moving on to more complex subjects.

 Intuitive Navigation Menu

Design an intuitive navigation menu that prominently features essential sections such as Home, Courses, About, and Contact. Make it easy for visitors to explore your LMS website and access the information they need without confusion.

Engaging Homepage

Your homepage is the first impression visitors get of your LMS website. Create an engaging homepage that highlights featured courses, upcoming events, or any special promotions. Always use compelling visuals and concise text to capture attention and encourage exploration.

Individual Course Pages

Provide detailed information for each course on the dedicated page. Don’t forget to include a course description, learning objectives, instructor details, and any prerequisites. 

Additionally, offer a clear enrollment or registration button for easy access.

User-Friendly Dashboard

For enrolled students, create a user-friendly dashboard where they can easily access their courses, track progress, view grades, and access any additional resources. 

A clean and organized dashboard enhances the overall user experience.

Search and Filter Options

  Focus on implementing robust search and filter options. Try to allow your users to quickly search for specific courses or filter courses based on criteria like duration, difficulty, or instructor. 

This feature enhances user convenience and helps them find relevant content efficiently.

 Responsive Design

  You have to ensure your LMS website has a responsive design. It has to be adapted to various screen sizes, including desktops, tablets, and smartphones. 

A mobile-friendly design is essential for accommodating learners accessing your site from different devices.

Consistent Branding

   Maintain consistent branding elements throughout your site. Try to include color schemes, fonts, and logo placement. 

Consistency creates a professional and cohesive look, reinforcing your brand identity.

Feedback and Support Channels

Include channels for feedback and support. Whether through a contact form, live chat, or a dedicated support page. You have to ensure that users can seek assistance or share their thoughts easily.

By focusing on these aspects, you can create a structured and user-friendly WordPress LMS website. With these steps, you can not only attract learners but also provide them with a seamless and enjoyable online learning experience.

Choose a Free WordPress LMS Plugin

Selecting the right LMS (Learning Management System) plugin for your WordPress site is crucial, especially if you’re opting for a free option. Here are some considerations to guide you in choosing a free WordPress LMS plugin.

Tutor LMS

Tutor LMS is a comprehensive Learning Management System (LMS) that stands at the forefront of empowering educators and inspiring learners in the digital education landscape. Built with a commitment to simplicity, versatility, and innovation, Tutor LMS transforms your WordPress LMS website into a dynamic online learning hub.

This LMS plugin can help you create-

  • Intuitive course for your LMS website,
  • Quizzes and Assignments,
  • Personalized dashboard for managing roles (Admins, Instructors, Students),
  • Lesson management, and
  • Many more.

Tutor LMS has developed some cool premium features for its users. Some of the best are Tutor reports, Emails, Certificates, WooCommerce Subscriptions, and more amazing features.

CoSchool

CoSchool LMS is a handy plugin that turns your WordPress website into a powerful online learning space. Whether you’re creating, managing, or selling courses, CoSchool LMS has got you covered. It’s super easy to use, making it a breeze to build and grow your online learning platform right on WordPress.

This WordPress LMS plugin can provide you with a seamless experience while creating an LMS website. Some of them are-

  • Efficient course creation and management,
  • Student-focused features (dashboard, enrollment, etc),
  • Transaction and reporting tools, and
  • More features.

This feature-rich plugin comes up with some more premium features like a certificate builder, payment add-ons, WooCommerce integration, multi-instructor, course bundle, and All-access pass.

LearnPress

LearnPress is a fantastic WordPress LMS Plugin that lets you easily create and sell courses online. With a simple interface, you can design course curriculums, and add lessons and quizzes without any coding. It’s perfect for making education and online course websites quickly and effortlessly. No coding skills are required!

Some of the best parts of this amazing plugin are-

  • Supports WordPress Multisite
  • Helps you manage courses easily
  • Provides a bunch of add-ons, and
  • Offline payment options

This LMS plugin is actively developed. It has some premium features as well. You can use WPML Add-on, Co-instructor, payments, and more enriching features.

Conclusion

Getting good at selling courses using WordPress LMS plugins is like unlocking a superpower for making a difference. Whether you go for TutorLMS, CoSchool, or LearnPress LMS, the key is to use their cool features to make learning awesome for your audience. 

Just remember, the real trick is connecting with your learners, making each course not just a lesson but a game-changer for them. Don’t always think about your benefit but think this way that it makes an impact. 

Start building your courses with an LMS plugin today, and let everyone discover the amazing stuff you know!

Featured image by creativeart on Freepik

The post How to Master the Art of Building An LMS Website appeared first on noupe.

Categories: Others Tags:

The Rise of Mobile Marketing: 14 Strategies for Business Owners

December 5th, 2023 No comments

If it’s unclear how critical mobile devices are in daily life, look around. With heads bent over phones and conversations streaming across imperceptible wireless earbuds, consumers rely on their smartphones and tablets for everything from finding a great restaurant to catching up with Grandma. If you’re a business owner debating whether or not to dive into mobile marketing, let these statistics help you take the leap: almost 97% of people between the ages of 16 and 64 own a smartphone, and they spend over 4.5 hours on it every day. Mobile marketing is on the rise — here are 14 strategies to help you meet your customers where they are.

1. Start with a mobile-friendly website

A mobile-friendly website means it’s optimized for devices. All text and graphics fit neatly on a smartphone or tablet screen without losing quality, and the design is responsive. Not only does this mean that consumers can interact with your business no matter where they are, but it also improves search engine rankings. It lays the foundation for successful mobile marketing efforts.

A mobile-friendly website is a great first step to take while you look into other strategies. Even if you take no additional steps, this one step alone will improve your customers’ user experience and help you get started with mobile marketing without breaking the bank.

2. Invest in text

Text messages sent to consumers have a higher open rate than marketing emails (98% compared to just under 20%). Short Message Service (SMS) and Multimedia Message Service (MMS) are great ways to send time-sensitive promotions and updates but can also be used to send personalized messages and offers to customers. 

3. Develop an app

This one gets a bit more technical and may require some digital help, but developing a mobile app can give a bump to sagging sales and weak conversions. It’s a convenient, branded environment that allows customers to interact with products and check out services. Typical features such as push notifications and in-app promotions are great ways to catch customers’ attention. If you lack the technical skills or are on a budget and cannot afford to hire a developer just yet, a no code app builder can help you with this step.

4. Utilize geofencing

Another useful app feature is geofencing. Geofencing casts a net in a specified area (for example, a five-block or five-mile radius) that alerts customers when they enter it. This location-based marketing sends a message when customers enter the fence, offering special deals or promotions. This solution is excellent for businesses that don’t have significant native foot traffic.

5. Enable mobile payment solutions

Mobile payment solutions are fast, easy, and secure. These convenient mobile wallets enable contactless payments that can increase a consumer’s impulse purchases and enhance their overall experience. 

6. Don’t ignore the socials

The statistics are astonishing. Almost 100% of smartphone users access social media on their devices.  In fact, social media platforms are accessed predominantly via mobile devices.  If you are on a limited budget, spending most of your dollars on campaigns tailored to mobile social media users can increase engagement and conversions. This means adding vertical videos, creating swipeable content, branching out into growing platforms (TikTok, anyone?),  and including clear call-to-action (CTA) messaging.

7. Keep campaigns zippy

As much time as people spend on their mobile devices, very few are inclined to linger on one particular site. With attention spans shrinking, mobile campaigns must quickly get to the point. This means short, zippy texts that get to the point and videos that utilize jump cuts to keep customer attention.

8. Add QR codes

Want to bring more customers from the physical world into the digital one? Just add QR codes. This type of “phygital” marketing strategy bridges the gap between consumers who are used to a more hands-on approach but may be open to completing a sale or learning more online. A scannable QR code takes customers to your website, app, or special offers.

9. Optimize for voice search

Smart devices easily translate a verbal question into results (think asking a smartphone to find a business or requesting a playlist from Alexa). Recommendations are based on optimized search results. This means that descriptions and text match queries or requests that mimic human speech. Include long-tail keywords into website descriptions and add an FAQ site for distinct categories and offerings.

10. Get (sort of) real

Augmented reality (AR) is one way to create an immersive customer experience. Consider home goods stores that allow customers to upload a picture of their space and place products into it. This is incredibly convenient on a mobile device, where a customer can snap a quick picture or take a short video to immediately understand how a product might work for them.

11. Cultivate influencer partnerships

Millennials, in particular, are inclined to believe in trusted personalities online (influencers). If you are marketing to millennials, cultivating influencer partnerships can drive trust in your business and customer action. Which influencers you approach depends on your business goals. Some influencer markets, such as beauty and fashion, are more saturated than others, so take time to identify your target audience before getting into influencer partnerships. 

12. Run the numbers

Regardless of the marketing strategy, it’s essential to use data analytics to see how your mobile marketing strategies perform. This helps you better understand consumer behavior and personalize your marketing messages. You can set specific measurements for clicks and conversions, but sending out surveys to get direct consumer feedback is possible.

13. Make targeted changes

So what do you do with the feedback you get? You personalize your offerings. Personalization of content makes it more engaging for your target customer. You might divide your marketing messages into different categories based on age, gender, or other factors that relate to your various products and services. This segmentation can improve and refine your message so that more clicks become conversions. 

14. Don’t stand still

The rise of mobile marketing represents a fundamental and permanent change in how your business interacts with customers. These mobile strategies tap into endless possibilities and can increase your customer base.  They outline a roadmap for you to stay ahead of the curve as mobile marketing continues to evolve. 

Regardless of which you choose to implement, you must keep moving forward. Your customers are mobile, and your mobile marketing should be just as agile.

Featured Image by Gilles Lambert on Unsplash

The post The Rise of Mobile Marketing: 14 Strategies for Business Owners appeared first on noupe.

Categories: Others Tags:

13 Media Buying Tips For More Effective & Efficient Ad Campaigns 

December 5th, 2023 No comments

A solid, data-driven media buying strategy is the driving force behind any successful marketing campaign. Effective media buying will enable you to reach high-value audiences, scale up conversions, and reduce acquisition costs. When you’re maximizing the effectiveness & efficiency of your campaigns, everything else will fall into place. 

But smart media buying isn’t just about purchasing ad inventory. 

It’s about leveraging the right data points, implementing a consistent strategy, and making crucial adjustments that deliver outstanding results. In this guide, we’ll be outlining 13 proven media buying tips that will help you achieve your marketing objectives and generate optimal returns from your budget.

1. Define clear & measurable campaign objectives 

Before you dive into any granular media buying tactics, you’ll need to establish clear and realistic objectives for your campaign. 

Without measurable objectives in place, you’ll struggle to implement the right optimizations and gauge the success of your ads. 

Clarity is key here, as vague objectives will be very difficult to track. For example, rather than aiming to just ‘increase clicks’ to your website, you might aim to exceed your benchmark CTR by 10% or increase average click volumes by 20%. Your objectives should also be easy to measure. Confirm the data sources you’ll be using to track performance (e.g. Google Analytics, Facebook Ads Manager) and make sure you’re confident accessing them and downloading reports. 

Finally, don’t be afraid to break down wider business objectives into more manageable campaign KPIs. By clearly defining individual goals (e.g. boosting reach, improving CTR, increasing conversions) and frequently reviewing progress, you can avoid feeling overwhelmed, celebrate smaller milestones, and make in-flight adjustments to strengthen performance. 

Source: shopify.com

2. Cherry-pick platforms that align with your target audience 

One of the most important aspects of media buying is reaching your target audience in the right digital environments. It doesn’t matter if you’re launching next-level creatives or making diligent optimizations – if your audience isn’t available on a certain platform, you won’t be able to achieve the best results! 

Start by defining clear audience personas using insights from social media platforms, market research, and your own customer data. What does your target audience look like in terms of their demographics, interests, and behaviors?

Once you have a better idea of your target audience, you can begin to identify the right platforms to reach them on. 

For example, if you’re looking to target Gen Z shoppers, TikTok is likely to provide you with strong reach. However, if your target audience is business professionals and decision-makers, then LinkedIn is the place to be. You’ll also need to consider the targeting capabilities of your chosen platforms. 

Is broad demographic targeting right for your audience? Or will you require more granular, in-market targeting to reach your ideal customers? The more you know about your desired audience and targeting requirements, the easier it will be to identify the most effective platforms. 

3. Approach every campaign with a test & learn strategy 

Frequent, data-fuelled testing will be a game-changer for your ad campaigns. 

By regularly experimenting with different creatives, audiences, and tactics, you can gather invaluable insights that will allow you to fully optimize your media buying. 

For instance, by comparing the conversion rates of two different audience segments, you’ll be able to figure out where to invest your budget to achieve superior results. Not only will this help you to reduce inefficient impressions, but it will also enable you to increase revenue and optimize your strategy. 

To ensure that you’re launching effective tests and harvesting useful data, you should always: 

  • Set clear and measurable KPIs to compare between test variables 
  • Allocate sufficient test budgets for different creatives, audiences, etc 
  • Avoid testing too many variables at once to prevent confusion
  • Ensure that you have equally sized sample groups/audiences 
  • Make optimizations based on what the data is telling you 

As you consistently test different tactics & audiences, you’ll be able to discover high-performing strategies and refine your media buying. 

4. Make consistent, data-driven optimizations 

While the word ‘optimize’ is thrown around a lot in the world of digital marketing, the importance of effective optimizations should never be underestimated. 

If your media buying strategy is fuelled by rigorous optimizations, you’ll be in a much better position to achieve your marketing objectives and improve performance. 

But how can you ensure that you’re implementing the right optimizations? Firstly, always focus on your primary objective/KPI when making campaign optimizations. If your main goal is to generate website traffic, for instance, then you’ll need to prioritize metrics like clicks and CTR rather than video views. 

Patience is also crucial whenever you’re making optimizations. 

Whether you’re advertising on the Google Display Network or Instagram, give the platform algorithm time to adjust to any changes. It can take a few days for new optimizations to make an impact, so don’t panic if you’re seeing fluctuating results or slow progress initially. (However, while patience is important, you’ll also need to make decisive optimizations when the data is clear. Don’t hesitate to cut underperforming ads and shift your budget towards better-performing tactics!) 

Source: indeed.com

5. Transform raw data into practical insights with analytics tools 

There’s a huge difference between just checking your performance data and truly analyzing your performance data. Interpreting raw data, and transforming it into actionable insights, is critical for successful media buying. Rather than just looking at numbers on a screen, you’ll need to figure out how you can use them to discover new tactics and optimize your campaigns. 

For example, let’s say your latest campaign delivered an average CPA of $10. 

Without context, it’s very difficult to know what this number means. But let’s say that your previous campaign delivered an average CPA of $20 – well, you’ve now successfully reduced your CPA by 50%, proving the success of your media buying strategy.

Contextualizing data is incredibly important, whether you’re comparing results year-on-year or looking at industry benchmarks. Always put your reporting data in context!  On top of this, try to figure out which elements are driving improvements or issues with your campaigns. A declining CTR is obviously bad news, but if you can attribute this to a new creative headline, you can make adjustments to try and reverse the trend. 

Source: hootsuite.com

Calculating additional metrics can help you to extract highly valuable insights from your campaign reports. For example, comparing total conversions between different audiences can be useful, but calculating the ROAS of these audiences will give you a much better understanding of customer value and marketing efficiency. 

If you’re looking for a fast and easy way to drill down to these actionable insights, analytics tools are a fantastic option. These tools are designed to inject much-needed automation into your reporting process, so you can instantly access key metrics like CPA and ROAS. Once you’ve discovered an analytics tool that you’re comfortable using, you can set up custom reports, review cross-channel performance, and connect different data sources (e.g. Facebook Ads and Google Analytics) to build a clearer picture of performance. With all of your campaign data accessible through a single dashboard, it becomes much easier to optimize your media buying and increase ROI. 

6. Keep your ears to the ground on the latest platform evolutions 

The world of digital marketing is constantly shifting, and to maintain high-performing media buying, you’ll need to stay ahead of the curve. 

New audience trends, advertising tools, and platform features are always emerging across marketing networks. Advertisers who react quickly to these changes and capitalize on new opportunities can often find themselves gaining a competitive edge. These platform evolutions can also have a major impact on campaign management & marketing performance. For example, the iOS 14.5 update was hugely disruptive for Facebook advertisers – while some marketers worked swiftly to find effective workarounds, others were left in the dust. 

Source: facebook.com

To stay up-to-date with the latest developments, be sure to keep an eye on industry news and actively look for product releases. 

Sign up for digital marketing newsletters, keep in touch with platform account managers, and set up news alerts wherever possible. Although keeping up with the ever-changing world of digital marketing is a daunting task, if you can keep your finger on the pulse, you’ll have a great chance of seizing new opportunities – and avoiding oncoming disasters. 

7. Experiment with multiple ad formats across platforms 

So, you’ve launched a successful media buying strategy. You’re seeing positive results with your current ad formats, and things are looking good. Time to sit back and put your feet up, right?

Well, not quite. 

While it can be tempting to stick with a proven media buying formula, if you want to consistently attract new customers and maintain efficiency in the long run, you’ll need to broaden your horizons. 

Experimenting with different ad formats is a fantastic way to elevate your creative messaging and discover profitable new tactics. 

For example, if you’re running an e-commerce store with multiple SKUs, then Facebook’s Advantage+ Catalog ads could help you to skyrocket product sales. If you’re retailing a product with clear and compelling user benefits, then short-form videos packed with UGC will help you to build credibility and generate clicks. 

Every marketing platform will offer a unique range of ad formats, designed to help brands achieve different objectives. Not only will experimenting with new formats prevent creative fatigue, but it will also allow you to develop a full-funnel strategy to maximize clicks and conversions across key platforms. 

8. Collaborate with external agencies 

Crafting, launching, and evolving your own media buying strategy can be very challenging at times. While many marketers like to be in total control of their advertising spend, setting up campaigns, analyzing reports, and implementing optimizations can all be extremely time-intensive tasks. 

This is where connecting with external agency partners can be a massive help. 

By partnering with expert marketers, you can simultaneously free up resources and dramatically increase ROI. Agency account teams will help you define your target audience, launch cross-platform strategies, and optimize ads to maximize conversions. 

Enlisting the help of an agency can also allow you to tap into long-standing platform relationships, meaning you can unlock preferential rates and customer support. On top of this, you’ll also be able to take advantage of in-depth media buying knowledge, as most agencies will employ specialists in everything from paid social to paid search. While there’s undoubtedly a lot you can do to improve the performance of your media buying, sometimes there’s nothing better than discovering the right agency partner. 

9. Use ad libraries to keep a close eye on your competitors 

The digital marketing landscape is intensely competitive, and you’re likely to be competing with a large number of rival advertisers looking to win over the same audiences. 

However, while your competitors can be a nuisance at times, they can also provide you with valuable insights to help you optimize your media buying. 

Tools like Facebook Ads Library and TikTok Top Ads are the places to stake them out. These give you an invaluable look at the types of ads other brands are running, and TikTok will even give you an indication of how they’re performing, too. 

Not only will this give you fresh ideas for creatives to test, it can also give you a heads-up on competitors who’ve launched new products that expose gaps in your offerings. So, build a list of rival brands and regularly check in on them via platform ad libraries to see if what they’re testing can help you refine your own tactics. You may see a competitor trialing a new ad format or content strategy that’s driving a high level of engagement. Take inspiration from these examples, adapting ideas and leveraging the best elements from competitor campaigns to your own advantage. 

10. Tailor your creative assets to different platforms 

Every platform is unique, and generic copy-and-paste ad creatives aren’t going to help you stand out in a cluttered market. If your creative assets feel bespoke to your chosen platform and target audience, they’re more likely to resonate with consumers. 

For example, short and punchy UGC videos can be very impactful on TikTok, particularly if they capitalize on trending audio snippets or social media challenges. LinkedIn, on the other hand, encourages more polished creative assets – formats like carousels can deliver high levels of engagement, particularly if they contain high-quality, informative visual content. 

Below are some of the key creative elements to consider when you’re repurposing assets for different platforms: 

  • Aspect ratios: Make sure that you’re paying close attention to the technical ad specs for different platforms to avoid stressful (and costly) last-minute edits! 
  • Video lengths: Ensure that the lengths of your video assets are aligned with platform best practices. For example, while longer-form videos can perform well through YouTube skippable campaigns, they’re unlikely to hold the attention of TikTok users. 
  • Tone-of-voice: Different platforms attract diverse audiences, so consider who you’re reaching across ad networks and how you’ll address them. Tweak your ad copy and headlines to ensure you’re delivering relevant, appropriate messages. 

Whenever you’re launching creatives across multiple networks, think carefully about platform best practices and the preferences of your target audience. Media buying goes hand-in-hand with creative strategy, and if you can get the two working in perfect harmony, the results will speak for themselves. 

Source: tiktok.com

11. Ensure your ad delivery is aligned with your campaign goals & preferences 

Optimizing your ad delivery is one of the best ways to improve the efficiency of your media buying and maximize conversions. However, it can be difficult to know which delivery tactics are going to drive optimal results for your business. 

Taking Facebook Ads as an example, let’s look at the ad delivery options available on the platform and explain how each approach can impact your campaigns. 

Ad Set Budget Optimization (ABO)

With ABO ad delivery, you’ll set a specific budget against every individual ad set in your campaign. The Facebook algorithm will then optimize delivery within each of these ad sets based on your target audience and objectives. For example, let’s say you’re looking to manually test various audiences, placements, and creatives across multiple Facebook ad sets. 

With ABO, everything is controlled and managed at the ad set level. You can track the delivery of each ad set in detail, tweak budgets based on performance, and make ad optimizations in real time. 

If you want budget flexibility and the ability to make manual adjustments to your ad sets, ABO is the route for you. 

Campaign Budget Optimization (CBO)

Campaign Budget Optimization, on the other hand, is an ad delivery option that allocates and optimizes budgets across multiple ad sets. 

You’ll set a campaign-level budget for your activity, and the Facebook algorithm will automatically allocate budget to the ad sets with the best performance. This is a simpler form of ad delivery because you don’t need to make manual tweaks to individual ad sets – instead, you’ll rely on machine learning to manage ad spend across your campaign. 

CBO can be especially useful for advertisers managing large-scale campaigns with many different ad sets live at the same time. 

While ABO places the emphasis on granular control at the ad set level, CBO places the emphasis on campaign budget fluidity and convenience for advertisers. 

The right type of ad delivery depends on your campaign goals and preferences as an advertiser. 

Whether you’re keen to retain control of your ad sets or allow the Facebook algorithm to put in the hard yards, make sure you’re comfortable with your ad delivery and happy with the outcomes you’re seeing. 

12. Focus on high-performing campaign bidding strategies 

The more efficient your bidding tactics are across ad campaigns, the easier it will become to reduce your acquisition costs. The key here is to understand the different bidding options available to you and select the approach that aligns closely with your objectives. 

The first decision you’ll need to make is Auto Bid vs Manual Bid. 

On marketing platforms like Facebook, you’ll need to decide whether you want to automate your bidding or maintain manual control. With automated bidding, you can select a spend-based approach (maximizing conversions/conversion value) or a goal-based approach (achieving a set CPA/ROAS target.) 

You can also opt for a manual bidding approach, where you’ll set manual ad bids rather than allowing the Facebook algorithm to do so. This is often utilized by experienced advertisers with a solid understanding of their conversion values. If you’re unsure of which bidding strategy you should be using, you can always duplicate ad sets and see if automated or manual bids are delivering the most cost-efficient results. 

You’ll also need to consider Cost Cap vs Bid Cap within your bidding strategy. 

In simple terms, a bid-cap places a firm limit on your cost-per-bid while a cost-cap averages out all of your bids to achieve your desired overall CPA. 

If you’re more concerned with limiting the cost of specific actions (e.g. clicks, conversions) then a bid cap will keep your spending under tight control. However, if you’d rather maximize results and stay flexible with your total budget, then a cost cap will help you boost conversions while maintaining a set CPA. Every advertiser is different, and there’s nothing wrong with testing out different bidding tactics to find your best-performing options. Just make sure you’re actively trying to improve performance rather than assuming automated bidding is delivering optimal results! 

13. Experiment with Dynamic Creative Optimization 

Although it’s crucial to maximize the efficiency of your ad delivery, it’s also hugely important to ensure that your creatives are working as hard as possible for your brand. 

However, that doesn’t necessarily mean you need to spend hours tweaking every individual element of your creative assets. In fact, with Dynamic Creative Optimization (DCO) you can automate this entire process to optimize performance. DCO is available on several marketing platforms (e.g. Facebook, Amazon) and while the setup process may vary slightly, the concept is always the same. 

DCO enables you to rapidly launch a large number of ad variations, with assets personalized to different audiences and tested at scale to identify the strongest iterations. 

(Source: medium.com)

Dynamic advertising offers a number of unique benefits, including:

  • Cost-effectiveness – since ads are dynamically generated and automatically optimized, you can quickly narrow down your assets based on their efficiency. 
  • Personalization at scale – everything from your headlines to your CTAs can be adjusted in real-time based on customer responses, interests, and behaviors. 
  • Effective retargeting – DCO allows you to understand the products/messages that resonate with your audience, so you can optimize retargeting ads to maximize sales. 

DCO essentially supercharges the ‘test & learn’ process, enabling you to scale up your campaigns while maintaining ad relevance and cost-efficiency. 

However, DCO isn’t necessarily for everyone. The process needs a healthy budget to achieve the scale required for effective testing, and you’ll also need enough products/assets/messages to produce a large number of ad variations. If you’re looking for innovative ways to improve the ROI of your media buying, and you have enough budget available to scale up your ad campaigns, then DCO can deliver exceptional results for your business. 

By fuelling your media buying with these proven tactics, you’ll be able to achieve consistently strong results – whatever your objective might be. 

Whether you’re looking to grow brand awareness or generate cost-efficient product sales, it all starts with a solid media buying strategy. Focus on clear objectives, tap into as much data as possible, and be ready to make speedy adjustments when needed. Good luck! 

Featured image by Bri Tucker on Unsplash

The post 13 Media Buying Tips For More Effective & Efficient Ad Campaigns  appeared first on noupe.

Categories: Others Tags:

How Marketing Changed OOP In JavaScript

December 4th, 2023 No comments

Even though JavaScript’s name was coined from the Java language, the two languages are worlds apart. JavaScript has more in common with Lisp>) and Scheme>), sharing features such as first-class functions and lexical scoping.

JavaScript also borrows its prototypal inheritance from the Self>) language. This inheritance mechanism is perhaps what many — if not most — developers do not spend enough time to understand, mainly because it isn’t a requirement to start working with JavaScript. That characteristic can be seen as either a design flaw or a stroke of genius. That said, JavaScript’s prototypal nature was marketed and hidden behind a “Java for the web” mask. We’ll elaborate more on that as we go on.

JavaScript isn’t confident in its own prototypal nature, so it gives developers the tools to approach the language without ever having to touch a prototype. This was an attempt to be easily understood by every developer, especially those coming from class-based languages, such as Java, and would later become one of JavaScript’s biggest enemies for years to come: You don’t have to understand how JavaScript works to code in JavaScript.

What Is Classical Object-Oriented Programming?

Classical object-oriented programming (OOP) revolves around the concept of classes and instances and is widely used in languages like Java, C++, C#, and many others. A class is a blueprint or template for creating objects. It defines the structure and behavior of objects that belong to that class and encapsulates properties and methods. On the other hand, objects are instances of classes. When you create an object from a class, you’re essentially creating a specific instance that inherits the structure and behavior defined in the class while also giving each object an individual state.

OOP has many fundamental concepts, but we will focus on inheritance, a mechanism that allows one class to take on the properties and methods of another class. This facilitates code reuse and the creation of a hierarchy of classes.

What’s Prototypal OOP In JavaScript?

I will explain the concepts behind prototypal OOP in Javascript, but for an in-depth explanation of how prototypes work, MDN has an excellent overview on the topic.

Prototypal OOP differs from classical OOP, which is based on classes and instances. In prototypal OOP, there are no classes, only objects, and they are created directly from other objects.

If we create an object, it will have a built-in property called prototype that holds a reference to its “parent” object prototype so we can access its prototype’s methods and properties. This is what allows us to access methods like .sort() or .forEach() from any array since each array inherits methods from the Array.prototype object.

The prototype itself is an object, so the prototype will have its own prototype. This creates a chain of objects known as the prototype chain. When you access a property or method on an object, JavaScript will first look for it on the object itself. If it’s not found, it will traverse up the prototype chain until it finds the property or reaches the top-level object. It will often end in Object.prototype, which has a null prototype, denoting the end of the chain.

A crucial difference between classical and prototypal OOP is that we can’t dynamically manipulate a class definition once an object is created. But with JavaScript prototypes, we can add, delete, or change methods and properties from the prototype, affecting the objects down the chain.

“Objects inherit from objects. What could be more object-oriented than that?”

Douglas Crockford

What’s The Difference In JavaScript? Spoiler: None

So, on paper, the difference is simple. In classical OOP, we instantiate objects from a class, and a class can inherit methods and properties from another class. In prototypal OOP, objects can inherit properties and methods from other objects through their prototype.

However, in JavaScript, there is not a single difference beyond syntax. Can you spot the difference between the following two code excerpts?

// With Classes

class Dog {
  constructor(name, color) {
    this.name = name;

    this.color = color;
  }

  bark() {
    return I am a ${this.color} dog and my name is ${this.name}.;
  }
}

const myDog = new Dog("Charlie", "brown");

console.log(myDog.name); // Charlie

console.log(myDog.bark()); // I am a brown dog and my name is Charlie.
// With Prototypes

function Dog(name, color) {
  this.name = name;

  this.color = color;
}

Dog.prototype.bark = function () {
  return I am a ${this.color} dog and my name is ${this.name}.;
};

const myDog = new Dog("Charlie", "brown");

console.log(myDog.name); // Charlie

console.log(myDog.bark()); // I am a brown dog and my name is Charlie.

There is no difference, and JavaScript will execute the same code, but the latter example is honest about what JavaScript is doing under the hood, while the former hides it behind syntactic sugar.

Do I have a problem with the classical approach? Yes and no. An argument can be made that the classical syntax improves readability by having all the code related to the class inside a block scope. On the other hand, it’s misleading and has led thousands of developers to believe that JavaScript has true classes when a class in JavaScript is no different from any other function object.

My biggest issue isn’t pretending that true classes exist but rather that prototypes don’t.

Consider the following code:

class Dog {
  constructor(name, color) {
    this.name = name;

    this.color = color;
  }

  bark() {
    return I am a ${this.color} dog and my name is ${this.name}.;
  }
}

const myDog = new Dog("Charlie", "brown");

Dog.prototype.bark = function () {
  return "I am really just another object with a prototype!";
};

console.log(myDog.bark()); // I am really just another object with a prototype!"

Wait, did we just access the class prototype? Yes, because classes don’t exist! They are merely functions returning an object (called constructor functions), and, inevitably, they have a prototype which means we can access its .prototype property.

It almost looks like JavaScript tries to hide its prototypes. But why?

There Are Clues In JavaScript’s History

In May 1995, Netscape involved JavaScript creator Brendan Eich in a project to implement a scripting language into the Netscape browser. The main idea was to implement the Scheme language into the browser due to its minimal approach. The plan changed when Netscape closed a deal with Sun Microsystems, creators of Java, to implement Java on the web. Soon enough, Brendan Eich and Sun Microsystems founder Bill Joy saw the need for a new language. A language that was approachable for people whose main focus wasn’t only programming. A language both for a designer trying to make a website and for an experienced developer coming from Java.

With this goal in mind, JavaScript was created in 10 days of intense work under the early name of Mocha. It would be changed to LiveScript to market it as a script executing “live” in the browser but in December 1995, it would ultimately be named JavaScript to be marketed along with Java. This deal with Sun Microsystems forced Brendan to accommodate his prototype-based language to Java. According to Brendan Eich, JavaScript was treated as the “sidekick language to Java” and was greatly underfunded in comparison with the Java team:

“I was thinking the whole time, what should the language be like? Should it be easy to use? Might the syntax even be more like natural language? […] Well, I’d like to do that, but my management said, “Make it look like Java.”

Eich’s idea for JavaScript was to implement Scheme first-class functions — a feature that would allow callbacks for user events — and OOP based on prototypes from Self. He’s expressed this before on his blog:

“I’m not proud, but I’m happy that I chose Scheme-ish first-class functions and Self-ish prototypes as the main ingredients.”

JavaScript’s prototypal nature stayed but would specifically be obscured behind a Java facade. Prototypes likely remained in place because Eich implemented Self prototypes from the beginning and they later couldn’t be changed, only hidden. We can find a mixed explanation in an old comment on his blog:

“It is ironic that JS could not have class in 1995 because it would have rivaled Java. It was constrained by both time and a sidekick role.”

Either way, JavaScript became a prototype-based language and the most popular one by far.

If Only JavaScript Embraced Its Prototypes

In the rush between the creation of JavaScript and its mass adoption, there were several other questionable design decisions surrounding prototypes. In his book, JavaScript: The Good Parts, Crockford explains the bad parts surrounding JavaScript, such as global variables and the misunderstanding around prototypes.

As you may have noticed, this article is inspired by Crockford’s book. Although I disagree with many of his opinions about JavaScript’s bad parts, it’s important to note the book was published in 2008 when ECMAScript 4 (ES4) was the stable version of JavaScript. Many years have passed since its publication, and JavaScript has significantly changed in that time. The following are features that I think could have been saved from the language if only JavaScript had embraced its prototypes.

The this Value In Different Contexts

The this keyword is another one of the things JavaScript added to look like Java. In Java, and classical OOP in general, this refers to the current instance on which the method or constructor is being invoked, just that. However, in JavaScript, we didn’t have class syntax until ES6 but still inherited the this keyword. My problem with this is it can be four different things depending on where is invoked!

1. this In The Function Invocation Pattern

When this is invoked inside a function call, it will be bound to the global object. It will also be bound to the global object if it’s invoked from the global scope.

console.log(this); // window

function myFunction() {
  console.log(this);
}

myFunction(); // window

In strict mode and through the function invocation pattern, this will be undefined.

function getThis() {
  "use strict";

  return this;
}

getThis(); // undefined

2. this In The Method Invocation Pattern

If we reference a function as an object’s property, this will be bound to its parent object.

const dog = {
  name: "Sparky",

  bark: function () {
    console.log(`Woof, my name is ${this.name}.`);
  },
};

dog.bark(); // Woof, my name is Sparky.

Arrow functions do not have their own this, but instead, they inherit this from their parent scope at creation.

const dog = {
  name: "Sparky",

  bark: () => {
    console.log(`Woof, my name is ${this.name}.`);
  },
};

dog.bark(); // Woof, my name is undefined.

In this case, this was bound to the global object instead of dog, hence this.name is undefined.

3. The Constructor Invocation Pattern

If we invoke a function with the new prefix, a new empty object will be created, and this will be bound to that object.

function Dog(name) {
  this.name = name;

  this.bark = function () {
    console.log(`Woof, my name is ${this.name}.`);
  };
}

const myDog = new Dog("Coco");

myDog.bark(); // Woof, my name is Coco.

We could also employ this from the function’s prototype to access the object’s properties, which could give us a more valid reason to use it.

function Dog(name) {
  this.name = name;
}

Dog.prototype.bark = function () {
  console.log(`Woof, my name is ${this.name}.`);
};

const myDog = new Dog("Coco");

myDog.bark(); // Woof, my name is Coco.

4. The apply Invocation Pattern

Lastly, each function inherits an apply method from the function prototype that takes two parameters. The first parameter is the value that will be bound to this inside the function, and the second is an array that will be used as the function parameters.

// Bounding `this` to another object

function bark() {
  console.log(`Woof, my name is ${this.name}.`);
}

const myDog = {
  name: "Milo",
};

bark.apply(myDog); // Woof, my name is Milo.

// Using the array parameter

const numbers = [3, 10, 4, 6, 9];

const max = Math.max.apply(null, numbers);

console.log(max); // 10

As you can see, this can be almost anything and shouldn’t be in JavaScript in the first place. Approaches like using bind() are solutions to a problem that shouldn’t even exist. Fortunately, this is completely avoidable in modern JavaScript, and you can save yourself several headaches if you learn how to dodge it; an advantage that ES6 class users can’t enjoy.

Crockford has a nice anecdote on the topic from his book:

“This is a demonstrative pronoun. Just having this in the language makes the language harder to talk about. It is like pair programming with Abbott and Costello.”

“But if we want to create a function constructor, we will need to use this.” Not necessarily! In the following example, we can make a function constructor that doesn’t use this or new to work.

function counterConstructor() {
  let counter = 0;

  function getCounter() {
    return counter;
  }

  function up() {
    counter += 1;

    return counter;
  }

  function down() {
    counter -= 1;

    return counter;
  }

  return {
    getCounter,

    up,

    down,
  };
}

const myCounter = counterConstructor();

myCounter.up(); // 1

myCounter.down(); // 0

We just created a function constructor without using this or new! And it comes with a straightforward syntax. A downside you could see is that objects created from counterConstructor won’t have access to its prototype, so we can’t add methods or properties from counterConstructor.prototype.

But do we need this? Of course, we will need to reuse our code, but there are better approaches that we will see later.

The new Prefix

In JavaScript: The Good Parts, Crockford argues that we shouldn’t use the new prefix simply because there is no guarantee that we will remember to use it in the intended functions. I think that it’s an easy-to-spot mistake and also avoidable by capitalizing the constructor functions you intend to use with new. And nowadays, linters will warn us when we call a capitalized function without new, or vice-versa.

A better argument is simply that using new forces us to use this inside our constructor functions or “classes,” and as we saw earlier, we are better off avoiding this in the first place.

The Multiple Ways To Access Prototypes

For the historical reasons we already reviewed, we can understand why JavaScript doesn’t embrace its prototypes. By extension, we don’t have tools to mingle with prototypes as straightforward as we would want, but rather devious attempts to manipulate the prototype chain. Things get worse when across documentation, we can read different jargon around prototypes.

The Difference Between [[Prototype]], __proto__, And .prototype

To make the reading experience more pleasant, let’s go over the differences between these terms.

  • [[Prototype]] is an internal property that holds a reference to the object’s prototype. It’s enclosed in double square brackets, which means it typically cannot be accessed using normal notation.
  • __proto__ can refer to two possible properties:

    • It can refer to a property from any Object.prototype object that exposes the hidden [[Prototype]] property. It’s deprecated and ill-performing.
    • It can refer to an optional property we can add when creating an object literal. The object’s prototype will point to the value we give it.
  • .prototype is a property exclusive to functions or classes (excluding arrow functions). When invoked using the new prefix, the instantiated object’s prototype will point to the function’s .prototype.

We can now see all the ways we can modify prototypes in JavaScript. After reviewing, we will notice they all fall short in at least some aspect.

Using The __proto__ Literal Property At Initialization

When creating a JavaScript object using object literals, we can add a __proto__ property. The created object will point its [[Prototoype]] to the value given in __proto__. In a prior example, objects created from our function constructor didn’t have access to the constructor prototype. We can use the __proto__ property at initialization to change this without using this or new.

function counterConstructor() {
  let counter = 0;

  function getCounter() {
    return counter;
  }

  function up() {
    counter += 1;

    return counter;
  }

  function down() {
    counter -= 1;

    return counter;
  }

  return {
    getCounter,

    up,

    down,

    __proto__: counterConstructor.prototype,
  };
}

The advantage of linking the new object’s prototype to the function constructor would be that we can extend its methods from the constructor prototype. But what good would it be if we needed to use this again?

const myCounter = counterConstructor();

counterConstructor.prototype.printDouble = function () {
  return this.getCounter() * 2;
};

myCounter.up(); // 1

myCounter.up(); // 2

myCounter.printDouble(); // 4

We didn’t even modify the count internal value but instead printed it double. So, a setter method would be necessary to manipulate its state from outside the initial function constructor declaration. However, we are over-complicating our code since we could have simply added a double method inside our function.

function counterConstructor() {
  let counter = 0;

  function getCounter() {
    return counter;
  }

  function up() {
    counter += 1;

    return counter;
  }

  function down() {
    counter -= 1;

    return counter;
  }

  function double() {
    counter = counter * 2;

    return counter;
  }

  return {
    getCounter,

    up,

    down,

    double,
  };
}

const myCounter = counterConstructor();

myCounter.up(); // 1

myCounter.up(); // 2

myCounter.double(); // 4

Using __proto__ is overkill in practice.

It’s vital to note that __proto__ must only be used when initializing a new object through an object literal. Using the __proto__ accessor in Object.prototype.__proto__ will change the object’s [[Prototoype]] after initialization, disrupting lots of optimizations done under the hood by JavaScript engines. That’s why Object.prototype.__proto__ is ill-performant and deprecated.

Object.create()

Object.create() returns a new object whose [[Prototype]] will be the first argument of the function. It also has a second argument that lets you define additional properties to the new objects. However, it’s more flexible and readable to create an object using an object literal. Hence, its only practical use would be to create an object without a prototype using Object.create(null) since all objects created using object literals are automatically linked to Object.prototype.

Object.setPrototypeOf()

Object.setPrototypeOf() takes two objects as arguments and will mutate the prototype chain from the former argument to the latter. As we saw earlier, switching an object’s prototype after initialization is ill-performing, so avoid it at all costs.

Encapsulation And Private Classes

My last argument against classes is the lack of privacy and encapsulation. Take, for example, the following class syntax:

class Cat {
  constructor(name) {
    this.name = name;
  }

  meow() {
    console.log(`Meow! My name is ${this.name}.`);
  }
}

const myCat = new Cat("Gala");

myCat.meow(); // Meow! My name is Gala.

myCat.name = "Pumpkin";

myCat.meow(); // Meow! My name is Pumpkin.

We don’t have any privacy! All properties are public. We can try to mitigate this with closures:

class Cat {
  constructor(name) {
    this.getName = function () {
      return name;
    };
  }

  meow() {
    console.log(`Meow! My name is ${this.name}.`);
  }
}

const myCat = new Cat("Gala");

myCat.meow(); // Meow! My name is undefined.

Oops, now this.name is undefined outside the constructor’s scope. We have to change this.name to this.getName() so it can work properly.

class Cat {
  constructor(name) {
    this.getName = function () {
      return name;
    };
  }

  meow() {
    console.log(`Meow! My name is ${this.getName()}.`);
  }
}

const myCat = new Cat("Gala");

myCat.meow(); // Meow! My name is Gala.

This is with only one argument, so you can imagine how unnecessarily repetitive our code would be the more arguments we add. Besides, we can still modify our object methods:

myCat.meow = function () {
  console.log(`Meow! ${this.getName()} is a bad kitten.`);
};

myCat.meow(); // Meow! Gala is a bad kitten.

We can save and implement better privacy if we use our own function constructors and even make our methods immutable using Object.freeze()!

function catConstructor(name) {
  function getName() {
    return name;
  }

  function meow() {
    console.log(`Meow! My name is ${name}.`);
  }

  return Object.freeze({
    getName,

    meow,
  });
}

const myCat = catConstructor("Loaf");

myCat.meow(); // Meow! My name is Loaf.

And trying to modify the object’s methods will fail silently.

myCat.meow = function () {
  console.log(`Meow! ${this.getName()} is a bad Kitten.`);
};

myCat.meow(); // Meow! My name is Loaf.

And yes, I am aware of the recent proposal for private class fields. But do we really need even more new syntax when we could accomplish the same using custom constructor functions and closures?

So, Classes Or Prototypes In JavaScript?

In Crockford’s more recent book, How JavaScript Works (PDF), we can see a better option than using Prototypes or Classes for code reuse: Composition!

Using prototypes feels like using a half-finished feature, while classes can lead to overcomplicated and unnecessary hierarchies (and also to this ). Fortunately, JavaScript is a multi-paradigm language, and forcing ourselves to only use classes or prototypes for code reusability is constraining ourselves with imaginary ropes.

As Crockford says in his more recent book:

“[I]nstead of same as except we can get a little bit of this and a little bit of that.”

— Douglas Crockford, How JavaScript Works

Instead of a function constructor or class inheriting from another, we can have a set of constructors and combine them when needed to create a specialized object.

function speakerConstructor(name, message) {
  function talk() {
    return Hi, mi name is ${name} and I want to tell something: ${message}.;
  }

  return Object.freeze({
    talk,
  });
}

function loudSpeakerConstructor(name, message) {
  const {talk} = speakerConstructor(name, message);

  function yell() {
    return talk().toUpperCase();
  }

  return Object.freeze({
    talk,

    yell,
  });
}

const mySpeaker = loudSpeakerConstructor("Juan", "You look nice!");

mySpeaker.talk(); // Hi, my name is Juan and I want to tell something: You look nice!

mySpeaker.yell(); // HI, MY NAME IS JUAN AND I WANT TO TELL SOMETHING: YOU LOOK NICE!

Without the need for this and new and classes or prototypes, we achieve a reusable function constructor with full privacy and encapsulation.

Conclusion

Yes, JavaScript was made in 10 days in a rush; yes, it was tainted by marketing; and yes, it has a long set of useless and dangerous parts. Yet is a beautiful language and fuels a lot of the innovation happening in web development today, so it clearly has done something good!

I don’t think we will see a day when prototypes receive the features they deserve, nor one in which we stop using classical syntactic sugar, but we can decide to avoid them when possible.

Unfortunately, this conscious decision to stick to the good parts isn’t exclusive to JavaScript OOP since, between the rush into existence, the language brought a lot of other dubious features that we are better off not using. Maybe we can tackle them in a future article, but in the meantime, we will have to acknowledge their presence and make the conscious decision to keep learning and understanding the language to know which parts to use and which parts to ignore.

References

Categories: Others Tags: