engage-sdk-integration
帮助开发者集成、调试和解决 Play Engage SDK 实现问题。当添加 Engage SDK 支持、生成发布代码、将数据类映射到实体,或修复 SDK 相关错误时使用。
Skill by Google LLC
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/iskenkenya-engage-sdk-integration
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/engage-sdk-integration
What's inside
- Skill name
engage-sdk-integration- Description
- 帮助开发者集成、调试和解决 Play Engage SDK 实现问题。当添加 Engage SDK 支持、生成发布代码、将数据类映射到实体,或修复 SDK 相关错误时使用。
- License
- GPL-3.0
- Metadata
- author: Google LLC · last-updated: 2026-09-22
- Instructions
- 112 lines in SKILL.md · view on GitHub
Files (29)
- SKILL.md
- faq.md · references/android/guide/playcore/engage/
- food.md · references/android/guide/playcore/engage/
- healthandfitness.md · references/android/guide/playcore/engage/
- listen.md · references/android/guide/playcore/engage/
- otherverticals.md · references/android/guide/playcore/engage/
- read.md · references/android/guide/playcore/engage/
- shopping.md · references/android/guide/playcore/engage/
- social.md · references/android/guide/playcore/engage/
- travel.md · references/android/guide/playcore/engage/
- index.md · references/android/guide/playcore/engage/tv/continue-watching/
- entitlements.md · references/android/guide/playcore/engage/tv/
- getting-started.md · references/android/guide/playcore/engage/tv/
- recommendations.md · references/android/guide/playcore/engage/tv/
- watch.md · references/android/guide/playcore/engage/
- clusters.md · references/
- common.md · references/
- patterns.md · references/
- requests.md · references/
- food.md · references/schemas/
- listen.md · references/schemas/
- other.md · references/schemas/
- read.md · references/schemas/
- shopping.md · references/schemas/
- social.md · references/schemas/
- travel.md · references/schemas/
- tv.md · references/schemas/
- watch.md · references/schemas/
- troubleshooting.md · references/
SKILL.md (first lines)
This skill guides you through integrating the Play Engage SDK into an Android
app. It ensures that the code follows the mandatory structure and uses the
required Engage entities for each vertical.
## Workflow
Follow these steps to assist the developer:
1. **Identify vertical and cluster:**
- Ask the developer which vertical their app belongs to based on **[references/schemas/](references/schemas)**.
- Check if the integration is for TV or mobile. If the integration is for TV, read the TV-specific sections in [patterns.md](references/patterns.md) as well.
- Use `{VERTICAL}.md` in the **[references/schemas/](references/schemas)** directory to identify the corresponding Engage entities and the `client` class name. The `client` field in the JSON provides the full class name. For example, `com.google.android.engage.food.service.AppEngageFoodClient`.
- **Note:** Initializing the client class requires a `Context` parameter. For example, `AppEngageFoodClient(context)`.
- Always refer to [common.md](references/common.md) for common entities.
- Ask which cluster type they want to publish from the supported cluster types for that vertical.
- Find the method to call from `{VERTICAL}.md` in the **[references/schemas/](references/schemas)** directory for the specified cluster. Each method will specify the request it expects.
- Get the request structure from [requests.md](references/requests.md) and clusters from [clusters.md](references/clusters.md). Then suggest and use sources to fill the fields in the request structure correctly, along with the required entities and clusters.
2. **Generate structured boilerplate code:**
- Create a new directory for all Engage-related code. Name the directory to match the naming convention of the existing codebase.
- Generate the following classes using templates in [patterns.md](references/patterns.md):
- `Constants`: holds constant values such as attempt counts and publish types.
- `ItemToEntityConverter`: converts the app's local models to Engage's Entity models.
- `ClusterRequestFactory`: constructs the publish requests.
- `EngageWorker`: handles the actual publishing and publish errors using WorkManager.
- `EngagePublisher`: orchestrates periodic and one-time jobs.
- `EngageBroadcastReceiver`: listens for AppEngageService intents and starts a one-time publish job from `EngagePublisher`. **Important** : Implement both **static registration** and **dynamic registration** patterns, including the companion object `register` method inside the `EngageBroadcastReceiver` class.
3. **Suggest entity mapping:**
- Ask the developer to provide their local model schema (for example, a data class or a JSON snippet).
- If they haven't provided one, share entities from `{VERTICAL}.md` in the **[references/schemas/](references/schemas)** directory as a guide.
- Once the local model is identified, suggest a mapping to the corresponding Engage entity.
- Generate the conversion logic using the `ItemToEntityConverter` pattern in [patterns.md](references/patterns.md) and add it to the generated `{ENGAGE_CODE_DIR}/ItemToEntityConverter`.
4. **Suggest data source:**
- Ask the developer to provide the source of actual data you'll publish.
- Once you identify the data source, use it to fetch the data in the app's local model schema.
- Use `{ENGAGE_CODE_DIR}/ItemToEntityConverter` to convert this data to an Engage entity.
- Use obtained Engage entity model data with `{ENGAGE_CODE_DIR}/
ClusterRequestFactory` to get cluster requests.
- Call corresponding cluster publishing method obtained from `{VERTICAL}.md` in the **[references/schemas/](references/schemas)** directory with the obtained request in previous step in `{ENGAGE_CODE_DIR}/EngageWorker`.
5. **Gradle and manifest updates:**
- Suggest updates to `build.gradle` and `AndroidManifest.xml`.
- For mobile apps, use [patterns.md](references/patterns.md).
- For TV apps, use the TV-specific sections in [patterns.md](references/patterns.md).
- Provide the necessary `implementation` dependencies for `build.gradle` or `build.gradle.kts` from [patterns.md](references/patterns.md).
- Provide the `<receiver>` and `<service>` declarations for `AndroidManifest.xml`.
- Note: Except for TV, there aren't any vertical-specific imports. For all other verticals, `com.google.android.engage:engage-core:1.6.0` is sufficient.
6. **Debugging and verification**:
- **Self-verification checklist** : Before considering your work complete, you must verify that you've implemented all of the following:
- \[ \] Registered `EngageBroadcastReceiver` **statically** in `AndroidManifest.xml` (inside the `<application>` tag).
- \[ \] Registered `EngageBroadcastReceiver` **dynamically** by calling `EngageBroadcastReceiver.register(context)` in the `Application` class or main `Activity` class.
- \[ \] Implemented the `register` method in `EngageBroadcastReceiver`'s `companion object` to handle dynamic registration.
- \[ \] Handled empty data lists in `EngageWorker` (for example, by deleting the cluster instead of publishing empty data).
- \[ \] Used `--no-daemon` for all Gradle compilations.
- Perform a Gradle sync.
- If errors occur (such as import failures, namespace conflicts, or compile errors), read **[references/troubleshooting.md](references/troubleshooting.md)** to resolve them.
- Execute a Gradle compilation. You must run `./gradlew compileDebugUnitTestSources --no-daemon` or `./gradlew assembleDebug --no-daemon`. See **[references/troubleshooting.md](references/troubleshooting.md)** for compile rules and warnings about fast-compilation shortcuts. Repeat this step until compilation is successful.
7. **User checklist:** At the end of code generation, notify the user to go
through this checklist to verify that the integration is complete and as
intended:
- \[ \] Verify that all the Engage-related files are created in `{ENGAGE_CODE_DIR}/`:
- `Constants`
- `ItemToEntityConverter`
- `ClusterRequestFactory`
- `EngageWorker`
- `{cluster_type}Publisher`
- `EngageBroadcastReceiver`
- \[ \] Verify that app's local model is converted to Engage entity by populating the fields correctly in the model in `{ENGAGE_CODE_DIR}/ItemToEntityConverter`.
- \[ \] Verify that all image URIs in `ItemToEntityConverter` point to images matching the strict aspect ratio requirements of the vertical (for example, 16:9, 1:1, 2:3).
- \[ \] Verify that `{ENGAGE_CODE_DIR}/EngageWorker` uses the data source identified in Step 4.
- \[ \] Verify that `EngageBroadcastReceiver.register(context)` is called within the `Application` class or `MainActivity` to register the receiver dynamically.
- \[ \] Verify that `AndroidManifest.xml` contains the static `<receiver>` declaration for `EngageBroadcastReceiver` with the necessary intent actions.
- **Important** : Explicitly instruct the developer to call `EngageBroadcastReceiver.register(context)` inside their custom `Application` class `onCreate()` (or their main activity `onCreate()`) to dynamically register the receiver. Stress that **both** static and dynamic registrations are required for the integration to function.
## Reference materials
- **FAQ:** [Engage FAQ](references/android/guide/playcore/engage/faq.md) - Refer to this document for answers to frequently
asked questions from developers.
- **Vertical-specific guides:**
- [Food Vertical](references/android/guide/playcore/engage/food.md)
- [Watch Vertical](references/android/guide/playcore/engage/watch.md)
- [Listen Vertical](references/android/guide/playcore/engage/listen.md)
- [Read Vertical](references/android/guide/playcore/engage/read.md)
- [Shopping Vertical](references/android/guide/playcore/engage/shopping.md)
- [Social Vertical](references/android/guide/playcore/engage/social.md)
- [Travel Vertical](references/android/guide/playcore/engage/travel.md)
- [Health and Fitness Vertical](references/android/guide/playcore/engage/healthandfitness.md)
- [Other Verticals](references/android/guide/playcore/engage/otherverticals.md)
- [TV Getting Started](references/android/guide/playcore/engage/tv/getting-started.md)
- [TV Recommendations](references/android/guide/playcore/engage/tv/recommendations.md)
- [TV Continue Watching](references/android/guide/playcore/engage/tv/continue-watching/index.md)
- [TV Entitlements](references/android/guide/playcore/engage/tv/entitlements.md)
- **Vertical-specific schemas:**
- [Food Schema](references/schemas/food.md)
- [Watch Schema](references/schemas/watch.md)
- [Listen Schema](references/schemas/listen.md)
- [Read Schema](references/schemas/read.md)
- [Shopping Schema](references/schemas/shopping.md)
- [Social Schema](references/schemas/social.md)
- [Travel Schema](references/schemas/travel.md)
- [TV Schema](references/schemas/tv.md)
- [Other Schema](references/schemas/other.md)From IsKenKenYa/skills, GPL-3.0.
More from IsKenKenYa/skills
- 0.599score
media3-cast-integration
Google LLC
使用 Jetpack Media3 在 Android 应用中实现 Google Cast 支持。处理添加构建依赖、更新 manifest、配置 OptionsProvider,以及在 Compose 和 View 两种 UI 中管理 CastPlayer 或 RemoteCastPlayer 播放。当添加…
SkillAFreshness: A★ 3Claude Code +9 - 0.599score
verified-email
Google LLC
提供基于 Android Credential Manager API 实现已验证邮箱获取的完整工作流。使用此 skill 向 Android 应用集成安全、免 OTP 的邮箱验证流程。该 skill 利用来自 Google 等可信提供商的加密验证凭证,解决注册流程摩擦过大的问题。
SkillAFreshness: A★ 3Claude Code +9 - 0.599score
migrate-xml-views-to-jetpack-compose
Google LLC
提供将 Android XML View 迁移到 Jetpack Compose 的结构化工作流。该 skill 详述从规划和依赖设置,到主题和布局迁移、验证及 XML 清理的分步流程。当需要在 Android 项目中把 XML View 迁移到 Jetpack Compose 时使用。它解决将旧版 XML…
SkillAFreshness: A★ 3Claude Code +9 - 0.599score
adaptive
Google LLC
提供让应用 UI 适配不同 Android 设备(手机、平板、折叠屏、笔记本、桌面、TV、Auto 和 XR)的说明。涵盖使用 Compose MediaQuery API 处理不同窗口尺寸、指针设备(如鼠标)和文本输入设备(如键盘);使用 Navigation3 Scenes 实现多窗格布局;使用 Compose…
SkillAFreshness: A★ 3Claude Code +9 - 0.597score
r8-analyzer
Google LLC
分析 Android 构建文件和 R8 keep 规则,识别冗余、过宽的包级规则,以及吞没了库消费者 keep 规则的规则。当开发者想优化应用体积、移除冗余或过宽的 keep 规则,或排查 Proguard 配置时使用。
SkillAFreshness: A★ 3Claude Code +9 - 0.597score
camerax
Google LLC
提供 Android CameraX 相机开发的技术指导。当实现相机功能、处理异步录制生命周期、使用 CameraX 对接底层硬件互操作(hardware interop),或集成 ML Kit 或 Media3 特效时使用。
SkillAFreshness: A★ 3Claude Code +9 - 0.597score
agp-9-upgrade
Google LLC
升级或迁移 Android 项目以使用 Android Gradle Plugin (AGP) 版本 9。不要用此 skill 迁移 Kotlin Multiplatform (KMP) 项目。
SkillAFreshness: A★ 3Claude Code +9 - 0.596score
navigation-3
Google LLC
学习如何安装并迁移到 Jetpack Navigation 3,以及如何实现 deep links、多个 backstack、scenes(对话框、底部表、list-detail、two-pane、supporting pane)、条件导航(如已登录导航与匿名导航的区别)、从流程返回结果、与…
SkillAFreshness: A★ 3Claude Code +9 - 0.586score
android-intent-security
Google LLC
Android Intent 安全最佳实践。当审计 AndroidManifest.xml 中的组件配置(activities、services、receivers)或处理传入 Intent 的源码(getIntent、getParcelableExtra)以防止 Intent 重定向(Intent…
SkillAFreshness: A★ 3Claude Code +9 - 0.579score
android-permissions-security
Google LLC
审计、发现缺口并修复 Android 权限与 IPC 组件安全漏洞。当审查 AndroidManifest.xml、定义权限、暴露组件(activity/service/receiver/provider)或加固 IPC 攻击面时使用。
SkillAFreshness: A★ 3Claude Code +9 - 0.560score
play-policy-insights
Google LLC
自动化审计器,用于对照 Google Play 政策域验证 Android 应用。它将静态代码分析与 Play Store 声明交叉核对,生成确定性的合规报告,在权限与 API 卫生(Permissions and APIs Hygiene)、用户账号与身份(User Account and…
SkillBFreshness: B★ 3Claude Code +9 - 0.560score
appfunctions
Google LLC
分析 Android 应用,识别可用于 AppFunctions 的关键用户工作流(如创建笔记、播放媒体,或发送由自动化或 AI agent 触发的消息、语音命令、系统快捷方式,而无需打开应用 UI)。生成 Kotlin 代码将这些工作流暴露给 Android 系统,使 agent…
SkillBFreshness: B★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 7, 2026 (21 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- GPL-3.0
- Repository
- github.com/IsKenKenYa/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Google LLC
- 0.861score
secops-cases
Google LLCOfficial
Manage Google Security Operations (SecOps) SOAR cases throughout their lifecycle.
SkillAFreshness: A★ 21.5KClaude Code +9 - 0.861score
secops-triage
Google LLCOfficial
Expert guidance for security alert triage in Google SecOps.
SkillAFreshness: A★ 21.5KClaude Code +9 - 0.861score
secops-investigate
Google LLCOfficial
Expert guidance for deep security incident and entity investigations in Google SecOps.
SkillAFreshness: A★ 21.5KClaude Code +9 - 0.861score
secops-hunt
Google LLCOfficial
Expert guidance for proactive threat hunting in Google SecOps.
SkillAFreshness: A★ 21.5KClaude Code +9 - 0.861score
secops-detection-engineering
Google LLCOfficial
Author, validate, test, and deploy YARA-L 2.0 detection rules and evaluate end-to-end detection coverage gaps in Google SecOps.
SkillAFreshness: A★ 21.5KClaude Code +9 - 0.815score
ima-sdk-client-side
Google LLCOfficial
Supports Interactive Media Ads (IMA) SDK.
SkillBFreshness: B★ 21.5KClaude Code +9
Cite this page
engage-sdk-integration skill. Agent Mart. https://agentmart.dev/skills/iskenkenya-engage-sdk-integration (last updated 2026-10-24)