Black Friday Banner Gone Wrong: Advertising in Free Plugins

Screenshot of the Yoast SEO plugin Black Friday ad in the WordPress admin.
Screenshot of the Yoast Black Friday Ad

On November 28, millions of people awoke to a Black Friday ad on nearly every page of their WordPress admin, courtesy of the Yoast SEO plugin. That day also coincided with the U.S. Thanksgiving holiday, so it left freelancers and agencies scrambling to address a banner on their clients’ sites on a day they likely planned to spend with family. The ad was not limited to users with administrative permissions either, so some site owners were troubled to find users with low-level permissions could see the ad in the WordPress admin.

The initial code for the banner was added on October 25, which made its way into version 12.4 of the Yoast SEO plugin. The code for the banner ad limited its output between November 28 and December 3 (Cyber Monday).

After blowback from users, the Yoast team published an updated version of the plugin without the banner. However, the initial damage was done. Users began immediately leaving poor reviews for the plugin. The 1-star reviews are still coming in, putting the number over 100 in the span of five days.

“That BlackFridayBanner was not the best idea,” wrote Marieke van de Rakt, CEO of Yoast, on Twitter. “We’re truly sorry for the annoyance and difficulties it may have caused. We did not think this through properly. If you want, you can update to a new version of our plugin without that banner.”

The initial decision to place the ad was about growth for Yoast’s premium products. The company has not grown as fast as expected over the past year explained van de Rakt. They had also seen other plugins use those types of ads, which was a part of the decision to run it.

“Let’s be clear,” said van de Rakt. “This was a mistake. We just didn’t think this one through. It was incredibly stupid. So I can talk about why we made a decision, but I don’t want that to be the explanation. The explanation is that we made a mistake.”

The ad was an animated banner, and some users complained that it was difficult to dismiss. All notices in plugins available through the WordPress plugin directory must be dismissible. “That was a technical mistake,” said van de Rakt of the issues with clicking the “x” icon for dismissal.

While the team had seen other plugins run similar ads in the past, van de Rakt explained that they didn’t take into account how large of a user base Yoast SEO has in comparison to those plugins. “For so many users, we were the first plugin that done this,” she said. “They never saw this before in their backend. And they freak out. This was a complete error of judgment.”

Yoast plans to talk more with its plugin’s users. Currently, the team is looking into creating a user-testing panel to prevent similar situations in the future.

“In hindsight, and that’s what I feel most bad about, the banner did not fit our values,” said van de Rakt. “These kinds of banners are not ‘Yoast.’ Perhaps, if we state more explicitly what we as Yoast find important and what fits Yoast and what doesn’t, a mistake like this will be made less quickly.”

Making Money with Freemium Products

Yoast is a large company within the WordPress space. It employs 90 people in its primary office in Wijchen, the Netherlands. It also has an additional 20 employees around the world. Running a successful business means paying everyone, contributing back to WordPress with its five-for-the-future work, and running charitable programs such as the Yoast Diversity Fund.

Currently, the Yoast SEO plugin has over 5 million active installs. According to van de Rakt, only around 2% of the plugin’s users also use the company’s premium products. Such a large plugin needs continuous funding to support and maintain.

Advertising a product or service in an internet culture that is seemingly averse to ads is not always easy. “It’s rather hard to find ways to reach our audience, and we also have some principles on how (not) to do that,” said van de Rakt. “We like to advertise in a straight-forward way. Tell people what they’re buying. Ads are very annoying, but at least they are clear in what they’re doing.”

One issue that plugin companies run into is the lack of an official premium marketplace for WordPress. Currently, companies have to resort to in-admin advertising or similar tactics to push users on an upsell. Most of Yoast’s premium products are sold through banners on the plugin’s pages in the WordPress admin. Such practices do not always go over well with users, particularly when they are using a free product. One wrong step and it could spell disaster for future growth. Yoast is large enough to bounce back, but smaller companies may struggle more.

It is a tough balancing act between providing a valuable free product and making enough of a return to run a successful company. The Yoast team does not want to lock their popular SEO plugin completely behind a paywall. “Our mission is SEO for everyone,” said van de Rakt. “We believe that every idea should have a fair chance in the search results. That means that also without any funds, people should be able to have a good working SEO plugin. Our free plugin is really important to us.”

