Opening Up Meta = More Revenue Opportunities
Mark Zuckerberg announced Meta is opening up their platforms further and will not moderate/police their platform as much moving to a community notes platform similar to X’s approach.
On the face of things, this seems political to align with Trump’s second term, but there’s much more to this… and not just about “free speech”
The announcement video
Its A Political Product Move Not Just Politics
There’s a lot being made about Meta’s political decision to open up more and filter less conversation/content sharing.
Meta has learnt from their suite of apps (the traditional Facebook, the modern Facebook… Instagram, their test product Threads and WhatsApp) how less filtering and less policing, actually means more usage and ad revenues.
Here’s a couple of examples:
Instagram: Multiple accounts per person, more DMs sent, more engagement made, and a big signal to them internally —sharing to groups is a big new normal behaviour. Less filtering is needed to make this successful.
WhatsApp - large group chats, friend semi-private (groups of colleagues or industry friends) and private 1-2-1 conversations are rarely policed and thrive in usage and popularity.
2B DAUs and 100B messages sent per day. Policing at this size doesn’t help, it hinders WhatsApp.
Meta uniquely understands more content, whether human or AI-generated, which will mean more engagement, more ad opportunities, and more chances for people to choose a side and discuss that.
Tribal Behaviour → Tribal Ads
Users will flock to their tribe. Always have. Always will.
Whether that seems like a person or a bot.
Many want to feel safe in a tribe. Meta knows this way better than anyone. WhatsApp / Instagram have barely ever been policed and are quite clearly thriving.
People seek out and find their tribe & their “people”, especially on new platforms. Ask Bluesky who sees communities shift wanting a home for that tribe.
I’m team red or blue, I’m an x - you’re also an x let’s chat.
Often tribal membership causes I’m left your right - let’s argue and retreat back into our safe space.
This is why live sports and political events happen multiple times a week creates huge and popular content, and became incredibly popular in the podcast space - which has been lost to YouTube and Spotify from discourse on social platforms…
I like your content / I hate your content I’ll watch it anyway and maybe comment.
Often hate watching leads to I’ll engage and tell you my POV, whether the creator engages or not it’s all extra content to fill a feed - just look at your LinkedIn feed on recent view.
The Content Comment Cycle:
POVs → debate → engagement → ads.
This usually means a happy user & happy platform. Even when users are unhappy this still leads to ads.
Opening up moderation again = more of this cycle - it’s been this way since the feed went live in September 2006.
Now New User Policing
There is a deeper issue here, as users will have to connect with content, understand, verify the content & then trust the content and its source.
We have all fallen into the trap of reading a headline and not always the source. We have all fallen for a news story being exaggerated or a fake news story has been promoted into our feed, we have to report it to remove it.
Content and trusted sources are something we already struggle with and this move puts the emphasis back on us when this wasn’t the agreement when we signed up.
These platforms should hold the creator of these pieces of content accountable - this move might be the opposite.
Shift — More Creator Less Lurkers…
This could be a way that more profiles create more content - at the moment Instagram is made up of 10% creator 90% viewership, and way more lurking than creating is a challenge in feed-driven products.
This is a case on Facebook and most likely Threads but not on WhatsApp. Meta needs to address this and quickly to keep users and advertisers happy.
Identities & Powerful Profiles
Let’s go a little deeper
Identity can be seen in 3 clear sections:
The Real Me (Facebook’s original MO) - Real Name, real job, real location (Danny Denhard, Coach, “London”)
Pseudonymous Me - Hidden behind a handle (@fluffybunny21) or identity I curate and live behind (‘privately’) - this is a lot of what Instagram is and what Threads have been driven towards.
Anonymous Me - Anonymous name, anonymous photo, anonymous personality.
Any variation or blend of these is an active decision by the user but still means more content, more engagement, more ads, more revenue.
Enter Identity, Profiles & Ads
These levels of identity are going to be important to understand moving forward. Not only for the types of content and ads being served against the content we created but when this opens up, there will be more conversations creating more moments for ads and ad types and more revenue for them.
Don’t be fooled by this move only being politics in the US sense. This is a cross-border international ‘check’ move in chess before AI profiles, AI automation and “interferences” and influencing more conversations.
AI Profiles, Ads & More
Here’s what we know from Meta’s suite of products and ads.
It’s an ability to show advertising formats against UGC content, professional content, companies trying to connect to an audience, engagements (more than reactions to posts) and varying behaviours.
We are going to see way more profiles, way more AI profiles and a lot of questionable content and comments created. Whether AI is agents or AI is a dedicated profile to Meta this is a larger revenue opportunity.
Users ✅, companies ✅, Meta ✅, AI about to ☑️.
Ad Tolerances
If we have learnt anything from Meta, it’s their unique ability to ramp up ad load onto their users & users just end up accepting it.
We have mostly crafted our connections over years, some have built larger audiences and some have built a tribe to have ads connected and served to us based on our interactions.
Brands of all sizes are brought into this ecosystem and many SMBs have an addiction to their ads products. It’s dollar in dollar out - dollars = tracked customers or potential customers.
The Simple Formula: More content = more ads moments = more budget.
Meta will report in ways that won’t enable you to know it came from a highly debated contentious debate or reels or in a WhatsApp chat - it’s just from an ad we served for you to win a customer.
AI offers a new way of ad formats, downloads, answers, watches of content, direct actions based on interactions. More content and engagements equal better formats and solutions for brands/advertising partners. Imagine asking Meta a question and it answers on behalf of a company, recommends a size or product SKU and it’s delivered to your house, your inbox or to an AI assistant to take the action - mutual win…
The Brand Risk
With all this said, advertisers will have to keep in mind there is a brand risk and one that might increase.
The big BUT is that more content allows more ways to be creative with ads, more ability to learn more about the users and serve ads and new and different forms of ads against their moments on the app.
The risk/reward seems high but brands crave potential new customers and will pay to retain (more re-acquire) customers through ads than work other channels and internal comms harder.
A real-life competitor example is TikTok and TikTok creates the lowest barrier to entry to create compelling content, this has led to highly questionable and harmful brand content, however, brands know their products will be discussed, shared in inboxes, promoted as a great product (and affiliate link sales are attributed) and their ads will be squeezed between scrolls, inbox messages and swipes and as a brand lead you won’t know exactly what your ad was shown next to or in between but you know where there are orders — it works.
Meta Product Is The User Base & Maximising Engaging Opportunities For Ad Units
Meta’s products enable users to be the people they want to be, talk to or at who they think they should, see what they want and haven’t thought what they want and say the things they would never say in person while users are Meta’s product, being served ads that they might just want from brand and products they’ve shown some intent for. A Marketplace and platforms only work if there is supply and demand and then matching suppliers with more demand…this is the play!
More content less policing enable Meta to serve more ads, more quickly and answer almost all brand’s biggest problems, get more customers more quickly and more “effectively” while being able to track our spending efficiency.
It’s a powerful political move for their products while AI and politics take centre stage and users have to police more… this is a big strategic win no doubts, will the users care no - but I hope we think about second and third order effects of this more critically than less moderation!
Essential follow-up reading
class SquarespaceRelatedPosts { constructor(config = {}) { this.config = { maxPosts: config.maxPosts || 3, container: config.container || '.related-posts', postSelector: config.postSelector || '.blog-post', tagSelector: config.tagSelector || '.blog-post-tag', excludeCurrentPost: config.excludeCurrentPost !== false, titleLength: config.titleLength || 60, loadingText: config.loadingText || 'Loading related posts...', noResultsText: config.noResultsText || 'No related posts found', template: config.template || this.defaultTemplate }; this.currentPostId = null; this.currentTags = []; } defaultTemplate(post) { return ` <div class="related-post"> ${post.thumbnail ? ` <a href="${post.url}" class="related-post-image"> <img src="${post.thumbnail}" alt="${post.title}"> </a> ` : ''} <div class="related-post-content"> <h3 class="related-post-title"> <a href="${post.url}">${post.title}</a> </h3> ${post.excerpt ? ` <p class="related-post-excerpt">${post.excerpt}</p> ` : ''} <div class="related-post-tags"> ${post.tags.map(tag => ` <span class="related-post-tag">${tag}</span> `).join('')} </div> </div> </div> `; } async init() { try { // Get current post information await this.getCurrentPostInfo(); // Set up container this.container = document.querySelector(this.config.container); if (!this.container) { throw new Error(`Container ${this.config.container} not found`); } // Show loading state this.container.innerHTML = `<div class="loading">${this.config.loadingText}</div>`; // Fetch and display related posts await this.fetchRelatedPosts(); } catch (error) { console.error('SquarespaceRelatedPosts initialization error:', error); this.container.innerHTML = `<div class="error">Error loading related posts</div>`; } } async getCurrentPostInfo() { const currentPost = document.querySelector(this.config.postSelector); if (!currentPost) { throw new Error('Current post not found'); } // Get post ID from URL or data attribute this.currentPostId = window.location.pathname; // Get current post tags const tagElements = currentPost.querySelectorAll(this.config.tagSelector); this.currentTags = Array.from(tagElements).map(tag => tag.textContent.trim()); } async fetchRelatedPosts() { try { // Fetch all blog posts using Squarespace JSON endpoint const response = await fetch('/blog?format=json-pretty'); if (!response.ok) throw new Error('Failed to fetch posts'); const data = await response.json(); let posts = data.items || []; // Filter and sort related posts const relatedPosts = this.processRelatedPosts(posts); // Display results this.displayRelatedPosts(relatedPosts); } catch (error) { console.error('Error fetching related posts:', error); this.container.innerHTML = `<div class="error">Error fetching related posts</div>`; } } processRelatedPosts(posts) { return posts // Remove current post if configured .filter(post => !this.config.excludeCurrentPost || post.fullUrl !== this.currentPostId) // Calculate relevance score based on matching tags .map(post => { const postTags = post.tags || []; const matchingTags = postTags.filter(tag => this.currentTags.includes(tag) ); return { ...post, relevanceScore: matchingTags.length, title: this.truncateText(post.title, this.config.titleLength), thumbnail: post.thumbnailUrl, url: post.fullUrl, excerpt: post.excerpt, tags: post.tags || [] }; }) // Sort by relevance score .sort((a, b) => b.relevanceScore - a.relevanceScore) // Filter out posts with no matching tags .filter(post => post.relevanceScore > 0) // Limit to configured maximum .slice(0, this.config.maxPosts); } displayRelatedPosts(posts) { if (!posts.length) { this.container.innerHTML = `<div class="no-results">${this.config.noResultsText}</div>`; return; } const html = posts.map(post => this.config.template(post)).join(''); this.container.innerHTML = html; } truncateText(text, maxLength) { if (text.length <= maxLength) return text; return text.substring(0, maxLength).trim() + '...';}