穿山甲 + 腾讯短剧短视频聚合广告平台|Android+SpringBoot+Vue+Docker 完整部署指南

前言

本文基于一套短剧短视频聚合广告平台源码展开,项目支持对接穿山甲、腾讯优量汇、灰鲸等多家广告渠道,完整实现短剧 SDK 渲染、多类型广告加载、服务端回调校验、收益统计、邀请裂变、用户激励整套业务能力。

很多开发者拿到源码压缩包之后,频繁遇到 SDK 初始化失败、短剧广告不展示、服务端回调失效、Android 打包签名报错、Nginx 反向代理异常等各类问题。源码包内已经将 APPID、广告位 ID、密钥、域名、数据库密码等全部敏感信息替换为占位符,无法直接运行,必须完成全量参数替换。本文完整梳理项目架构、参数配置、编译打包、问题排查、容器上线全流程。

项目架构说明

整套项目分为三大核心模块,模块之间参数强耦合,任意一端参数不一致,都会直接造成广告不加载、回调异常、业务逻辑失效。

  1. Android 客户端(qianduan/app):业务载体,集成穿山甲短剧 SDK、腾讯广告 SDK,负责广告渲染、深链接唤起、业务接口上报;
  2. SpringBoot 后端(houduan):业务服务中枢,MySQL 数据持久化、JWT 接口鉴权、广告回调签名校验、邀请下载逻辑、广告数据统计;
  3. Vue 管理后台(admin):可视化管理面板,完成广告数据、用户数据查看与管理。

项目配套 Nginx 反向代理,同时提供docker‑compose容器化部署方案,适配生产环境快速交付。

一、占位符参数提前梳理

源码中所有敏感信息统一使用XXX------XXXX占位标记,部署前务必整理好全部真实参数,下表为参数来源说明:

表格

占位符 含义 获取 / 生成途径
app 包名 ------XXXXX Android 应用包名 自定义,广告平台后台注册应用必须和该包名保持一致
APPID------XXXX 穿山甲 / 灰鲸应用 ID 广告平台开发者后台‑应用管理
站点 ID------XXXX 穿山甲短剧 SDK 站点 ID 穿山甲后台短剧 SDK 模块
广告位 ID------XXXX 各个广告代码位 ID 广告后台代码位管理页面
安全密钥 ------XXXX 聚合广告服务端回调密钥 穿山甲聚合广告位‑服务端回调配置
安全密钥 D------XXXX 短剧 SDK secure_key_d 穿山甲短剧 SDK 初始化配置
后端域名 ------XXXX 后端服务域名 已备案域名,作为接口访问地址
主域名 / 备用域名 ------XXXX App 深链接域名 使用备案域名,主域名尽量和后端域名一致
app 自定义 scheme------XXXX APP 唤起协议 自定义,用于网页、邀请链接拉起 App
APP 来源标识 ------XXXX 后端区分多 App 标识 自定义,多应用场景用来隔离业务数据
数据库名 / 用户名 / 密码 ------XXXX MySQL 数据库信息 服务器 MySQL 实例自行创建配置
JWT 密钥 ------XXXX JWT 签名密钥 随机生成,至少 256 位字符
签名相关密码 / 别名 Android jks 签名文件参数 使用 keytool 工具本地生成
许可证签名、许可证 base64 内容 短剧 SDK 授权凭证 穿山甲后台下载许可证文件提取

⚠️重点提醒:Android 端、后端、广告平台三方关键参数必须完全匹配,是广告正常展示、回调生效的核心前提。

二、Android 客户端配置

项目目录:qianduan/app

1、build.gradle.kts 包名与签名配置

复制代码
namespace = "app包名------XXXXX"
applicationId = "app包名------XXXXX"

//签名配置
storePassword = "签名密钥库密码------XXXX"
keyAlias = "签名别名------XXXX"
keyPassword = "签名密钥密码------XXXX"

生成 jks 签名文件命令:

复制代码
keytool -genkeypair -v -keystore coin_app.jks -keyalg RSA -keysize 2048 \
  -validity 36500 -alias 你的别名

