Apps Kit SDK logoApps Kit SDK
文档 · Apps Kit SDK 管理门户

应用管理

我的应用(控制台)

“我的应用”(/ 或 /apps)是登录后的首页,也是团队管理所有应用的入口。

1782302134914-MY_APPS_DASHBOARD_IMAGE.png

应用表格。 每行显示以下信息:序号、应用图标(未上传图标时使用字母头像)及应用名称和包名/Bundle ID、所属品牌、应用商店(以 iOS/Android/Amazon 平台图标表示)、当前 SDK 版本(可排序)、默认配置状态圆点(已为应用生成默认配置时显示绿色“已添加”,否则显示灰色“未添加”)、创建日期(可排序),以及操作列。

搜索和筛选。 搜索框会在您输入时按名称或包名实时筛选。通过筛选栏,还可以将品牌、应用商店和 SDK 版本的独立下拉筛选条件与搜索组合使用。分页采用自定义页脚,显示“第 X–Y 条,共 Z 条”,并提供每页行数选择器和 ⟨ ‹ › ⟩ 导航按钮,而不是使用表格内置的分页控件。

操作菜单。 每行的三点菜单提供“编辑”“复制”和“删除”操作,具体取决于您的权限(参见下文的套餐限制和共享视图权限)。

套餐限制与锁定的应用。 订阅套餐限制了您可以拥有的应用数量(maxApps)。如果当前应用数量超出上限(例如降级套餐后),页面顶部会显示琥珀色警告横幅:“您已超出应用数量上限 — 已使用 X/Y 个应用名额”,并附带一个小型进度条和链接到订阅页面的升级套餐按钮。

1782302787888-MY_APPS_LOCKED_BANNER_IMAGE.png

超出上限时,管理门户不会随意决定锁定哪些应用,而是按创建日期保留最早创建的应用可用,数量不超过套餐上限,并锁定之后创建的所有应用。锁定应用的操作菜单会变为受限版本:点击三点按钮后,仅显示“已锁定”标题及说明“此应用超出了您的套餐上限。删除该应用以释放一个名额”;如果您有删除权限,还会显示红色的“删除应用”选项。锁定的应用行不提供“编辑”和“复制”操作;要恢复对锁定应用的访问,只能删除其他应用以释放名额,或升级套餐。

创建按钮。 只有套餐仍有剩余名额时(canCreateApp()),+ 创建应用按钮才可点击。如果已达到上限,该按钮会被一个小型用量指示器(“已使用 X/Y 个应用名额”)和指向订阅页面的“🔒 升级套餐”链接替代。

共享/协作者视图。 如果您是在切换账户或共享账户的上下文中查看此页面(参见上文的账户菜单),表格还会通过 /rights/user-permissions 获取您对该账户的具体操作权限,并据此控制每行的编辑、删除和复制操作。例如,根据资源所有者授予的权限,您可能可以查看和编辑应用,但不能删除应用。

添加新应用

点击 + 创建应用,会以居中的纵向模态框打开处于“创建”模式的应用表单。

1782302898843-CREATE_APP_MODAL_IMAGE.png

字段:

  • 图标 — 可选。顶部有一个较大的方形上传区域,选择文件前显示“上传图片”;支持 JPEG、PNG 和 GIF 格式。
  • 应用商店 — 必选单选项:Apple App Store、Google Play 或 Amazon App Store(从后端动态加载;如果请求失败,则使用这三个选项作为回退)。
  • 名称 — 必填,长度为 4–70 个字符。
  • 包名 / Bundle ID — 必填,必须以 com. 开头(使用模式 com.* 进行校验)。
  • URL — 创建时必填。选择 Google Play 作为应用商店时,会自动填入 https://play.google.com/store/apps/details?id={package};选择 Apple App Store 时,会自动填入基础地址 https://apps.apple.com/。自动填充后仍可手动编辑 URL;在选中 Google Play 的情况下更改包名,自动填充的 URL 也会同步更新。
  • 品牌 — 从下拉列表中选择已有品牌。

提交时会调用创建应用接口。新建的应用尚未配置任何广告聚合平台或广告单元,您需要随后在“应用详情”中配置。点击取消会关闭模态框,不保存任何内容。

编辑或复制应用(快捷模态框)

从某行的操作菜单中选择编辑,会以“编辑”模式打开同一个表单组件,但布局不是创建时的纵向排列,而是紧凑的单行横向排列:图标(带有用于替换图标的小型铅笔叠加按钮)、名称、只读的包名字段、只读的 URL 字段、品牌下拉列表,以及保存按钮。应用创建后,包名和 URL 将永久只读(创建后无法更改应用的包名或商店 URL,只能更改名称、图标和品牌)。此行受 canUpdate 权限检查控制;在共享/协作者上下文中,该权限取决于授予您的“应用信息”操作权限。

