iframe.app 内测中

使用文档

把游戏、工具和 AI 工具放进你的网页,需要知道的都在这一页。

三步上手

  1. 用邀请码加入(没有邀请码可以在同一页申请),马上拿到授权密钥和公开 ID,填上你要嵌入的域名。
  2. 在目录里挑一个条目,点进去先试玩。
  3. 把代码贴进你的网页。每个条目页、控制台的「取代码」都能复制到带你公开 ID 的代码:
<script src="https://useiframe.com/f.js"
        data-account="YOUR_PUBLIC_ID" async></script>
<div data-iframe="geo-sleuth" data-ratio="4:3"></div>

打开页面,条目就会加载,这个位置会出现在控制台的「嵌入位」里。

代码怎么写

一个页面只需要放一次 <script>,每个要显示条目的位置放一个 <div data-iframe>:

<script src="https://useiframe.com/f.js" data-account="YOUR_PUBLIC_ID" async></script>

<div data-iframe="geo-sleuth" data-slot="main"></div>
<div data-iframe="rarest" data-slot="sidebar" data-launch="click" data-ratio="4:5">
  <button type="button">▶ 开始玩 Rarest</button>
</div>
属性作用
data-account你的公开 ID(pk_ 开头)。不是秘密,可以放心写在网页里。写在 <script> 上。
data-iframe要显示什么:条目的 slug(条目页地址里的那一段,比如 geo-sleuth)。
data-slot可选,给这个位置起个固定的名字,比如 main、sidebar。不写时按「条目 + 第几个」自动命名;写了以后就算你在网页里换了条目,数据和切换记录也会跟着这个位置走。
data-launchauto(默认,马上加载)或 click:先显示 div 里你放的内容(图片、按钮),访客点了才加载。一个页面放好几个条目时用它,页面更快。也可以用 window.iframeApp.start(el) 自己触发。
data-ratio框的宽:高,比如 16:9(默认)、4:3、9:16;auto 表示由条目自己决定高度。条目页上写着每个条目推荐的比例。

加载脚本很小(压缩后不到 3 KB),异步加载,不会拖慢你的页面;它出错也不会影响你页面上的其他代码。条目运行在独立的内容域名上,碰不到你页面的 cookie 和脚本。

放到你的网站上

原则只有一条:代码要直接放在你自己的页面里。<script> 每页一次(放了多次也只运行一次),<div> 放在要显示的位置。

纯 HTML / 静态网站
<script> 放在 <head> 里或 </body> 前面都行(它是异步加载的),<div> 放在要显示的位置。
WordPress(自己安装的)
在文章或页面里加一个「自定义 HTML」区块,把整段代码贴进去。只有管理员和编辑能保存带 <script> 的内容(多站点网络里只有超级管理员),其他角色保存时 script 会被去掉:这时请管理员把 script 放进主题页脚,或用代码片段插件全站加一次,文章里只放 div。
WordPress.com
只有支持插件的套餐会保留 <script>,其他套餐会把它去掉,代码就不会生效。
Blogger
编辑文章时切换到「HTML 视图」再贴代码;也可以在「布局」里加一个「HTML/JavaScript」小工具,把 script 全站放一次,文章里只放 div。
React、Next.js、Vue 等单页应用
script 在根布局(或 index.html)里放一次,div 直接写在组件里。脚本会留意页面上新出现的 div,切换路由后新页面里的条目也会加载;没写 data-slot 的位置,回到同一页时还是原来的名字。Next.js 这样写:
// app/layout.jsx: once
import Script from 'next/script';
<Script
  src="https://useiframe.com/f.js"
  data-account="YOUR_PUBLIC_ID"
  strategy="afterInteractive"
/>

// any page or component
<div data-iframe="geo-sleuth" data-slot="main" data-ratio="4:3" />
  • 用默认的 afterInteractive,不要用 beforeInteractive,免得框架接管页面时发现 div 已经被改过。
  • div 里面不要放由框架渲染的内容:点击启动时这些内容会被换成框,框架之后再去更新它们可能出错。想用自己的「开始」按钮,就在按钮的点击事件里调用 window.iframeApp.start(el)。
  • 如果应用写了 <link rel="canonical">,要让它跟着路由更新,因为页面地址按 canonical 认。

拖拽式建站工具:有些工具的「嵌入 HTML」组件会把你的代码放进它自己的框(iframe)里运行。那样我们看到的是那个框的地址,不是你的页面,允许域名的检查过不了,条目不会加载。请改用工具里「在所有页面头部 / 底部加代码」之类的设置放 script,div 放在能直接写 HTML 的地方;工具不支持的话暂时就用不了。

网站设置了内容安全策略(CSP):要放行内容域名,比如:

script-src 'self' https://useiframe.com;
frame-src https://useiframe.com;
img-src 'self' https://useiframe.com;

条目没有出现?

按顺序检查:

  1. 框里写着「这个嵌入还没有对 … 开放」:把那个域名加进控制台「概览」的允许域名(在自己电脑上测试要加 localhost)。
  2. 框里写着「缺少账户」或「账户目前不可用」:从控制台的「取代码」重新复制,确认 data-account 是你的公开 ID;授权到期了请联系我们续期。
  3. 连框都没有:看页面源代码里 script 还在不在(有的编辑器会删掉它,见上一节);代码是不是被建站工具放进了它自己的框里;网站的 CSP 有没有放行内容域名;浏览器开发者工具的「控制台」里有没有报错。
  4. 框出来了,条目一直没加载完:有些条目比较大,多等一会,或者换个浏览器、网络试试;也可以在控制台把这个位置换成别的条目。
  5. 控制台里没有这个位置:页面被打开一次(点击启动的位置被看到一次)之后才会出现,刷新一下控制台;还没有的话,多半是上面几种情况。