将生成的coin_app.jks放到qianduan/app/目录下。

2、接口地址与应用来源标识

文件路径:src/main/java/com/txy/gamehtxyzs/kh/sp/api/ApiRetrofit.kt

复制代码
const val BASE_URL = "https://后端域名------XXXX/"
const val APP_SOURCE = "APP来源标识------XXXX"

APP 来源标识作用:后端通过该字段区分不同 App 上报的数据;单 App 部署可以随便填写字符串,但是后端配置必须和客户端保持一模一样。

3、AndroidManifest.xml 深链接与 Scheme

复制代码
<data android:scheme="app自定义scheme------XXXX" android:host="invite" />
<data android:scheme="https" android:host="主域名------XXXX" android:pathPrefix="/invite" />
<data android:scheme="https" android:host="备用域名------XXXX" android:pathPrefix="/invite" />

用于邀请页面、网页跳转唤起 App,广告跳转场景强依赖该配置。

4、穿山甲短剧 SDK json 配置

assets 目录下SDK_Setting_*.json为 SDK 初始化配置文件。

复制代码
{
    "init": {
        "site_id": "站点ID------XXXX",
        "app_id": "APPID------XXXX",
        "partner": "pangle_APPID------XXXX",
        "secure_key": "安全密钥------XXXX",
        "secure_key_d": "安全密钥D------XXXX"
    },
    "feed": {
        "news_draw_ad_code_id": "广告位ID------XXXX"
    },
    "license_config": [{
        "PackageName": "app包名------XXXXX",
        "BundleId": "app包名------XXXXX",
        "Signature": "许可证签名------XXXX",
        "Content": "许可证内容(base64)------XXXX"
    }]
}

坑点:PackageNameBundleId必须和 applicationId 完全一致,否则短剧 SDK 直接初始化失败,广告无法加载。许可证签名和 base64 内容全部来自穿山甲后台下载的许可证文件。

5、腾讯 & 灰鲸广告配置(可选)

项目预留腾讯优量汇、灰鲸聚合广告接入能力,修改HjAdDemo_46820/目录下ConfigInfo.java以及 assets 配置文件,替换包名、APPID、广告位 ID 为广告后台申请的参数。

三、SpringBoot 后端配置

项目目录:houduan

1、application.yml 核心配置

src/main/resources/application.yml

复制代码
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/数据库名------XXXX?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: 数据库用户名------XXXX
    password: 数据库密码------XXXX
jwt:
  secret: JWT密钥------XXXX(至少256位的随机字符串)
ad:
  security-key: 安全密钥------XXXX
invite:
  download-url: https://后端域名------XXXX/invite/download

JWT 密钥生成命令:

复制代码
# Linux/Mac
openssl rand -base64 48

注意:JwtUtils.java里面有 jwt.secret 默认兜底值,生产环境不要依赖默认值,务必写在 yml 配置文件中

2、数据库脚本初始化

执行src/main/resources/schema.sql,替换脚本内部数据库名称,完成业务数据表初始化。 sql/sport_app_master.sql为整合版脚本,sql/migration_*.sql为增量迁移脚本,部署时统一替换库名、账号密码占位符。

3、全局域名统一替换

InviteController.javaAdCallbackController.javaWebMvcConfig.java中域名注释、默认参数全部替换为业务域名,保证广告回调、邀请下载链接正常。

四、Vue 管理后台配置

1、全局请求地址 src/api/request.js

复制代码
baseURL: window.location.hostname === 'localhost' ? '' : 'https://后端域名------XXXX',

2、开发环境代理 vite.config.js

复制代码
proxy: {
    '/api': { target: 'http://后端域名------XXXX:8081', changeOrigin: true },
    '/admin': { target: 'http://后端域名------XXXX:8081', changeOrigin: true }
}

3、打包构建

复制代码
cd admin
npm install
npm run build

打包产物 dist 目录,直接交由 Nginx 部署。

五、Nginx 反向代理配置

