Web3 has gone beyond just finance and tokens and has entered social, gaming and social-fi. All these use cases make your wallet an identity. Just like web2, the tracking of preferences of a profile continues to be closed and centralized in all these apps.
AdGraph decentralizes and opens up the preferences of a profile. It is an onchain graph of tags where any app can add preferences for a user, for example when a user browses through the profile of a travel vlog, the app can add "travel" to the user's profile.
This profile is open, in the sense any app can add tags for their users, and can see the data added by other apps. The user can block/allow apps that are allowed to add, or can block/remove tags from their profile.
This allows decentralized apps to collaborate and contribute to the user's profile because they themselves can utilize the data added in order to target content or ads. Advertisers can upload a content, and we use AI to filter out the wallet addresses who will be interested in that content.
AdGraph can be used by the individual applications who contribute to the network to personalize their content. It can also be used by ad networks who operate across applications in order to target products to users.
Imagine Shop3, a shopping site and Scroll, a social media. They keep publishing what the user’s interests are to their ad graph. When the user opens a shoe page on Scroll, "shoe" gets added to AdGraph. When Shop3 wants to advertise a shoe, it can instantly pull up wallet addresses interested in that particular tag. Maybe Shop3 can even advertise on Scroll. The network grows stronger as more apps join the network.
We faced 4 challenges: storage, allowlisting, a technical issue and a UX issue.
We had to decide a place to store all this data. Our initial thought was storing it on IPFS, and updating the user's onchain profile with the CID. This was thought keeping in mind that the clickstream events will be a lot. However we chose to store this whole graph onchain after we came up with a way to use CoinBase Paymaster to sponsor and bundle all these transactions. This also helps to allow the user to alter the data associated with them directly through our contracts.
We were in a dilemma if we should maintain one list of tags and allow all apps to modify that. Such an approach might lead to spam. To prevent that, we will issue a temporary token to all apps that wish to integrate with AdGraph, and resolve that token into the app's name inside the edge function we use to handle the clickstreams and send the onchain transaction. All this happens async with Paymaster in the background.
We had issues bundling the coinbase paymaster sdks with the Fleek function using the normal build procedure. We had to manually build and link the packages using esbuild for it to work properly. Fortunately folks from Fleek helped us through this.
We built the whole product, but didn't know how to make an advertiser understand the problem we were solving. We solved this using AI. We some sample sites which integrate AdGraph, and used AI where advertisers can upload content, from which we will aotumatically extract labels and perform search to find the wallet addresses who will be interested in it. We show the advertisers the list of wallet addresses and which tags make them suited for the content.
Tracks Applied (4)
DISCOVERY with Fleek
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.
Discussion