1782304075424-EDIT_APP_ROW_IMAGE.png

选择复制会打开另一个创建模式的表单,预填源应用的信息,并在包名末尾附加 .copy,以免与原应用冲突。随后您可以按需调整名称、图标、品牌等信息,再将其保存为全新应用。广告聚合、广告单元及其他所有“应用详情”设置均不会复制;复制得到的应用与新建应用一样,需要从头配置。

应用详情

打开应用(通过“我的应用 → 编辑”,或直接点击应用行)后,会进入“应用详情”。这是管理门户中最复杂的页面,也是配置该应用实际 SDK 行为的地方。

1782304315827-APP_DETAILS_OVERVIEW_IMAGE.png

Live 与 Dev 模式。 页面顶部的切换控件可将整个页面切换到 **Live(线上)**或 **Dev(开发)*配置。下方每个部分(广告聚合、广告单元、占位符、展示选项、MMP、功能推广、设置)在两种模式下都独立*配置,因此您可以在 Dev 中预配置和测试更改,而不影响已发布应用当前使用的线上配置。将 Live 配置应用到 Dev 和 将 Dev 配置应用到 Live 两个按钮可一键将一种模式的完整配置复制并覆盖到另一种模式(适用于将经过测试的 Dev 配置“发布”到 Live,或在测试新内容前将 Dev 重置为与 Live 一致的配置)。

1782306938946-APP_DETAILS_LIVE_DEV_TOGGLE_IMAGE.png

页面顶部还会显示应用当前的配置版本号、变更历史链接(见下文)和获取配置按钮(见下文)。部分配置界面(以及下文提到的地区组选择器)只有在应用上报的 SDK 版本达到相应要求后才会显示(管理门户为部分新功能设置了最低 SDK 版本要求,以免向使用旧版 SDK 的应用显示实际无法使用的选项)。

页面其余内容按以下顺序组织为一组可展开的部分:

应用信息

应用的基本信息:名称、包名/Bundle ID、应用商店、图标和所属品牌。基本上与创建/编辑应用表单中的字段相同,在此展示以方便操作。

1782307208052-APP_INFO_SECTION_IMAGE.png

选择广告聚合平台

选择此应用在当前模式下使用的广告聚合平台(例如采用瀑布流模式的平台,或 AppLovin MAX)。这是后续配置的前置条件:在此处选择广告聚合平台之前,下方的“广告单元”“广告占位符”和“广告占位符的广告单元”部分将保持锁定,因为这些配置需要先确定所用平台的 SDK 和广告单元格式。

1782310845399-MEDIATION_SELECTION_IMAGE.png

添加广告单元

输入广告聚合平台分配的广告单元 ID,按广告格式分为不同标签页:开屏广告、插屏广告、横幅广告、原生广告和激励广告。只有上方所选广告聚合平台实际支持的格式才会显示为标签页。

1782311592620-ADD_AD_UNITS_IMAGE.png

广告占位符

定义带名称的占位符,即应用或游戏中可展示广告的逻辑广告位(例如“关卡完成”或“主菜单横幅”)。占位符以带编号的网格展示,您可以添加或重命名。由于占位符名称通常需要与应用源代码中的常量一致,管理门户支持将整个占位符列表导入或导出为 Kotlin(.kt)枚举文件,让代码库与管理门户配置保持同步,无需手动重复输入。

1782311785860-AD_PLACEHOLDERS_IMAGE.png

广告占位符的广告单元

这是一个映射网格:一个轴为占位符,另一个轴为广告格式(插屏广告 / 横幅广告 / 原生广告 / 激励广告)。对于每种组合,您可以从上方已添加的广告单元中选择为该占位符提供广告的具体单元。

值得注意的是,交叉推广也会作为可选项出现在此网格中,与实际广告平台的广告单元并列。为某个占位符选择此选项后,该广告位将不再展示广告平台提供的付费广告,而是根据“推广活动”中的配置,展示您其他应用的交叉推广素材。这一机制将“推广活动”功能与应用内的实际广告位关联起来。

1782367790413-AD_UNITS_FOR_PLACEHOLDERS_IMAGE.png

广告展示选项

按广告格式控制加载体验:获取广告时是否显示加载对话框或微光加载动画,以及放弃等待前的超时时长。除了基本的展示时机设置,插屏广告还提供额外的触发逻辑选项:可以在点击时、经过一定时间间隔后、两者结合时,或根据应用内场景切换触发。每种触发模式都有对应的可调参数(例如时间间隔或点击次数)。

1782368043152-AD_DISPLAY_OPTIONS_IMAGE.png

应用占位符的付费墙

将某个付费墙模板(在付费墙模板功能中设计,参见本指南后面的付费墙专节)直接映射到此应用的占位符,让 SDK 在应用请求展示付费墙时知道应渲染哪一个。

1789744952981-app-details-paywalls-for-placeholders.png