复制代码
server {
    server_name 后端域名------XXXX;
    listen 80;
    listen 443 ssl;
    ssl_certificate 你的ssl证书.pem;
    ssl_certificate_key 你的ssl证书.key;

    location /api/   { proxy_pass http://127.0.0.1:8080/api/; }
    location /admin/ { proxy_pass http://127.0.0.1:8080/admin/; }
    location /invite/{ proxy_pass http://127.0.0.1:8080/invite/; }
}

六、Docker Compose 容器部署

修改houduan/docker-compose.yml数据库环境变量

复制代码
environment:
  - SPRING_DATASOURCE_URL=jdbc:mysql://MySQL服务器IP:3306/数据库名------XXXX?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
  - SPRING_DATASOURCE_USERNAME=数据库用户名------XXXX
  - SPRING_DATASOURCE_PASSWORD=数据库密码------XXXX

部署命令

复制代码
cd houduan
mvn clean package -DskipTests
docker-compose up -d

七、部署检查清单

Android 端

  • build.gradle.kts 包名、签名配置完成,jks 签名文件放置正确
  • ApiRetrofit.kt 后端域名、APP_SOURCE 标识配置完成
  • AndroidManifest.xml Scheme、深链接域名替换完毕
  • SDK_Setting_*.json 全部 ID、密钥、许可证参数替换,包名与 applicationId 保持一致

后端

  • application.yml 数据库、JWT、广告 security-key 配置
  • SQL 脚本执行完成,数据表创建成功
  • 后端服务正常启动,端口监听正常

管理后台

  • request.js 线上域名、vite 代理配置正确
  • npm run build 打包成功

Nginx 与广告回调

  • 域名解析、SSL 证书、反向代理路由配置无误
  • 广告平台配置回调地址:https://你的域名/api/ad/callback

八、标准上线顺序

  1. 穿山甲、腾讯广告后台创建应用、广告位,获取全部 ID、密钥、短剧许可证
  2. MySQL 执行数据库初始化脚本
  3. SpringBoot 后端配置完成,启动服务
  4. Android 替换全部参数,生成签名 APK
  5. Vue 管理后台打包部署
  6. Nginx 重载配置,域名代理生效
  7. 广告平台配置服务端回调地址,完成整体对接

九、常见问题排错

  1. 短剧 SDK 初始化失败 :优先核对PackageName、许可证签名,包名必须和广告后台注册完全一致;
  2. 广告回调无数据:检查 Nginx 是否开放外网访问、security‑key 密钥前后端是否一致、回调地址是否填写正确;
  3. Android 全部接口请求失败:检查 BASE_URL 域名,区分 http 与 https 协议;
  4. 管理后台接口 404:核对 vite 代理、Nginx 路由转发规则。

总结

这套短剧短视频聚合广告平台同时兼容穿山甲、腾讯等多广告源,具备短剧播放、多广告形态、用户激励、邀请裂变完整业务。项目代码复杂度并不高,绝大多数问题都来自多端参数不一致、占位符没有替换干净、域名路由配置错误。严格按照本文流程逐项配置校验,就可以完成整套项目快速部署上线。

源码获取:https://pan.quark.cn/s/093158831d1b

相关推荐
William Dawson1 小时前
Spring Boot 接入华为 MRS ClickHouse(JDBC + 安全认证 + 负载均衡)实战
spring boot·redis·华为
JMchen1233 小时前
【Android 性能优化实战 60 讲】06 GPU 呈现模式与卡顿视觉验证:拆解柱状图分层,秒辨渲染慢与等待慢
android·性能优化·实战·源码分析·渲染优化·gpu呈现模式·卡顿优化
摇滚侠10 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 使用 JdbcTemplate 阅读笔记 32
spring boot·笔记·后端
91刘仁德10 小时前
MYSQL 事务原理及使用
android·mysql·adb
一笑的小酒馆12 小时前
AndroidKMP之瀑布流实现
android
RainyJiang12 小时前
AI时代下,Android的边界正在消失
android·openai·ai编程
Android-Flutter13 小时前
android 内存抖动详解
android
方白羽15 小时前
为什么 Android 非要用 Intent 传值?
android·ios·harmonyos
方白羽17 小时前
Android17 重写 MessageQueue,解决 Handler 隐性卡顿
android·app