Next.js 落地页套件:区块页面、线索表单、Cookie 横幅和需同意的转化像素
安装
genpm add @core/kit-landing你将获得
- 源代码位于 src/app/(landing)/,共 14 个文件。 (21.1 kB)
- AI 规则位于 src/app/(landing)/AGENTS.md,另附 IDE 规则文件。
- 添加到 .env.example 的环境变量:GA4_MEASUREMENT_ID, META_PIXEL_ID, TIKTOK_PIXEL_ID, CONSENT_POLICY_VERSION, EXPERIMENTS_SECRET。
- 自动为你解析 @core/consent, @core/experiments, @core/kit-cms, @core/pixels。
README
此包没有 README。
这正是你的 AI 在 src/app/(landing) 中工作时读取的内容。不会向其上下文添加其他任何内容。
@core/kit-landing — rules for AI agents
Purpose
Conversion landing pages on top of @core/kit-cms: the landings collection (blocks, SEO, minimal layout without
site navigation, conversion goal, thank-you page) served at /lp/<slug>, lead forms that store the submission with
its UTM parameters and fire one deduplicated lead event (server + browser with the same eventId, only with
consent), a cookie banner, consent-gated GA4/Meta/TikTok pixels and a real-deadline countdown block.
A/B tests with @core/experiments: a landing can name an experiment and show blocksB to variant b.
Map
_templates/genpm.md— the exact lines this kit adds to the project'ssrc/genpm/*.ts(generated, always current).lp/[slug]/page.tsx— landing.lp/[slug]/lead/[formKey]/route.ts— form posts.lp/[slug]/thanks/page.tsx— thank-you + browser event.api/consent/route.ts— saves the banner choice and deletes cookies of rejected categories._lib/landings.ts— collection andlandingPath._lib/conversion.ts— lead handling and thelanding.lead-eventjob._components/site-tracking.tsx—<SiteTracking />(banner + pixels) for the root layout._blocks/countdown.tsx._lib/widgets.ts— "Leads by landing (7 days)" dashboard widget.
Integration
- @core/kit-cms must be integrated first.
- Add the lines of
_templates/genpm.mdto the project'ssrc/genpm/*.ts(it says which file and where): the landings collection and lead event, thecountdownblock, the sitemap source and the admin resource and widget. Lines marked "A/B tests (optional)" are only needed for step 5. - Root layout: render
<SiteTracking policyHref="/cookies" />at the end of<body>, and addclassName="site-chrome"to the site header and footer so minimal landings can hide them. Add<CookieSettingsButton />(@core/consent/react, a client component that callsopenConsentPreferences()) in the footer. - Env (all optional; a platform is active only when configured): public ids
GA4_MEASUREMENT_ID,META_PIXEL_ID,TIKTOK_PIXEL_IDand the server tokens described in src/lib/pixels/AGENTS.md. BumpCONSENT_POLICY_VERSIONwhen the cookie policy changes (everyone is asked again). - A/B tests (optional): set
EXPERIMENTS_SECRET, add the "A/B tests (optional)" lines of_templates/genpm.md, run the kit-cmssetup-schedules.tsagain (schedulesexperiments.prune), create an experiment with variantsa(control) andband goallead, then set its key and the "variant B" sections on the landing. - Give editors the
landings:*permission if they should manage landings (defineRole, @core/rbac). - Verify: create a landing with a hero and a form block, submit it with UTM parameters, see the submission with
its UTM in Admin → Submissions, and the
Leadevent in each platform's test tool after accepting cookies.
Conventions
- One conversion goal per landing; the form block's form decides what is collected.
- Hero images: the first block gets
fetchPriority="high"; keep LCP under 2.5 s on mobile. - Lead events carry no personal data in the browser; the server event sends only hashed identifiers (@core/pixels).
Don't
- No fake urgency: countdowns only with the real end date of a real offer (they disappear afterwards and never reset); "only X left" only with real stock (EU Directive 2005/29/EC, DSA).
- Testimonials, ratings and numbers only from real data the person provides; if missing, leave the block out and say so.
- Never load a pixel outside
ConsentGate, never pre-tick consent boxes, never fireleadwithout a stored submission.
# @core/kit-landing — rules for AI agents
## Purpose
Conversion landing pages on top of @core/kit-cms: the `landings` collection (blocks, SEO, minimal layout without
site navigation, conversion goal, thank-you page) served at `/lp/<slug>`, lead forms that store the submission with
its UTM parameters and fire one deduplicated `lead` event (server + browser with the same `eventId`, only with
consent), a cookie banner, consent-gated GA4/Meta/TikTok pixels and a real-deadline countdown block.
A/B tests with @core/experiments: a landing can name an experiment and show `blocksB` to variant `b`.
## Map
- `_templates/genpm.md` — the exact lines this kit adds to the project's `src/genpm/*.ts` (generated, always current).
- `lp/[slug]/page.tsx` — landing. `lp/[slug]/lead/[formKey]/route.ts` — form posts. `lp/[slug]/thanks/page.tsx` — thank-you + browser event.
- `api/consent/route.ts` — saves the banner choice and deletes cookies of rejected categories.
- `_lib/landings.ts` — collection and `landingPath`. `_lib/conversion.ts` — lead handling and the `landing.lead-event` job.
- `_components/site-tracking.tsx` — `<SiteTracking />` (banner + pixels) for the root layout. `_blocks/countdown.tsx`.
- `_lib/widgets.ts` — "Leads by landing (7 days)" dashboard widget.
## Integration
1. @core/kit-cms must be integrated first.
2. Add the lines of `_templates/genpm.md` to the project's `src/genpm/*.ts` (it says which file and where): the
landings collection and lead event, the `countdown` block, the sitemap source and the admin resource and widget.
Lines marked "A/B tests (optional)" are only needed for step 5.
3. Root layout: render `<SiteTracking policyHref="/cookies" />` at the end of `<body>`, and add `className="site-chrome"`
to the site header and footer so minimal landings can hide them. Add `<CookieSettingsButton />` (@core/consent/react, a client
component that calls `openConsentPreferences()`) in the footer.
4. Env (all optional; a platform is active only when configured): public ids `GA4_MEASUREMENT_ID`, `META_PIXEL_ID`,
`TIKTOK_PIXEL_ID` and the server tokens described in src/lib/pixels/AGENTS.md. Bump `CONSENT_POLICY_VERSION`
when the cookie policy changes (everyone is asked again).
5. A/B tests (optional): set `EXPERIMENTS_SECRET`, add the "A/B tests (optional)" lines of `_templates/genpm.md`, run the
kit-cms `setup-schedules.ts` again (schedules `experiments.prune`), create an experiment
with variants `a` (control) and `b` and goal `lead`, then set its key and the "variant B" sections on the landing.
6. Give editors the `landings:*` permission if they should manage landings (`defineRole`, @core/rbac).
7. Verify: create a landing with a hero and a form block, submit it with UTM parameters, see the submission with
its UTM in Admin → Submissions, and the `Lead` event in each platform's test tool after accepting cookies.
## Conventions
- One conversion goal per landing; the form block's form decides what is collected.
- Hero images: the first block gets `fetchPriority="high"`; keep LCP under 2.5 s on mobile.
- Lead events carry no personal data in the browser; the server event sends only hashed identifiers (@core/pixels).
## Don't
- No fake urgency: countdowns only with the real end date of a real offer (they disappear afterwards and never reset);
"only X left" only with real stock (EU Directive 2005/29/EC, DSA).
- Testimonials, ratings and numbers only from real data the person provides; if missing, leave the block out and say so.
- Never load a pixel outside `ConsentGate`, never pre-tick consent boxes, never fire `lead` without a stored submission.
应用 .genpmignore 后将被注入的确切目录树。固定于
'use client';
// Evento `lead` en el navegador (una vez), con el mismo eventId que el del servidor. Va dentro de <ConsentGate>.
import { useEffect } from 'react';
import { track } from '@/lib/pixels/client';
export function TrackLead({ eventId, formKey }: { eventId: string; formKey?: string }) {
useEffect(() => {
const key = `tracked:${eventId}`;
try {
if (sessionStorage.getItem(key)) return;
sessionStorage.setItem(key, '1');
} catch {}
track({ type: 'lead', eventId, ...(formKey && { formKey }) });
}, [eventId, formKey]);
return null;
}
此包未声明 MCP 服务器。
| 版本 | 提交 | 发布时间 | 扫描 |
|---|---|---|---|
| 1.0.1 | f730e59 | 4小时前 | 扫描通过 |
- 建议
- GenPM 会给出 npm 命令建议,只有你同意时才会运行。
- 被以下包使用(1)
- @core/kit-dropshipping ^1.0.0
- 扫描
- 扫描通过 · 0 个问题
- 提交
- v1.0.1 → f730e5984cd035cc0e8a4f1e503380f56c10e410 · 获取后已校验
- 脚本
- 无。GenPM 从不运行包中的代码。
- 许可证
- MIT
- 质量
- 100/100
- 可识别的许可证已满足
- AGENTS.md 说明了用途已满足
- AGENTS.md 包含集成步骤已满足
- AGENTS.md 列出约定或禁止事项已满足
- 包含测试已满足
- 通过安全扫描已满足
- 最近 6 个月内发布已满足
- 已验证的发布者已满足
- 摘要和关键词已满足
- 举报
- 发现问题了吗?