# engage-sdk-integration

Ведёт интеграцию Play Engage SDK в Android-приложение: находит вертикаль, собирает классы публикации, правит Gradle и проверяет сборку.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1500 установок · ★ 9764
- Автор: Google LLC
- Лицензия: Apache-2.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/android/skills/tree/HEAD/play/engage-sdk-integration/SKILL.md
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/skills/engage-sdk-integration

## Что делает

Скилл разбирает интеграцию по шагам. Сначала спрашивает вертикаль приложения и сверяется с файлом `{VERTICAL}.md` в `references/schemas/`, чтобы взять нужные сущности и имя клиентского класса. Для TV отдельно читает TV-разделы `patterns.md`. Дальше уточняет тип кластера и собирает структуру запроса по `requests.md` и `clusters.md`.

На выходе — набор классов в новой папке: `Constants`, `ItemToEntityConverter`, `ClusterRequestFactory`, `EngageWorker`, `EngagePublisher`, `EngageBroadcastReceiver`. Конвертер переводит локальные модели приложения в сущности Engage, воркер публикует данные через WorkManager и обрабатывает ошибки публикации. Потом правки `build.gradle` и `AndroidManifest.xml`, включая объявления `<receiver>` и `<service>`; все вертикали, кроме TV, закрывает зависимость `com.google.android.engage:engage-core:1.6.0` — у TV свои разделы шаблонов.

Сборку скилл проверяет компиляцией `./gradlew assembleDebug --no-daemon`, без быстрых сокращений. Инициализация клиента требует `Context`, поэтому `AppEngageFoodClient(context)` без аргумента не соберётся. Пустой список данных тоже повод посмотреть на `EngageWorker`: кластер в этом случае удаляют, а не публикуют пустоту.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill engage-sdk-integration -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/engage-sdk-integration/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/engage-sdk-integration/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill engage-sdk-integration -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/engage-sdk-integration/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill engage-sdk-integration -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/engage-sdk-integration/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install android/skills engage-sdk-integration
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/engage-sdk-integration/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill engage-sdk-integration -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/android/skills --path play/engage-sdk-integration
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/engage-sdk-integration/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add android/skills --skill engage-sdk-integration -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/android/skills/tree/HEAD/play/engage-sdk-integration/SKILL.md

## Когда брать
- свести локальные data-классы к сущностям Engage для своей вертикали
- собрать шесть классов публикации в отдельной папке проекта
- зарегистрировать `EngageBroadcastReceiver` статически в манифесте и динамически в коде
- починить импорты и конфликт namespace после Gradle sync
- удалить кластер, когда список данных оказался пустым

## Примеры запросов агенту
- Добавь в приложение поддержку Play Engage SDK и покажи, какие сущности нужны для моей вертикали.
- Вот моя локальная модель `Movie` — сделай `ItemToEntityConverter` и собери `ClusterRequestFactory` для кластера рекомендаций.
- После gradle sync падают импорты. Загляни в `references/troubleshooting.md` и поправь код.

## Похожие
- [rc-configuring-the-sdk](https://affpapa.org/nevibecode/skills/rc-configuring-the-sdk.md) — скилл · 636 установок
- [sentry-android-sdk](https://affpapa.org/nevibecode/skills/sentry-android-sdk.md) — скилл · 2300 установок
- [app-store-screenshots](https://affpapa.org/nevibecode/skills/app-store-screenshots.md) — скилл · 55600 установок
- [kotlin-tooling-agp9-migration](https://affpapa.org/nevibecode/skills/kotlin-tooling-agp9-migration.md) — скилл · 2200 установок
- [android-aso](https://affpapa.org/nevibecode/skills/android-aso.md) — скилл · 2700 установок
- [capacitor-plugin-upgrades](https://affpapa.org/nevibecode/skills/capacitor-plugin-upgrades.md) — скилл · 811 установок

Из того же набора: [android/skills](https://affpapa.org/nevibecode/by/android/skills.md) — 24 карточки

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