活码:不改网页就能换条目

每个位置第一次被打开时,我们会给它登记一个嵌入位(按「页面地址 + 位置名」区分)。之后在控制台的「嵌入位」里:

  • 勾选几个位置,换成别的条目;
  • 把某个条目在你所有页面上一次换掉(比如一个游戏下架了,换成同类的另一个);
  • 恢复成网页里写的条目;
  • 每次改动都记在「变更记录」里,可以一键撤销。

改动在下一次加载时生效,网页本身一个字都不用动。条目暂时下架时,设了替补条目的会自动显示替补;你也可以随时把它换成别的。

页面地址的认法:如果页面有同域名的 <link rel="canonical"> 就用它,否则用当前地址;会去掉 # 后面的部分和 utm_*、gclid、fbclid、ref 这类追踪参数,所以同一个页面不会因为带不同参数被算成好几个。

允许的域名

你的代码只在你账户里填写的域名上生效,别人复制了你的代码放到他们的网站也用不了。规则:

  • 填 example.com 就包含了 www.example.com、blog.example.com 等所有子域名;
  • 想在自己电脑上测试,加上 localhost;
  • 在控制台的「概览」里随时修改,最多 20 个。

数据

控制台按位置统计每天的加载次数(条目真正被打开一次算一次)。用 data-launch="click" 的位置还会统计展示次数(访客看到了这个位置但还没点)。概览页有 7 天和 30 天的总数、加载最多的条目和页面;「嵌入位」里每个位置都有 7 天加载数和最后出现的日期。连续 30 天没出现的位置会标成「闲置」,不会被删除。

用 earnsite 引擎

earnsite 是配套的建站引擎。把你的授权密钥填进它的 LICENSE_KEY 设置,引擎就会通过你的账户挑游戏、生成页面;页面上的条目从你自己网站的 play. 子域名加载,访客看到的都是你的域名。这些页面会和其他页面一样出现在控制台的「嵌入位」里,同样可以一键换条目。一个授权默认可以给 3 套引擎使用。

给开发者:API

想用程序批量挑条目或管理嵌入位,可以直接调 API。返回都是 JSON,出错时是 {"error":{"code","message"}}。

接口说明
GET /api/v1/catalog公开目录,不用登录:每个条目的名称、分类、标签、比例、简介、封面和嵌入代码。
GET /api/v1/account你的公开 ID 和允许的域名;PUT 同一地址传 {"allowed_domains":[…]} 修改。
GET /api/v1/embeds你的嵌入位列表,可按 host、item、status 筛选,分页用 cursor。
POST /api/v1/embeds/retarget换条目:{"filter":{…},"to":{"kind":"item","value":"slug"}},加 "dry_run":true 先看会影响哪些。
POST /api/v1/embeds/unpin恢复为网页里写的条目。
POST /api/v1/embeds/rollback按 batch_id 撤销一次改动。
GET /api/v1/embeds/stats加载统计,按嵌入位、条目、页面或网站分组。

除了公开目录,其他接口要带两个请求头:Authorization: Bearer 你的授权密钥,和 X-Install-Id: inst_ 加 24 位字母数字(每台服务器或每个应用固定用一个,会计入引擎安装数)。密钥只放在服务器上,不要写进网页。

让你的 AI 来操作(MCP)

如果你用 Claude 等支持 MCP 的 AI 工具,可以把你的账户接给它:它能帮你挑条目、生成代码、查看和切换嵌入位、看数据、提需求。

  • 地址:https://www.iframe.app/mcp/site
  • 请求头:Authorization: Bearer 你的授权密钥
{
  "mcpServers": {
    "iframe-app": {
      "type": "http",
      "url": "https://www.iframe.app/mcp/site",
      "headers": { "Authorization": "Bearer gh_live_…" }
    }
  }
}

工具:catalog_search、item_get、embed_code、account_get、domains_set、embeds_list、embeds_switch(先 dry_run)、embeds_unpin、embeds_undo、changes_list、stats、request_item、suggest_game、my_submissions。只能操作你自己的账户。密钥只放在你自己的设备上。

内测期的限制

  • 内测免费,需要邀请码;
  • 每个账户最多 3 套引擎安装(30 天内用过的算);
  • 每个账户每小时最多新登记 2000 个嵌入位(正常使用碰不到);
  • API 每个账户每分钟 600 次。

需要更多?在控制台或通过你拿到邀请码的渠道告诉我们。

常见问题

会拖慢我的网页吗?
不会。脚本异步加载、体积很小;条目在框里独立运行。一个页面放多个条目时,用 data-launch="click" 更快。
条目里有广告吗?
iframe.app 原创的条目没有广告。标着「含发行方广告」的条目来自游戏发行方,里面会播放发行方自己的广告(通常开始前有一段),收入归发行方。不想要的话,在目录里勾选「无广告」。
手机上能用吗?
目录里标了「手机可玩」的条目都在手机上测过。比例选竖屏(比如 9:16)的条目在手机上效果最好。
某个条目坏了怎么办?
我们每天自动检查所有条目,坏了会下架;设了替补的会自动显示替补。你也可以在控制台把它一键换成别的。
我能改条目的内容或去掉标识吗?
不行。条目要原样显示,详见使用约定。
密钥丢了或泄露了?
泄露了:在控制台「概览」里换一个新密钥(要再输入一次当前密钥)。丢了:联系我们,我们帮你重发。
你们会收集我访客的信息吗?
不会收集访客的个人信息,只记页面地址、位置和加载次数。详见隐私说明。