Links

The Campaign Object

A Campaign on Usher can be represented as a JSON Object.
Pieces of the object are distributed across different storage mechanisms to deliver on the immutability of Campaign Terms but mutability of Campaign Details and Brand/Advertiser Profile.
Once fully processed, a Campaign in its raw form, looks like this:
{
"id": "ida4Pebl2uULdI_rN8waEw65mVH9uIFTY1JyeZt1PBM",
"chain": "arweave",
"owner": "ksFTLgrwQGtNrhRz6MWyd3a4lvK1Oh-QF1HYcEeeFVk",
"events": [
{
"strategy": "flat",
"rate": 0.1,
"nativeLimit": 250000,
"perCommit": 1,
"description": "files are uploaded"
}
],
"reward": {
"name": "Arweave",
"ticker": "AR",
"type": "token",
"limit": 3000
},
"conflict_strategy": "PASSTHROUGH",
"details": {
"destination_url": "https://app.ardrive.io/#/sign-in?ref=usher",
"name": "ArDrive Referral Program",
"description": "Refer users to ArDrive and earn when files are uploaded.",
"image": "https://ardrive.io/wp-content/uploads/2021/07/Gallery-Angle-PS3000-scaled.jpg",
"external_link": "https://ardrive.io/"
},
"advertiser": {
"name": "ArDrive",
"icon": "https://ardrive.io/wp-content/uploads/2021/06/AD-LOGO-PS1600-210x79.png",
"description": "Upload files forever!",
"external_link": "https://ardrive.io/",
"twitter": "https://twitter.com/ardriveapp"
},
"disable_verification": false,
"unlisted": false,
"whitelist": null
}
All properties within the Campaign Object except for details and advertiser are stored immutably on the compute blockchain that the Brand decides to conduct the Partnership Program on.
details and advertiser are stored on the Ceramic Network, where data is mutable and write-access is owned by the Brand.

Campaign Object Properties

Object Property Name/Key
Type
Description
id
string
The identifier of the Campaign. This can be an ID within a Smart Contract or an Blockchain Transaction Address, depending on the chain
chain
string
The blockchain identifer. ie. arweave , ethereum, polygon
owner
string
The Wallet Address of the Brand/Advertiser
events
array
An array of Conversion Events. These Events represent points throughout the Referred User journey at which Conversions are Tracked
events[].strategy
string
flat or percentage reward strategy for the event
events[].rate
float
Reward rate for the event. For the flat strategy, this rate is flat amount of tokens rewarded to partners. For the percentage strategy, this rate is a multiplier, multiplied by the metadata.amount submitted in the Conversion Parameter
events[].nativeLimit
integer
An arbitrary value that limits the conversions that can be processed for this given event for the referred/native user. Where a Conversion.nativeId is provided, rather than restricting conversions to 1 per referred/native user, the Referred User can continue triggering conversions until the sum of all Conversion.commit values meets this nativeLimit
events[].perCommit
integer
If no reward perCommit is defined, the behaviour is standard (ie. X reward rate per Conversion). Otherwise, the reward amount can be relative to the Conversion.commit value, such that reward = rate * (commit / perCommit)
events[].description
string
A description for when the event will trigger. The word "when" is prepended to this description in the Usher Partner App UI
reward.name
string
The name of the rewarded token. ie. "Ether", "Arweave", "My Cool NFT"
reward.ticker
string
The ticker for the rewarded token. ie. "ETH", "AR", "MYCNFT"
reward.type
string
The type of the token rewared to Partners. This is an enumerator with values: token, nft, or pst
reward.limit
integer
A limit on the rewards for the entire campaign. When the amount of claimed rewards reaches this limit, the Campaign is considered complete.
conflict_strategy
string
PASSTHROUGH or OVERWRITE Determines how the referral should behave when two Partners refer the same user prior to a tracked conversion. PASSTHROUGH is default, and ensures that the first Invite Link used takes precedence. OVERWRITE is optional and ensures that the last Invite Link used takes precedence.
details.destination_url
string
The URL that Campaign Partners will redirect users to.
details.name
string
Name for the Campaign to be recognisable by Partners
details.description
string
A description for the Campaign detailing when and how users are converted once the destination_url is reached
details.image
string
A hosted image URL to further enhance recognisability of the Campaign
details.external_link
string
A URL Partners can visit to receive more information about the Campaign. Can be a landing page promoting the partnership program
advertiser.name
string
Name of the Advertiser
advertiser.icon
string
A hosted image URL of the Advertiser's Brand Icon
advertiser.description
string
A description of the Advertiser and their related services or propositions
advertiser.external_link
string
A URL that Partners can visit to learn more about the Advertiser
advertiser.twitter
string
A Twitter URL that Partners can visit to learn more and get updates from the Advertiser
disable_verification
boolean
If true, Personhood Verification will NOT be required for Partners to start referring users and earning rewards. Personhood Verification is generally recommended to be active for Campaigns. Learn more on whether your Campaign should include this security measure.
unlisted
boolean
Determines whether the Campaign will show on the Usher Explore Page. Partnership Programs that wish to remain private, and/or include a Whitelist of Partners can opt to set this to true
whitelist.partners
string[]
An array of Partner Identifiers. By default, Campaigns will not include the Whitelist feature.
whitelist.external_link
string
A URL where a Form or other form of data collection is hosted. Partners can use this URL to submit their application to participate in the Partner program.