schema-vivo.sql 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. CREATE TABLE IF NOT EXISTS vivo_ad_bid_events (
  2. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  3. qk VARCHAR(128) NOT NULL COMMENT '唯一业务键(query key)',
  4. media VARCHAR(64) NOT NULL COMMENT '媒体来源(vivo)',
  5. media_trace_id VARCHAR(255) COMMENT '媒体追踪ID(callback/设备标识)',
  6. platform VARCHAR(16) COMMENT '平台(android/ios)',
  7. account_id VARCHAR(128) COMMENT 'vivo 投放账户ID',
  8. event_type VARCHAR(32) COMMENT '事件类型(impression/click),仅保留排障所需',
  9. tag_id VARCHAR(128) NOT NULL COMMENT '百度广告位ID',
  10. price BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '竞价价格(分)',
  11. package_name VARCHAR(255) COMMENT '应用包名',
  12. media_params JSON COMMENT '媒体参数精简白名单(仅保留 clickId/srcId/pkgName/设备号/ts/deduction_rate)',
  13. created_at TIMESTAMP(3) NOT NULL COMMENT '创建时间',
  14. UNIQUE KEY uk_vivo_ad_bid_events_qk (qk),
  15. KEY idx_vivo_ad_bid_events_media_trace (media, media_trace_id),
  16. KEY idx_vivo_ad_bid_events_platform_tag (platform, tag_id),
  17. KEY idx_vivo_ad_bid_events_account_created_at (account_id, created_at),
  18. KEY idx_vivo_ad_bid_events_created_at (created_at)
  19. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='vivo竞价事件记录';
  20. CREATE TABLE IF NOT EXISTS vivo_tracking_reports (
  21. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  22. qk VARCHAR(128) COMMENT '关联的业务键',
  23. tag_id VARCHAR(128) NOT NULL COMMENT '百度广告位ID',
  24. kind VARCHAR(32) NOT NULL COMMENT '类型(impression/click)',
  25. tracking_url TEXT NOT NULL COMMENT '上报的目标URL',
  26. status INT NOT NULL COMMENT 'HTTP响应状态码',
  27. ok TINYINT(1) NOT NULL COMMENT '是否成功(1=成功,0=失败)',
  28. created_at TIMESTAMP(3) NOT NULL COMMENT '创建时间',
  29. KEY idx_vivo_tracking_reports_qk_kind_created_at (qk, kind, created_at),
  30. KEY idx_vivo_tracking_reports_tag_created_at (tag_id, created_at)
  31. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='vivo曝光/点击上报结果';
  32. CREATE TABLE IF NOT EXISTS vivo_media_callbacks (
  33. id BIGINT AUTO_INCREMENT PRIMARY KEY,
  34. dedupe_key VARCHAR(255) NOT NULL COMMENT '去重键',
  35. qk VARCHAR(128) COMMENT '关联的业务键',
  36. tag_id VARCHAR(128) NOT NULL COMMENT '百度广告位ID',
  37. callback_url TEXT NOT NULL COMMENT '回传的API URL',
  38. event_type VARCHAR(64) NOT NULL COMMENT 'vivo 回传事件类型',
  39. event_time_ms BIGINT NOT NULL COMMENT '事件时间(毫秒时间戳)',
  40. purchase DOUBLE COMMENT '付费金额',
  41. deduction_rate INT NOT NULL DEFAULT 0 COMMENT '扣量比例(0-100)',
  42. is_direct_match TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否直归因(1=是,0=否)',
  43. dispatch_status VARCHAR(32) NOT NULL DEFAULT 'SENT' COMMENT '回传处理状态(SENT/DEDUCTED)',
  44. status INT NOT NULL COMMENT 'HTTP响应状态码',
  45. ok TINYINT(1) NOT NULL COMMENT '是否成功(1=成功,0=失败)',
  46. attempt INT NOT NULL DEFAULT 1 COMMENT '尝试次数',
  47. response_body TEXT COMMENT '响应体(截断)',
  48. error_message TEXT COMMENT '错误信息',
  49. request_body TEXT COMMENT '请求体',
  50. created_at TIMESTAMP(3) NOT NULL COMMENT '创建时间',
  51. KEY idx_vivo_media_callbacks_dedupe_ok_created_at (dedupe_key, ok, created_at),
  52. KEY idx_vivo_media_callbacks_qk_created_at (qk, created_at),
  53. KEY idx_vivo_media_callbacks_tag_created_at (tag_id, created_at),
  54. KEY idx_vivo_media_callbacks_event_created_at (event_type, created_at)
  55. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='vivo媒体转化回传记录';
  56. CREATE TABLE IF NOT EXISTS vivo_tag_event (
  57. tag_id VARCHAR(128) NOT NULL COMMENT '百度广告位ID',
  58. baidu_act INT NOT NULL COMMENT '百度转化行为',
  59. event_type VARCHAR(64) NOT NULL COMMENT 'vivo 回传事件类型',
  60. PRIMARY KEY (tag_id, baidu_act, event_type)
  61. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='vivo广告位回传事件配置';
  62. CREATE TABLE IF NOT EXISTS vivo_account_tokens (
  63. account_id VARCHAR(128) NOT NULL COMMENT 'vivo 二代账户ID',
  64. account_name VARCHAR(255) COMMENT 'vivo 二代账户名称',
  65. account_level INT COMMENT '账户等级(level)',
  66. account_status INT COMMENT '账户状态(status)',
  67. client_id VARCHAR(128) COMMENT '本次授权使用的vivo API client_id快照',
  68. client_secret VARCHAR(1024) COMMENT '本次授权使用的vivo API client_secret快照',
  69. access_token VARCHAR(1024) COMMENT 'access_token',
  70. refresh_token VARCHAR(1024) COMMENT 'refresh_token',
  71. token_expire_at BIGINT COMMENT 'access_token 过期时间(毫秒时间戳)',
  72. refresh_token_expire_at BIGINT COMMENT 'refresh_token 过期时间(毫秒时间戳)',
  73. authorized_at TIMESTAMP(3) NULL COMMENT '授权完成时间',
  74. updated_at TIMESTAMP(3) NOT NULL COMMENT '更新时间',
  75. PRIMARY KEY (account_id)
  76. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='vivo 二代账户授权 token';
  77. CREATE TABLE IF NOT EXISTS vivo_client_configs (
  78. client_id VARCHAR(128) NOT NULL COMMENT 'vivo API client_id',
  79. client_secret VARCHAR(1024) NOT NULL COMMENT 'vivo API client_secret',
  80. client_name VARCHAR(255) COMMENT '凭证名称/备注',
  81. enabled TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否启用(1=启用,0=停用)',
  82. updated_at TIMESTAMP(3) NOT NULL COMMENT '更新时间',
  83. PRIMARY KEY (client_id)
  84. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='vivo开放平台凭证配置';
  85. CREATE TABLE IF NOT EXISTS vivo_advertiser_accounts (
  86. advertiser_id VARCHAR(128) NOT NULL COMMENT 'vivo 广告主账户ID(advertiser_id)',
  87. secondary_account_id VARCHAR(128) NOT NULL COMMENT '所属vivo二代账户ID',
  88. advertiser_name VARCHAR(255) COMMENT 'vivo 广告主名称',
  89. advertiser_status INT COMMENT '广告主状态(status)',
  90. last_sync_at TIMESTAMP(3) NULL COMMENT '最近同步时间',
  91. updated_at TIMESTAMP(3) NOT NULL COMMENT '更新时间',
  92. PRIMARY KEY (advertiser_id),
  93. KEY idx_vivo_advertiser_accounts_secondary (secondary_account_id)
  94. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='vivo 广告主到账户映射';