ERC-7580: 广告追踪接口
用于广告客户端追踪用户行为和检查成比例奖励的接口。
Authors | wart (@wartstone) |
---|---|
Created | 2023-12-13 |
Discussion Link | https://ethereum-magicians.org/t/erc-7580-inter-dapp-tracking-inferface/17653 |
摘要
该 ERC 提出了一种标准接口,供广告客户端在合约中追踪用户行为,并检查来自广告协议的相应奖励。实现该接口的合约使用事件来定义交易中的关注区域。Dapp 可以实现此接口以加入广告协议,从而使项目能够为合约中的特定行为资助用户。虽然用户可以从项目资金中受益,但 Dapp 一旦加入该协议,也将获得成比例的奖励。
动机
由于大规模采用,Dapp 将会繁荣发展,并且对链上广告的需求激增。与 web2 中的广告相比,web3 在交付和许多其他领域都具有巨大的优势。我们确实需要一套标准的追踪接口来促进广告相关的发展,这可以在链上创造新的经济周期,进一步促进 dapp 的繁荣,并最终使链上用户受益。
追踪接口标准的设计应包含对追踪用户行为的基本和通用支持,以及最小的限制,这可以为空投(或广告)协议留下最大的创新空间。一般流程如下:
- 项目从推广方获得一个种子 id (hash)
- 在目标推广行为开始之前,项目合约调用接口
onTrackStart(id, contract_address, function_hash)
- 在目标推广行为结束后,项目合约调用接口
onTrackEnd(id, contract_address, function_hash)
- 推广合约收集项目行为信息并将奖励分配回项目
例如,我们有两个实体持有各自的合约:合约 A 和合约 B。合约 A 的目标用户是在合约 B 中执行了特定关键操作(例如,提交特定函数)的用户,并且会向这些用户发放奖金/空投。当然,B 同时也会获得激励。为了连接所有这些点,B 需要识别这些用户,验证他们是为了 A 的奖金而来。因此,我们需要一种追踪机制来促进此类业务。
规范
本文档中的关键词“MUST”,“MUST NOT”,“REQUIRED”,“SHALL”,“SHALL NOT”,“SHOULD”,“SHOULD NOT”,“RECOMMENDED”,“MAY”和“OPTIONAL”应按照 RFC 2119 中的描述进行解释。
接口
该协议标准化了如何追踪 inter-dapp 操作,最初提供 2 个主要方法 onTrackStart
和 onTrackEnd
。
// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.10;
interface IERCXXX {
// Events
/// @dev 当追踪开始时发出。
/// @param track_id 追踪 id
/// @param contract_address 追踪合约的地址
/// @param function_hash 带有参数的追踪函数的哈希值
event onTrackStartRecorded(uint256 track_id, address contract_address, bytes32 function_hash);
/// @dev 当追踪开始时发出。
/// @param track_id 追踪 id
/// @param contract_address 追踪合约的地址
/// @param function_hash 带有参数的追踪函数的哈希值
event onTrackEndRecorded(uint256 track_id, address contract_address, bytes32 function_hash);
// Functions
/// @dev 追踪指定的合约函数开始移动。
/// @param track_id 追踪 id
/// @param contract_address 追踪合约的地址
/// @param function_hash 带有参数的追踪函数的哈希值
function onTrackStart(uint256 track_id, address contract_address, bytes32 function_hash) external;
/// @dev 追踪指定的合约函数结束移动。
/// @param track_id 追踪 id
/// @param contract_address 追踪合约的地址
/// @param function_hash 带有参数的追踪函数的哈希值
function onTrackEnd(uint256 track_id, address contract_address, bytes32 function_hash);
}
原理
该提案的核心机制是为 inter-dapp 操作提供共享的追踪接口,以提高效率并满足所需的追踪业务。我们提供两个接口函数 onTrackStart
和 onTrackEnd
来填充基本所需信息并连接必要的点。当然,对更多函数的需求更多,并且稍后会更新。
向后兼容性
此标准不会引入向后兼容性问题。
安全考虑
版权
在 CC0 下放弃版权及相关权利。
Citation
Please cite this document as:
wart (@wartstone), "ERC-7580: 广告追踪接口 [DRAFT]," Ethereum Improvement Proposals, no. 7580, December 2023. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-7580.