顶部的启用开关用于开启或关闭此应用的整个功能。启用后,每行将一个付费墙与其应展示的应用占位符(之前在“广告占位符”中定义)配对:按名称搜索付费墙,然后使用 + 添加占位符为其关联一个或多个占位符。每个已关联的占位符都会显示为可移除的胶囊标签,并带有一个小型计数徽标。一个占位符同一时间只能映射到一个付费墙;将其分配到其他付费墙时,会自动解除与原付费墙的关联。

与“应用详情”的其他配置不同,此处的映射并不严格绑定到页面顶部当前选中的 Live/Dev 模式。实际安装的应用本身并没有“Live”或“Dev”身份,这一区分只是为了方便管理端进行预配置。因此,只要在任一模式下将付费墙映射到占位符并保存,真实设备就能解析到该映射;无需在另一种模式下重复配置同一映射,生产环境也能使用。

选择 MMP

连接移动监测合作伙伴(MMP),可选项包括 Adjust、AppsFlyer、Firebase、Cost Center 和 Solar Engine,并按广告格式分别开启或关闭广告收入上报,让广告收入事件与其他安装和互动数据一同流入您的归因与分析系统。

1782368201027-MMP_SELECTION_IMAGE.png

功能推广

配置与广告平台无关的应用内推广横幅或卡片,例如在您自己的应用界面中“发布新功能公告”或“推荐高级订阅档位”。此可编辑表格中的每个条目都包含标题、类型、键、图片,以及用户点击时触发的操作(例如深度链接或应用内跳转目标)。

1782368590227-FEATURE_PROMOTION_IMAGE.png

设置

其他未归入上述部分的应用级设置:启用用于调试的控制台日志、启用广告事件日志、设置本地通知允许的时间偏差,以及配置应用的隐私政策和服务条款 URL(部分广告平台和应用商店要求您向用户展示这些链接)。

1782368745664-SETTINGS_SECTION_IMAGE.png

获取配置

点击获取配置,会根据当前启用的模式(Live 或 Dev)生成加密配置字符串,其中包含您在上方完成的所有配置。如果在“应用详情”顶部的地区选择器中选中了地区组,生成的链接/字符串会将该组 ID 作为查询参数携带,因此运行时获取的配置可以因地区组而异。管理门户还会指导您通过 Firebase Remote Config 将该字符串发布到参数键 AKS_AND_LIVE 下。这是线上应用在运行时获取配置的实际方式,因为管理门户本身不会直接向终端用户设备推送配置。

1782370741995-GET_CONFIGURATION_IMAGE.png

变更历史

每次保存应用配置时,都会记录一个新的配置版本。“变更历史”是一个独立页面,可通过“应用详情”中的链接进入,以表格形式列出该应用的所有版本:序号、配置版本、变更说明(较长的说明在内部以竖线分隔,并按行显示;超过前 20 个字符的内容默认截断,可通过“展开 / 收起”切换)、更新日期和更新者。顶部的日期范围筛选器可将列表限定在指定时间段内。这为您提供了基本的审计记录,用于了解谁在何时更改了应用配置。

1782370885084-CHANGE_HISTORY_IMAGE.png

与我共享

如果其他团队邀请您协作管理其应用且您已接受邀请,这些共享资源会显示在与我共享(/SharedWithMe)下。此页面以表格列出您收到的邀请,与您自己团队拥有的应用分开展示。每行显示邀请者和邀请的当前状态。

1782385376888-SHARED_WITH_ME_PAGE_IMAGE.png

在这里,您可以接受或拒绝待处理的邀请。两种操作都会调用同一个邀请处理接口,并传入相应的决定。接受后,该邀请者会出现在账户切换下拉列表中(如上文所述),您便可以切换到其账户,并在其授予的权限范围内操作。

如果您通过包含 ?invitationId= 查询参数的通知链接进入此页面,页面加载时会自动打开邀请对话框,无需自行查找对应行。

邀请对话框。 此模态框顶部以胶囊标签显示邀请账户的邮箱,并根据邀请状态显示相应的标题和图标:待处理邀请显示礼物图标,已接受邀请显示对勾,已拒绝邀请显示 X,已过期邀请显示时钟。下方是可滚动的“可访问 N 项资源”列表;每行显示一个应用图标占位图、资源名称(例如“应用”“应用信息”,由底层权限键格式化而来),以及靠右排列的权限徽标,表示您将拥有的操作权限(读取 / 创建 / 更新 / 删除)。如果邀请有过期日期,还会显示一行警告信息。

1782385507708-INVITATION_DIALOG_IMAGE.png

底部按钮取决于邀请状态:待处理邀请显示**“暂不处理”和“✓ 接受邀请”;已处理或已过期的邀请仅显示“关闭”**,并附带说明文字(对于已过期邀请,例如“请联系 {邀请者邮箱} 重新发送邀请”)。