“I had a really bad weekend,” said van de Rakt. “I am a people pleaser and I was terribly sad by what happened. But, the discussion about how to handle this is a good one.”

Perhaps some good will come of this incident if there is an open dialogue. “These kinds of things sometimes lead to different ‘rule-sets’ or policies within WordPress,” said van de Rakt. “Might even mean that there will be different and better ways for premium plugins to market their products.”

59

59 responses to “Black Friday Banner Gone Wrong: Advertising in Free Plugins”

  1. How many times will Yoast do this, apologize afterwards for breaking the rules, and then do it again a few months later?

    Another perfect example of the blatant corruption and hypocrisy that has gone on for years with the “good old boys” over at WordPress.org. Sponsor a WordCamp here, or donate the WP.org high value domain there, and get away with breaking any rules you want…

    There is a common denominator(s) and we all know what their names are and why nothing ever changes… GitHub is the future, folks.

    Report

    • I’m not sure I understand here. It sounds to me as though you are adding more people into a group that are allowed to break rules.

      Care to help provide context to that?

      Can you provide other examples of where they did something against the rules and then apologized?

      And what does GitHub have to do with any of this?

      Report

    • What other devs are breaking the rules? No one is part of the “Good ol’ boys” club. They, and many of the other top plugin devs have actually contributed more than just plugins. They’ve contributed to the very core of WordPress that we use every day. And Yoast began very small, about a decade ago, and grew to what it was, because of a plugin that Joost built originally to fill some needs of his, and then he was generous enough to share it and open up for feedback to the community. This is literally a plugin that was built on the community’s needs.

      The full body of work and sweat that has been given, by not just Yoast, but other plugin devs, is reflected over the entire existence of WordPress. I’m not saying this incident looked great for Yoast, but they aren’t always out to violate anything, or do anything skeezy, and frankly, when something is pointed out, they do fall in, apologize, and follow the rules.

      I don’t see why this is such a big deal and why say such things about Yoast. If you don’t like it, go to Make WordPress Slack and get into the Plugin team chats and see what can be done to make a difference there. Give Feedback to the Yoast beta as well, or even leave Feedback in their support forum… whatever. However, there’s far more productive things to do.

      Report

    • Although I admire their contributions to WordPress over the years this is by no means a recent thing for them to do. I recall seeing something similar back in my early days of using WordPress and one of the reasons I have never been a fan or recommended that particular plugin.

      Report

  2. So that was a really stupid action. My company develops sites for clients and because of that we’ve seen the banner emerge over tens of sites the last few days.

    Of course I get that a company needs to earn money. And that’s another thing. If I want to provide all our clients websites (100+) with Yoast SEO Premium, I need to pay at least 4500 euro a year. I’m not going to do that. Elementor Pro, a great plug-in that we sometimes use to create sites on a budget, costs $ 139,- a year for unlimited sites. And I gladly pay this amount every year. The same goes for Gravity Forms, unlimited sites for $ 259,- a year. Of course these are totally different plug-ins in what they offer, but the difference in pricing between Yoast is huge.

    If I was able to install Yoast SEO Premium for a few hundred dollars on all our clients’ sites, I would certainly think about it. And I think that ours is not the only development company which thinks that way. So maybe Yoast should also think a bit more about their pricing strategy. I understand that it’s not as much as they want to earn. But earning something on companies like ours is better than earning totally nothing on them.

    Report

    • “If I want to provide all our clients websites (100+) with Yoast SEO Premium, I need to pay at least 4500 euro a year.”

      So that would be less than 45 euro per client that you can charge them. That must be a relatively small percentage of the total fee, isn’t it? And if a client doesn’t want to pay that, you don’t let them have Yoast SEO Premium.

      I’m honestly not seeing a problem here?

      Report

      • We don’t charge our clients for using Elementor Pro and the paid version of Gravity Forms. We pay these license costs ourselves, because we feel like these additions make our products more complete. I see this as a service on our end. I would’ve liked to do the same with Yoast SEO Pro. But that’s not an option with their pricing format, so we choose to not do it at all.

        The problem with the current cumulative discount system is that you have to know how many sites you will use it on, before buying. After that point, when a new client comes aboard and wants to have it as well, you have to pay And this charge the normal price. Also, this clients’ license is out of sync with all other licenses and will always be. So I can only offer my clients a good price when buying the bulk once, and after that it’s just full price. And at that point I feel like it’s a waste of time for my company to even start this endeavor. If clients want it, they have to arrange for it themselves.

        And that’s OK, my company doesn’t have to sit between Yoast and the client that way. But that doesn’t take away the fact that I would’ve liked to offer Yoast SEO Premium to my clients the same way as Elementor Pro and Gravity Forms.

        Report

      • I think his point is that if Yoast wants to sell more premiums, they have to work on their pricing. Of course he’s not giving his customers premiums if they don’t want to pay for it, but because their plugin is so expensive, more people will stick to the free version.

        They might in the long term get more income if they offer bulks like a this much a year for unlimited sites, because right now they aren’t buying any premiums.

        Report

  3. I abandoned Yoast because their pricing went through the roof last year. Additionally there is a huge disconnect between their developers and their support team. They issued a release that downed our sites and although it was common knowledge thruout the WP community that the release had conflicted with Gutenberg, their support team acted as if it didn’t know about the bug in their latest release.

    We now use SEOPress which is only $39 for unlimited sites (vesus over a $100 just for one site for Yoast).

    Report

    • Marcus, thanks for the tip on SEOPress. Going to give it a try and from I have read of it, it looks to be the answer I am looking for here.

      Report

  4. “It’s rather hard to find ways to reach our audience, and we also have some principles on how (not) to do that,” said van de Rakt. “

    So we have a SEO “specializing” company, who is clueless how to reach people to buy their products. Is it just me, or there is something terribly wrong with these people/products ? !!!

    Report

  5. “One issue that plugin companies run into is the lack of an official premium marketplace for WordPress.”

    A centralised preferred option for selling paid plugins would be a terrible idea. To be sure, when things aren’t centralised, some plugins make bad decisions. But users have the freedom to reject those plugins and starve them of income from sales. With a centralised quasi-monopoly, everyone would be stuck with whatever was decided.

    Report

  6. Justin, you’ve got 53 updates pending (see graphic on this article)!

    I use the free version on 8 or 9 sites; the banner was not a problem except that the X didn’t dismiss the banner. The Yoast pricing structure seems exorbitant though, so 30% is not enough to make me bite. :-(

    Report

  7. Trust is a precious commodity. I hope team Yoast keeps this in mind as this seems to be a constant within their organizations’s brand. Spam the world, oops we made is “mistake”. Yeah, right.

    Report

  8. I think I’m missing something. Everyone gets this upset about a free plugin showing a banner in the admin?

    Sure, it’s an ugly banner. And it’s a bit crazy that you couldn’t close it. But come on, it’s just a graphic.

    It doesn’t slow down or break a site, or have any other impact on a site’s functionality.

    To me it’s like a sign of people being spoiled and being too used to thinking they are entitled to get a fully functional, professional plugin that should adhere to all their rules, without paying a single dime.

    But again, am I missing something?

    Report

    • Can I advertise in your site’s admin dashboard? This is what you are missing. There was no permission. If Yoast wants to put advertisement then put it in the Yoast plugin settings, not in the main area of the admin dashboard.

      Report

    • If you have 20-30 plugins on your site, you could end up with 20-30 banner ads in your dashboard to scroll past. I would have a serious issue with that, so this really does need to be stamped on before it becomes the thin end of the wedge.

      Report

    • So let me get this straight. This banner was in the free plugin, something you don’t have installed because you are paying them. And you are upset over what exactly?

      Sure. They messed up. They admitted it. They will learn. Can’t we all just move on?

      Seems like a lot of fuss over some spilled milk. Something you yourself never actually encountered because you are already paying them.

      Report

      • It’s not that they messed up and admitted it. It’s that they can and do routinely break the rules that would get other plugin authors thrown out of the repository.

        Advertising is allowed by plugins. but only on the plugins pages, not anywhere else. That’s the standard that every plugin in the repository is heald to. But Yoast put advertising right at the top of every page of the admin area. EVERY PAGE. That’s the issue. The worst part is that there wasn’t even a slap on the wrist or any sort of public “don’t do that” from WordPress.org becuse Yoast is one of the “protected” (my words) organisations that can do pretty much anything they want.

        That’s the crux of this problem. They broke the rules, but they don’t face the same punishments that others woudl if they did the same thing.

        Report

  9. Really? It’s a free product.

    In my opinion, ads should be allowed in free products. It comes with the territory. However, I think they should be small and standardized within the WP admin, and always dismissible. That’s where Yoast failed in this regard. Their banner was colorful, distracting, and not easily dismissed. But it’s not the end of the world.

    Obviously, millions of users find a great deal of value in their free product. A product that takes considerable time to develop, maintain, and support.

    Are we so entitled to the free work of others that we can’t tolerate a temporary banner ad?

    If your clients are freaking out over an ad in their WordPress dashboard on Thanksgiving weekend, you need to find new clients.

    Report

    • Respectfully, plugin/theme authors have work because of a free product. Without that FREE product (wordpress) they might not have a job. So yes, they should give back to the community in the form of plugins and themes. Nothing wrong with a link IN THE PLUGIN’s/Theme’s settings page, not on the main admin board.

      Report

    • Let’s not forget that these folks do more than most to contribute to said FREE product (WordPress) than just about any other company on earth. I think they’ve earned the right to screw up (assuming they own it and fix it).
      Going down the road that this is a violation of the plugin guidelines, the standard procedure is that you fix it and get reinstated. Given that they did so rather quickly (before they could even be penalized), most of the complaining sounds rather entitled.

      Report

  10. The Admin screen must be off limits for plugin advertising. The appropriate place for information about a plugin is the settings page for that plugin. Ideally a tab with information about the pro version and other related products. Any developer lacking basic respect for others will be phased out as quickly as possible. Especially when their ad triggers permanent changes to my admin page layout so I must redo it. They will definitely will get no business from me. I have always considered Yoast to be too disrespectful to deserve my business. So no oops/surprise here.

    Report

    • You aren’t giving them any business anyways. You installed a free plugin. In that same sense, you get what you pay for.

      Want something better? Want more control? Pay for it. If you don’t like Yoast’s pricing model, it seems there are other options out there.

      Seems the lynch mob is out in full force over something as simple as spilled milk. Shouldn’t we instead be working together to make help each other do better?

      Report

      • That’s fine, as long as they aren’t in the WordPress plugin repository. Go install whatever free adware you want from a third party.

        But if they are in the WordPress plugin repository, then they can follow the rules. And wordpress.org needs to take responsibility for enforcing that.

        Report

  11. I think you are missing… let’s say your site is using 30 plugins, and each plugin decides to throw a banner each,,,, now add the number of sites you maintain for your clients, lets say 50 of them, then you will spend half a day dismissing the ads, which in this case apparently you could not, or it was not easy, or you have to scroll down 3-4,000 px down the screen just to make changes to the site…

    Report

    • Let me ask a question…

      Since you seem to manage client sites, do you have automatic plugin updates turned on? Because it seems to me, most businesses that are managing sites for clients have some sort of a process to how they go about updating plugins.

      For example, I test every plugin update in a staging environment before my clients production sites get the updates. This means your argument of having to spend half a day is ludicrous.

      So you wouldn’t have spent half a day…more likely 5-10 minutes. You would have tested the update in a non-production environment and you would have chosen to dig deeper into the issue.

      It never does anyone any good to join in on the lynch mob when your argument is weak at best.

      Report

  12. It’s a free plugin! The only issue I had was that it wasn’t easy to get rid of when I clicked on the X.

    However, because a lot of people have a lot of different plugins, including my clients, I always get to see a lot of different notices on the dashboard – for both free and premium versions.

    I think if we’re going to have banners like that, then they need to be in the plugin’s settings, not on the main WordPress dashboard. Though honestly, I’ve seen worse over the years by other devs.

    People want to complain about pricing and all of these other things, but this banner issue – it’s a small thing. They corrected the issue and apologized. I’m sure Team Yoast is looking at this, and will have a better solution in the future.

    Some of you all need to get off the bitter bandwagon and focus on things that are far more important. Yoast isn’t some evil company. They employ real people who contribute a LOT to WordPress, outside of the Yoast plugins. Some people made this out to be worse than people complaining about Facebook glitches and Twitter fail whales. SMH

    Report

  13. I am a free Yoast use for five years. This black friday event, initiated me to think to another free SEO plugin. I agree with, trust is a precious commodity. I came here to find some yoast alternative. And I found that name.

    Report

  14. Strictly saying, they don’t break the .org rules. But this is beyond the rule and is a very bad action from a super popular plugin.

    Glad that they realized the problem and fixed it (and admitted it).

    But I do think .org should have a better guidance in preventing similar issues from happening in the future. At the moment, it feels like big players can do whatever they want, and then fix/change it. And then rules follow. That should be opposite, rules first, plugins/themes later.

    Report

  15. This isn’t the first time Yoast have made a mistake, but they are a software company and their product is integral to a huge number of websites, so any problem is going to be amplified. I wasn’t impressed with this, but I got over it quickly. The real issue for Yoast is that they need to make money to keep their team going, but their main premium product costs a lot of money for small website owners when there are other free products that do as much as Yoast pro does. Of course, free plugins like Rank Math probably won’t stay free for long, and it would be a shame for them to kill off Yoast and then realise themselves that they need to start generating income to keep things going.
    I’m really happy to pay for decent plugins (and do!), but as a web agency I need something that I can buy once and use everywhere.

    Report

  16. I work for a large agency. we have hundreds of sites using WordPress and most of them have yoast installed. Between Thanksgiving and today, I have been in dozens of those sites with full admin access and I do not remember seeing that banner at all.
    I am not saying it wasn’t there, but I block out in WP ad banners. I pay no attention to them at all, I am too busy paying attention to the work I need to do. This did not bother me 1 bit, and I am questioning why anyone else would care.

    Report

  17. This speaks to WordPress’ double standard. The reason that WordPress has attained its heights is because the profit incentive has driven the development of better and better applications. Still: the WordPress.org site lists only free plugins. Often, those plugins are so devoid of utility that you have to spring for the paid version. It’s disingenuous. Everyone knows that the free version of WooCommere is useless. You have to spend $300 – $600 in add-ons to get it to do something. Yoast: they have the same deal: the good functionality comes from pay-to-play. So that your screen isn’t cluttered with upsells, Yoast’s trick isn’t allowed– unless you’re Yoast.
    WordPress needs to acknowledge its bastard: premium themes and plugins are vital. Hiding them from view in the WordPress.org search results is a disservice to everyone.
    If WordPress were fair, they would see this violation and they would do to any smaller player: they would drop Yoast from the repository and WordPress.org. Yoast would have to re-apply with the option that they not be re-admitted as a developer. That’s not going to happen, because key decision-makers at WordPress are biased in their application of the rules.
    The solutions:
    – toss Yoast and invite them to re-apply
    – apply the rules fairly
    – put premium plugins into the eco-system along side the free ones. Let the users decide.

    Report

    • Plugin guideline violations do not require a developer to re-apply, they require a developer to fix the problem, and then the plugin is reinstated. Yoast fixed the problem before any action could be taken, so good on them!
      Had they said “Screw it! We’re Yoast, we don’t have to remove our banner ad! from the wp-admin!” and then we saw no action from the plugin review team, that might be another story. But that never happened…

      Report

    • Ok. For some reason my reply did not end up as one, but as a stand alone reaction :-|

      It’s sad to see the open source mindset disappear. Yoast contributed a lot to WordPress. I’m curious how much of their user base does. Yes they made a mistake. That’s on them and they apologised for it.

      You can point out their mistakes and guide them into the right direction or hit them with a stick. Your choice. One is in the spirit of open source, the other not so much.

      Report

      • It’s not that they messed up and admitted it. It’s that they can and do routinely break the rules that would get other plugin authors thrown out of the repository.

        I was referring to this. I read this as that you are upset and blame Yoast for getting some sort of “special treatment”. That is what I call barking up the wrong tree.

        Take this up with the plugin theme that set the rules. Personally I don’t think Yoast gets a special treatment but a lot of people seem to think so. You also mentioned the word routinely. I would not call an incident (or 2 maybe) a routine. Honestly, I’ve seen much worse.

        Also nowhere did I say that what has happened was ok (neither did Yoast). I was annoyed as well, for about 2 seconds and then I moved on. It was poor judgement from their perspective, nothing more, nothing less.

        Report

  18. It’s interesting to see how people’s reactions change depending whether the company is Yoast (“They contribute a lot to WordPress, ungrateful whiners!”) or, say, ThemeIsle (“Bring the torches and pitchforks! Screw them and their users!”) or another one…

    Report

  19. My opinion applies to all plugins in the repository, not just Yoast. Some of the guidelines in section #11. “Plugins should not hijack the admin dashboard.” need to be made into actual rules. Some companies will continue to push the limits, just ignoring anything that is not a “rule” until we do.

    https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/#11-plugins-should-not-hijack-the-admin-dashboard

    Report

    • @Sonja: The plugin repository rules are there since ever, but they seem to be enforced only in certain cases, that’s actually what it looks like “from outside”. If a smaller ~10k installs plugin would have done things like Yoast repeatedly does, it would have been banned from repository since years… :-/

      Report

  20. Maybe the best and easiest way to deal with commercial messages in the WP admin would be for wordpress.org to integrate an option during the install flow: “Will you accept commercial content in the admin area – yes or no?” allowing or dis-allowing (through code) plugin and theme vendors placing commercial messages in the WP admin area.
    Then the discussion is no longer academic, right?

    Report

  21. This Yoast is now turn into the adware! Make major mistake and then apologaze every all time. Time to take back control of our WP Admin. Make Admin Great Again!!! Out with the Youst!

    Report

  22. I didn’t have a problem with it at all. Sure I noticed it, but obtrusive no. AND we are all here to run a business, I don’t have a problem with advertising your product. I am a food blogger and run ads on my site – they are all from companies wanting to sell their products.

    Report

  23. Wow. Talk about a tempest in a teapot.

    Seriously, if having a banner offering a discount appear in your WordPress Dashboard is the worst thing that has happened to you, you have clearly lived a charmed life. There are countless other more important things to worry about. I saw and read the banner. I didn’t want their offer. I went on with what I had signed in to the Dashboard to do. End of story. I didn’t feel any outrage. No anger. No shock. No dismay. I didn’t feel anything one way or another about the banner and it didn’t affect my positive impression of Yoast one iota.

    Chill and get a life people.

    Report

  24. I just think Yoast as a company pushed a short-sighted tactic because they could easily anticipate how many in the community would have reacted to this banner.

    Still, Yoast is a company that needs to make profits and I’m all for new ways to bring new paying customers (aka pushing the premium versions of your product) as long as you don’t bend the rules all other plugin devs need to abide by.

    I think the reactions Yoast had to deal with, although easily foreseen, were too strong. C’mon they didn’t kill anyone, geez. And the CEO — Marieke — officially said they were sorry.

    Having said that, I just keep seeing these things happening both on the repo and on the dashboard, where bigger players bend the rules in their favor.

    My take on it: https://www.matteoduo.com/upselling-advertising-crossselling-wordpress-org-dashboard

    TL;DR: Yoast wasn’t the first one doing this and it won’t be the last. Why? Because it’s a flawed “environment” that sometimes is taken advantage of. When big players try to “trick it”, a simple apology seems to be enough, while small/indie plugin devs get their plugin banned or temporarily removed.

    Report

    • When big players try to “trick it”, a simple apology seems to be enough, while small/indie plugin devs get their plugin banned or temporarily removed.

      That’s the crux of the issue.

      Report

    • I would say this worked for them big time. This is another issue. How much profit came from the rules being broken. This entire section of the CMS needs to be addressed too, WP can stop all this. Surely there is a way to stop ads in CMS. Revolutions Slider 6, has a similar ‘idea’ must be a 800x600px banner top of the older version 5. We need a simple notifications setup in WP, and like phone apps a simple way to kill those terrible popups and reminders. Themes hijack all this now too, just needs better controls.

      Report

  25. The plugin is bloated, its also not able to do what it claims, the main issue is the up sell here. Its not a plugin worth paying for, it does under the hood a few tiny things you need, 90-95% is pure bloat: https://wpwebdesign.ie/remove-the-bloat-from-yoast/

    The backend without the de-bloat plugins is without a doubt the most misleading SEO advice a novice can get. I see sites with no titles filled in but focus keywords are. They need to take a big step back and develop offsite tools like Raven or SMERush etc. You cant run an SEO dashboard in your CMS, well you shouldnt. This trend is just more and more every update. I think ppl just lost it with this banner.

    Report

Newsletter

Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

%d bloggers like this: