Concept for Decentralized Advertising in the Fediverse
2023-10-05
This is a summary of a longer proposal. View the full document on GitHub for complete details.
Summary
This proposal outlines extensions to the ActivityStreams vocabulary to support a decentralized advertising framework in the Fediverse using ActivityPub. The goal is to create a sustainable revenue model for the Fediverse by treating ads as specialized ActivityPub activities and user preferences as specialized activities or custom fields in a user's ActivityPub profile.
History
The Fediverse, a decentralized network of social media platforms, has faced significant challenges in terms of growth and sustainability due to a lack of viable monetization options. This proposal aims to address this need by introducing a decentralized advertising framework built on the ActivityPub protocol.
Requirements
The proposed extensions to the ActivityStreams vocabulary include the following new types of activities, objects, and properties:
- An
ad:Ad
activity type for representing advertisements. - An
AdPreferences
activity type for representing user preferences for advertisements. - Additional properties for these new activity types, such as
targetDemographics
,budget
, andmonetization
for thead:Ad
activity, andfrequency
,format
,categories
,interests
,keywords
, andexclusions
for theAdPreferences
activity.
Example
Here are examples of how these new activity types and properties could be used in JSON-LD format:
{
"@context": [
"https://www.w3.org/ns/activitystreams",
{
"ad": "https://example.com/schema/Ad"
}
],
"id": "unique_ad_id",
"type": "ad:Ad",
"actor": "advertiser_account_uri",
"content": "Discover our new eco-friendly smartwatch.",
"targetDemographics": ["18-35", "Tech enthusiasts"],
"budget": 1000,
"monetization": {
"platform": "platform_payment_pointer",
"creator": "creator_payment_pointer"
}
}
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "AdPreferences",
"actor": "https://example.com/users/john_doe",
"timestamp": "2022-01-01T00:00:00Z",
"preferences": {
"frequency": "Low",
"format": ["Image", "Text"],
"categories": ["Tech", "Fashion"]
},
"interests": ["Open Source", "Sustainability"],
"keywords": ["Python", "Zero Waste"],
"exclusions": ["Alcohol", "Gambling"]
}
About the New Properties
The new properties added to the ad:Ad
and AdPreferences
activities represent the following:
targetDemographics
: An array of tags to target specific demographics.budget
: The total budget for the ad campaign.monetization
:platform
: Payment pointer for the platform.creator
: Payment pointer for the content creator. Used for revenue sharing.
frequency
: The preferred frequency of ads, represented as a string like "Low", "Medium", "High", or "None".format
: An array of preferred ad formats, such as "Image", "Text", "Video", etc.categories
: An array of preferred ad categories, such as "Tech", "Fashion", "Sports", etc.interests
: An array of interest tags used to match ads to the user's interests.keywords
: An array of keywords that represent the user's interests.exclusions
: An array of exclusion tags used to exclude certain categories of ads from being displayed to the user.