qb-pc-sdk 1.3.2 → 1.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -390,6 +390,33 @@ onBeforeUnmount(() => {
390
390
  - **data-ad-id** 或 **data-placement-id**:广告位 ID(必填)
391
391
  - 同一页面可放多个 `.lazy-ad`,动态插入的也会被监听并懒加载
392
392
 
393
+ **懒加载下使用「关闭按钮」与「插屏」:可直接写在 div 上**
394
+
395
+ 在懒加载的 div 上增加以下**可选** data 属性即可,无需额外 JS:
396
+
397
+ | 属性 | 取值 | 说明 |
398
+ |------|------|------|
399
+ | `data-close-button-first-click-as-ad` | `true` / `1` / `yes` | 关闭图标:第一次点击 = 广告跳转,第二次点击 = 关闭;悬停显示「关闭按钮」,点击该文字直接关闭 |
400
+ | `data-show-as-interstitial` | `true` / `1` / `yes` | 广告加载成功后自动以插屏形式展示(遮罩 + 居中) |
401
+
402
+ 示例:
403
+
404
+ ```html
405
+ <!-- 仅懒加载,默认关闭逻辑 -->
406
+ <div class="lazy-ad" data-app-id="your-app-id" data-ad-id="your-placement-id"></div>
407
+
408
+ <!-- 懒加载 + 关闭按钮「首次点击=跳转」 -->
409
+ <div class="lazy-ad" data-app-id="your-app-id" data-ad-id="your-placement-id" data-close-button-first-click-as-ad="true"></div>
410
+
411
+ <!-- 懒加载 + 以插屏形式展示 -->
412
+ <div class="lazy-ad" data-app-id="your-app-id" data-ad-id="your-placement-id" data-show-as-interstitial="true"></div>
413
+
414
+ <!-- 两个都开 -->
415
+ <div class="lazy-ad" data-app-id="your-app-id" data-ad-id="your-placement-id" data-close-button-first-click-as-ad="true" data-show-as-interstitial="true"></div>
416
+ ```
417
+
418
+ 若需要更细的控制(例如仅部分广告插屏、或自定义关闭逻辑),可在引入 SDK 后使用 `qbAds.push({ onAdLoaded: function(ad, instance, element) { ... } })`,在回调里根据 `element` 判断是哪个广告位,再调用 `instance.showAsInterstitial()` 或 `AdSDK.createCloseButtonClickToAdBehavior(...)`。
419
+
393
420
  ### 方式三:即插即用模式(推荐用于所有建站平台)
394
421
 
395
422
  专为**所有建站平台**设计的**零代码接入方式**,客户只需复制粘贴即可使用,无需任何技术背景。
@@ -554,6 +581,7 @@ new AdSDK(config);
554
581
  - `onAdError` (function, 可选): 广告加载失败回调,参数为错误对象和错误消息
555
582
  - `onAdExpose` (function, 可选): 广告曝光回调
556
583
  - `onAdClick` (function, 可选): 广告点击回调
584
+ - `closeButtonFirstClickAsAdClick` (boolean, 可选,默认 `false`): 为 `true` 时,关闭按钮采用「第一次点击 = 广告跳转,第二次点击 = 关闭广告」逻辑,用于提高广告点击率;仅需时开启。
557
585
 
558
586
  ### 实例方法
559
587
 
@@ -605,6 +633,70 @@ adSDK.destroy();
605
633
  - 广告会自动显示关闭按钮(右上角 ×),点击即可关闭
606
634
  - 也可以手动调用 `destroy()` 方法销毁广告
607
635
 
636
+ #### 关闭按钮功能(可选)
637
+
638
+ 关闭按钮支持两种用法,可按需选择其一或使用默认行为。
639
+
640
+ **1. 配置方式:首次点击跳转、二次点击关闭**
641
+
642
+ 在创建实例时传入 `closeButtonFirstClickAsAdClick: true`,则关闭**图标(×)**行为为:第一次点击触发广告跳转(提高点击率),第二次点击才关闭广告。
643
+
644
+ - 同时,鼠标悬停在关闭图标上会在下方显示「关闭按钮」四个字;**点击「关闭按钮」文字**会直接关闭广告(一次即关)。
645
+ - 仅**点击关闭图标**保持「第一次跳转、第二次关闭」逻辑。
646
+
647
+ ```javascript
648
+ const adSDK = new AdSDK({
649
+ appId: "your-app-id",
650
+ placementId: "your-placement-id",
651
+ container: "#ad-container",
652
+ closeButtonFirstClickAsAdClick: true, // 开启:关闭图标首次点击=跳转,二次点击=关闭
653
+ onAdLoaded: (ad, instance) => console.log("广告已加载"),
654
+ });
655
+ ```
656
+
657
+ **2. 静态方法:自定义关闭按钮逻辑**
658
+
659
+ 若需对**任意关闭按钮**自行绑定「首次点击 = 广告跳转,第二次点击 = 关闭」逻辑(例如自定义 UI),可调用静态方法:
660
+
661
+ ```javascript
662
+ // 在 onAdLoaded 中获取关闭按钮与实例后调用
663
+ var closeBtn = instance.container.querySelector(".q-ad-close");
664
+ AdSDK.createCloseButtonClickToAdBehavior(closeBtn, {
665
+ triggerAdClick: function () {
666
+ instance.container.querySelector(".q-cta-btn").click(); // 触发广告跳转
667
+ },
668
+ close: function () {
669
+ instance.destroy();
670
+ },
671
+ });
672
+ ```
673
+
674
+ - `triggerAdClick`: 第一次点击时调用(如对 CTA 按钮执行 `click()`)。
675
+ - `close`: 第二次点击时调用(如 `instance.destroy()`)。
676
+
677
+ #### showAsInterstitial() 插屏展示
678
+
679
+ 将当前已加载的广告以**全屏插屏**形式展示:半透明遮罩 + 居中广告框,适合活动页、弹窗场景。需在广告加载成功后再调用。
680
+
681
+ ```javascript
682
+ const adSDK = new AdSDK({
683
+ appId: "your-app-id",
684
+ placementId: "your-placement-id",
685
+ container: "#ad-container",
686
+ onAdLoaded: (ad, instance) => {
687
+ console.log("广告已加载");
688
+ instance.showAsInterstitial(); // 以插屏形式展示(遮罩 + 居中)
689
+ },
690
+ });
691
+ ```
692
+
693
+ **说明**:
694
+
695
+ - 插屏内广告为**竖版布局**(上图下文),尺寸随容器自适应(约 9:14 比例,最大 90vw×85vh)。
696
+ - **仅能通过广告上的关闭按钮关闭**,点击遮罩不会关闭,避免误触。
697
+ - 插屏无白色边框,广告素材区域贴边展示。
698
+ - 若当前无广告或已在插屏中展示,再次调用不会重复弹层。
699
+
608
700
  ### 广告尺寸自适应
609
701
 
610
702
  广告会自动适应容器大小。建议在 CSS 中为容器设置明确的宽高: