import { ComponentType } from 'react' import { StandardProps, CommonEventFunction } from './common' interface AdProps extends StandardProps { /** 广告单元id,可在[小程序管理后台](https://mp.weixin.qq.com/)的流量主模块新建 * @supported weapp, tt, qq */ unitId: string /** 广告自动刷新的间隔时间,单位为秒,参数值必须大于等于30(该参数不传入时 Banner 广告不会自动刷新) * @supported weapp, tt */ adIntervals?: number /** 广告类型,默认为展示`banner`,可通过设置该属性为`video`展示视频广告, `grid`为格子广告 * @supported weapp */ adType?: 'banner' | 'video' | 'grid' /** 广告主题样式设置 * @supported weapp */ adTheme?: 'white' | 'black' /** 小程序应用 ID * @supported swan */ appid?: string /** 小程序广告位 ID * @supported swan */ apid?: string /** 广告类型:banner、feed ,需和百青藤平台上的代码位类型相匹配 * @supported swan, tt, qq * @default feed * @swan 支持 banner、feed * @qq 支持 banner、card、feeds、block */ type?: string /** 更改该属性,可以触发广告刷新 * @supported swan */ updatetime?: string /** 广告是否在屏幕中固定展示 * @supported tt */ fixed?: string /** 广告的缩放比例,100 为标准尺寸 * @supported tt * @default 100 */ scale?: string /** type 为 feeds 时广告左边距(px),必须大于 0 * @supported qq */ adLeft?: string /** type 为 feeds 时广告上边距(px),必须大于 0 * @supported qq */ adTop?: string /** type 为 feeds 时广告宽度(px),默认 100%,最大值为屏幕宽度,最小值为 265 * @supported qq */ adWidth?: string /** type 为 feeds 时广告高度(px),最小 85,最大 160 * @supported qq */ adHeight?: string /** type 为 block 时请求积木广告数量(展示以实际拉取广告数量为准) * @supported qq * @default 1 */ blockSize?: string /** type 为 block 时请求积木广告排列方向 * @supported qq * @default landscape */ blockOrientation?: 'vertical' | 'landscape' /** 开发者工具下,type 为 banner 时,指定 banner 广告展示三图文还是单图 * @supported qq * @default three */ testBannerType?: 'one' | 'three' /** 广告加载成功的回调 * @supported weapp, swan, tt, qq */ onLoad?: CommonEventFunction /** 当广告发生错误时,触发的事件,可以通过该事件获取错误码及原因,事件对象 event.detail = {errCode: 1002} * @supported weapp, swan, tt, qq */ onError?: CommonEventFunction /** 广告关闭的回调 * @supported weapp, swan, tt */ onClose?: CommonEventFunction /** 贴片类型广告播放期间触发 * @supported swan */ onStatus?: CommonEventFunction /** type 为 feeds 时广告实际宽高回调 * @supported qq */ onSize?: CommonEventFunction } declare namespace AdProps { interface onErrorEventDetail { errCode: keyof AdErrCode } /** * 广告错误码 * * 错误码是通过onError获取到的错误信息。调试期间,可以通过异常返回来捕获信息。 * 在小程序发布上线之后,如果遇到异常问题,可以在[“运维中心“](https://mp.weixin.qq.com/)里面搜寻错误日志,还可以针对异常返回加上适当的监控信息。 */ interface AdErrCode { /** * @illustrate 后端错误调用失败 * @reason 该项错误不是开发者的异常情况 * @solution 一般情况下忽略一段时间即可恢复。 */ 1000 /** * @illustrate 参数错误 * @reason 使用方法错误 * @solution 可以前往 developers.weixin.qq.com 确认具体教程(小程序和小游戏分别有各自的教程,可以在顶部选项中,“设计”一栏的右侧进行切换。 */ 1001 /** * @illustrate 广告单元无效 * @reason 可能是拼写错误、或者误用了其他APP的广告ID * @solution 请重新前往 mp.weixin.qq.com 确认广告位ID。 */ 1002 /** * @illustrate 内部错误 * @reason 该项错误不是开发者的异常情况 * @solution 一般情况下忽略一段时间即可恢复。 */ 1003 /** * @illustrate 无合适的广告 * @reason 广告不是每一次都会出现,这次没有出现可能是由于该用户不适合浏览广告 * @solution 属于正常情况,且开发者需要针对这种情况做形态上的兼容。 */ 1004 /** * @illustrate 广告组件审核中 * @reason 你的广告正在被审核,无法展现广告 * @solution 请前往 mp.weixin.qq.com 确认审核状态,且开发者需要针对这种情况做形态上的兼容。 */ 1005 /** * @illustrate 广告组件被驳回 * @reason 你的广告审核失败,无法展现广告 * @solution 请前往 mp.weixin.qq.com 确认审核状态,且开发者需要针对这种情况做形态上的兼容。 */ 1006 /** * @illustrate 广告组件被封禁 * @reason 你的广告能力已经被封禁,封禁期间无法展现广告 * @solution 请前往 mp.weixin.qq.com 确认小程序广告封禁状态。 */ 1007 /** * @illustrate 广告单元已关闭 * @reason 该广告位的广告能力已经被关闭 * @solution 请前往 mp.weixin.qq.com 重新打开对应广告位的展现。 */ 1008 } interface onSizeEventDetail { width: number height: number } } /** Banner 广告 * @classification open * @supported weapp, swan, tt, qq * @example_react * ```tsx * class App extends Component { * render () { * return ( * console.log('ad onLoad')} * onError={() => console.log('ad onError')} * onClose={() => console.log('ad onClose')} * /> * ) * } * } * ``` * @example_vue * ```html * * ``` * @see https://developers.weixin.qq.com/miniprogram/dev/component/ad.html */ declare const Ad: ComponentType export { Ad, AdProps }