{"_id":"@ad-execute-manager/ad-interstitial","_rev":"6-44a11dfd559e48b1a86eba70d66fb613","name":"@ad-execute-manager/ad-interstitial","dist-tags":{"latest":"2.0.6"},"versions":{"2.0.1":{"name":"@ad-execute-manager/ad-interstitial","version":"2.0.1","keywords":["ad","advertisement","interstitial-ad","ad-manager","javascript","nodejs","typescript","ad-execution","novel-ad"],"author":{"url":"https://github.com/singcl","name":"singcl","email":"iambabyer@gmail.com"},"license":"MIT","_id":"@ad-execute-manager/ad-interstitial@2.0.1","maintainers":[{"name":"singcl","email":"24661881@qq.com"}],"homepage":"https://npmjs.com/package/@ad-execute-manager/ad-interstitial","bugs":{"url":"https://github.com/singcl/ad-execute-manager/issues"},"dist":{"shasum":"aa57f6f2e5405bf9282a644cab47dacd77994971","tarball":"https://registry.npmjs.org/@ad-execute-manager/ad-interstitial/-/ad-interstitial-2.0.1.tgz","fileCount":13,"integrity":"sha512-+AkHfHGqTBzlDG9uG5eBP60ypABPiohEiaUnnnxDNNkbMYTeQbeNtWzLYr2sooP/VnBm80GL9r/PXdwvg9KpMg==","signatures":[{"sig":"MEYCIQCSMpmMk5DoLNKnw0IV17Lw/6MqRcWnSyLN3ZMFUmMVUgIhANCUitZM7PW+lb/yKe66g7Iiugg5tFpjuX7fWZL/rpYX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71368},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4d3f21f4253b596a363b16544f21dee3b5ec7d7f","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"rstest","build":"rslib build && tsc","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"singcl","email":"24661881@qq.com"},"repository":{"url":"git+https://github.com/singcl/ad-execute-manager.git","type":"git","directory":"packages/ad-interstitial"},"_npmVersion":"8.5.0","description":"Interstitial ad-related classes including InterstitialAdFather and InterstitialAdNovel for ad management.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@ad-execute-manager/serializable-error":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","globals":"^16.5.0","prettier":"^3.7.3","@eslint/js":"^9.39.1","typescript":"^5.9.3","@rslib/core":"^0.18.5","@rstest/core":"^0.7.2","@babel/preset-env":"^7.28.5","@babel/eslint-parser":"^7.28.5","eslint-plugin-import":"^2.32.0"},"peerDependencies":{"@ad-execute-manager/core":"^2.0.1","@ad-execute-manager/logger":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ad-interstitial_2.0.1_1770777669232_0.8634697220981893","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@ad-execute-manager/ad-interstitial","version":"2.0.2","keywords":["ad","advertisement","interstitial-ad","ad-manager","javascript","nodejs","typescript","ad-execution","novel-ad"],"author":{"url":"https://github.com/singcl","name":"singcl","email":"iambabyer@gmail.com"},"license":"MIT","_id":"@ad-execute-manager/ad-interstitial@2.0.2","maintainers":[{"name":"singcl","email":"24661881@qq.com"}],"homepage":"https://npmjs.com/package/@ad-execute-manager/ad-interstitial","bugs":{"url":"https://github.com/singcl/ad-execute-manager/issues"},"dist":{"shasum":"0cef9b263bd9a85d399a385383d8db23ac2e83cd","tarball":"https://registry.npmjs.org/@ad-execute-manager/ad-interstitial/-/ad-interstitial-2.0.2.tgz","fileCount":13,"integrity":"sha512-r2mxxxt8wU2mgrt3ubov6qU8Nh38AuviedZ2JGOfWBz/0Ccb9OUK/0dENO3Gh4Pj6PcZlA6NSDDTNGzqQGEwQA==","signatures":[{"sig":"MEUCIQDOLn3wMjW/jbgWoWrWSTVpvFKw2u2GH9MmhOQFmuZyKwIgdZcTHlTqRqovZ9L18n6uQTYd3Ggs0SPD6eLSdFFoOVc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71368},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"125db4b0802b729880f057231b20f8a8c8596663","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"rstest","build":"rslib build && tsc","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"singcl","email":"24661881@qq.com"},"repository":{"url":"git+https://github.com/singcl/ad-execute-manager.git","type":"git","directory":"packages/ad-interstitial"},"_npmVersion":"8.5.0","description":"Interstitial ad-related classes including InterstitialAdFather and InterstitialAdNovel for ad management.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@ad-execute-manager/serializable-error":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","globals":"^16.5.0","prettier":"^3.7.3","@eslint/js":"^9.39.1","typescript":"^5.9.3","@rslib/core":"^0.18.5","@rstest/core":"^0.7.2","@babel/preset-env":"^7.28.5","@babel/eslint-parser":"^7.28.5","eslint-plugin-import":"^2.32.0"},"peerDependencies":{"@ad-execute-manager/core":"^2.0.2","@ad-execute-manager/logger":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/ad-interstitial_2.0.2_1770781592115_0.06536071072612692","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@ad-execute-manager/ad-interstitial","version":"2.0.3","keywords":["ad","advertisement","interstitial-ad","ad-manager","javascript","nodejs","typescript","ad-execution","novel-ad"],"author":{"url":"https://github.com/singcl","name":"singcl","email":"iambabyer@gmail.com"},"license":"MIT","_id":"@ad-execute-manager/ad-interstitial@2.0.3","maintainers":[{"name":"singcl","email":"24661881@qq.com"}],"homepage":"https://npmjs.com/package/@ad-execute-manager/ad-interstitial","bugs":{"url":"https://github.com/singcl/ad-execute-manager/issues"},"dist":{"shasum":"504778d3c1071570c7808ea3f54fb1882e6093ac","tarball":"https://registry.npmjs.org/@ad-execute-manager/ad-interstitial/-/ad-interstitial-2.0.3.tgz","fileCount":13,"integrity":"sha512-5F2H6FrJqrAUDMPx/IJuyhKl8+EXo7ynN+PjX0zo51yQUHsKDeBNE5nnUHe+P0bmGp2fCConDaI6ttVnD9Exhg==","signatures":[{"sig":"MEYCIQD/28ZcgoOal3d6h7VwWIC491MgmU7zjvgk2h12yk/84wIhALa92kKkorA9r7+wl5pqLfpIs+YxjNju5LyaZ81eGdvS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70186},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"179a524f3f5f100f5dd4ff8d64346c5d58d2f815","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"rstest","build":"rslib build && tsc","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"singcl","email":"24661881@qq.com"},"repository":{"url":"git+https://github.com/singcl/ad-execute-manager.git","type":"git","directory":"packages/ad-interstitial"},"_npmVersion":"8.5.0","description":"Interstitial ad-related classes including InterstitialAdFather and InterstitialAdNovel for ad management.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@ad-execute-manager/serializable-error":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","globals":"^16.5.0","prettier":"^3.7.3","@eslint/js":"^9.39.1","typescript":"^5.9.3","@rslib/core":"^0.18.5","@rstest/core":"^0.7.2","@babel/preset-env":"^7.28.5","@babel/eslint-parser":"^7.28.5","eslint-plugin-import":"^2.32.0"},"peerDependencies":{"@ad-execute-manager/core":"^2.0.3","@ad-execute-manager/logger":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ad-interstitial_2.0.3_1770798322747_0.3192875127851147","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@ad-execute-manager/ad-interstitial","version":"2.0.4","keywords":["ad","advertisement","interstitial-ad","ad-manager","javascript","nodejs","typescript","ad-execution","novel-ad"],"author":{"url":"https://github.com/singcl","name":"singcl","email":"iambabyer@gmail.com"},"license":"MIT","_id":"@ad-execute-manager/ad-interstitial@2.0.4","maintainers":[{"name":"singcl","email":"24661881@qq.com"}],"homepage":"https://npmjs.com/package/@ad-execute-manager/ad-interstitial","bugs":{"url":"https://github.com/singcl/ad-execute-manager/issues"},"dist":{"shasum":"a4b399756d86a34318cfcf2693066cbb1ae798f3","tarball":"https://registry.npmjs.org/@ad-execute-manager/ad-interstitial/-/ad-interstitial-2.0.4.tgz","fileCount":13,"integrity":"sha512-HlevhTRrqjE9xDzLzIAQie2FzfjoQCU4xN9bbmhWfgOoMO4nDNQ+d8lc07thXmaa0HyT3BTI+lAaZb6BH+K7jQ==","signatures":[{"sig":"MEYCIQC9EpMTt7Y54wlMsJrO70gekNxdTci1DsllpDzHJNcZkwIhAMc+519VWMpDN3jfUYg/oAdIv4/YSWw0zkpLB1U3Qt/m","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70186},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"06b0851a59a8d10dd405a9b6a32103979bc97dc7","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"rstest","build":"rslib build && tsc","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"singcl","email":"24661881@qq.com"},"repository":{"url":"git+https://github.com/singcl/ad-execute-manager.git","type":"git","directory":"packages/ad-interstitial"},"_npmVersion":"8.5.0","description":"Interstitial ad-related classes including InterstitialAdFather and InterstitialAdNovel for ad management.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@ad-execute-manager/serializable-error":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","globals":"^16.5.0","prettier":"^3.7.3","@eslint/js":"^9.39.1","typescript":"^5.9.3","@rslib/core":"^0.18.5","@rstest/core":"^0.7.2","@babel/preset-env":"^7.28.5","@babel/eslint-parser":"^7.28.5","eslint-plugin-import":"^2.32.0"},"peerDependencies":{"@ad-execute-manager/core":"^2.0.3","@ad-execute-manager/logger":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ad-interstitial_2.0.4_1770801473590_0.43988754813021846","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"@ad-execute-manager/ad-interstitial","version":"2.0.5","keywords":["ad","advertisement","interstitial-ad","ad-manager","javascript","nodejs","typescript","ad-execution","novel-ad"],"author":{"url":"https://github.com/singcl","name":"singcl","email":"iambabyer@gmail.com"},"license":"MIT","_id":"@ad-execute-manager/ad-interstitial@2.0.5","maintainers":[{"name":"singcl","email":"24661881@qq.com"}],"homepage":"https://npmjs.com/package/@ad-execute-manager/ad-interstitial","bugs":{"url":"https://github.com/singcl/ad-execute-manager/issues"},"dist":{"shasum":"12b9f88040b8b7b9cad68cd30ac16dd373b64e18","tarball":"https://registry.npmjs.org/@ad-execute-manager/ad-interstitial/-/ad-interstitial-2.0.5.tgz","fileCount":13,"integrity":"sha512-4Vxiue2Pky2p+faBFapVYW/LMbPTKrb6vhnEqX24qzsy91Fd29kirdIFlO4xZAlrsIeu76WIi/55Az2V4D8f7w==","signatures":[{"sig":"MEYCIQDwxykyuPTUB/CAZOuTDaJ/gzza7GUDuJMR4HpdgMRavwIhAP+zemU5pJ/JmjnI6VTfhOjfod9koi/5vwWWJh+nTCkh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70186},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","engines":{"node":">=14.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e94775219dc85a2833c6d92aa45b41f9628fa08a","scripts":{"dev":"rslib build --watch","lint":"eslint .","test":"rstest","build":"rslib build && tsc","format":"prettier --write .","prepublishOnly":"npm run build"},"_npmUser":{"name":"singcl","email":"24661881@qq.com"},"repository":{"url":"git+https://github.com/singcl/ad-execute-manager.git","type":"git","directory":"packages/ad-interstitial"},"_npmVersion":"8.5.0","description":"Interstitial ad-related classes including InterstitialAdFather and InterstitialAdNovel for ad management.","directories":{},"_nodeVersion":"16.14.2","dependencies":{"@ad-execute-manager/serializable-error":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^9.39.2","globals":"^16.5.0","prettier":"^3.7.3","@eslint/js":"^9.39.1","typescript":"^5.9.3","@rslib/core":"^0.18.5","@rstest/core":"^0.7.2","@babel/preset-env":"^7.28.5","@babel/eslint-parser":"^7.28.5","eslint-plugin-import":"^2.32.0"},"peerDependencies":{"@ad-execute-manager/core":"^2.0.5","@ad-execute-manager/logger":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/ad-interstitial_2.0.5_1770802478287_0.4171803183958791","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"@ad-execute-manager/ad-interstitial","version":"2.0.6","description":"Interstitial ad-related classes including InterstitialAdFather and InterstitialAdNovel for ad management.","type":"module","exports":{".":{"import":"./dist/index.js","require":"./dist/index.cjs","types":"./dist/index.d.ts"}},"main":"./dist/index.cjs","types":"./dist/index.d.ts","author":{"name":"singcl","email":"iambabyer@gmail.com","url":"https://github.com/singcl"},"license":"MIT","homepage":"https://npmjs.com/package/@ad-execute-manager/ad-interstitial","repository":{"type":"git","url":"git+https://github.com/singcl/ad-execute-manager.git","directory":"packages/ad-interstitial"},"bugs":{"url":"https://github.com/singcl/ad-execute-manager/issues"},"engines":{"node":">=14.0.0"},"keywords":["ad","advertisement","interstitial-ad","ad-manager","javascript","nodejs","typescript","ad-execution","novel-ad"],"scripts":{"build":"rslib build && tsc","dev":"rslib build --watch","format":"prettier --write .","lint":"eslint .","test":"rstest","prepublishOnly":"npm i && npm run build"},"dependencies":{"@ad-execute-manager/serializable-error":"^2.0.5"},"peerDependencies":{"@ad-execute-manager/core":"^2.0.6","@ad-execute-manager/logger":"^2.0.5"},"devDependencies":{"@babel/eslint-parser":"^7.28.5","@babel/preset-env":"^7.28.5","@eslint/js":"^9.39.1","@rslib/core":"^0.18.5","@rstest/core":"^0.7.2","eslint":"^9.39.2","eslint-plugin-import":"^2.32.0","globals":"^16.5.0","prettier":"^3.7.3","typescript":"^5.9.3"},"gitHead":"91fa074ccb7f2f0934937c2530330939ca36bf15","_id":"@ad-execute-manager/ad-interstitial@2.0.6","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-JYCLpIMk4kssPSg2n3bwRNTw5p+qoAkm6HfNJDrFjHFg+EuJDisxM/jPqiarsiduWsycw+aktKuFqLMnyZ0Z3g==","shasum":"6575fd65c0c2befbd5f8351bc29bf4730b741382","tarball":"https://registry.npmjs.org/@ad-execute-manager/ad-interstitial/-/ad-interstitial-2.0.6.tgz","fileCount":13,"unpackedSize":71826,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCE04G0n5drYCq8SerrtIwvO06WNuWrdaMAGT0i/hAT/QIgKXgRNr2+HSLk7Eck9E9FPD1mbgIZHWZ70/W6Xu300og="}]},"_npmUser":{"name":"singcl","email":"24661881@qq.com"},"directories":{},"maintainers":[{"name":"singcl","email":"24661881@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ad-interstitial_2.0.6_1770890558839_0.11167102218350666"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-11T02:41:09.117Z","modified":"2026-02-12T10:02:39.145Z","2.0.1":"2026-02-11T02:41:09.402Z","2.0.2":"2026-02-11T03:46:32.269Z","2.0.3":"2026-02-11T08:25:22.879Z","2.0.4":"2026-02-11T09:17:53.740Z","2.0.5":"2026-02-11T09:34:38.491Z","2.0.6":"2026-02-12T10:02:39.005Z"},"bugs":{"url":"https://github.com/singcl/ad-execute-manager/issues"},"author":{"name":"singcl","email":"iambabyer@gmail.com","url":"https://github.com/singcl"},"license":"MIT","homepage":"https://npmjs.com/package/@ad-execute-manager/ad-interstitial","keywords":["ad","advertisement","interstitial-ad","ad-manager","javascript","nodejs","typescript","ad-execution","novel-ad"],"repository":{"type":"git","url":"git+https://github.com/singcl/ad-execute-manager.git","directory":"packages/ad-interstitial"},"description":"Interstitial ad-related classes including InterstitialAdFather and InterstitialAdNovel for ad management.","maintainers":[{"name":"singcl","email":"24661881@qq.com"}],"readme":"# @ad-execute-manager/ad-interstitial\r\n\r\nInterstitial ad-related classes including InterstitialAdFather and InterstitialAdNovel for ad management.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @ad-execute-manager/ad-interstitial\r\n```\r\n\r\n## Features\r\n\r\n- **InterstitialAdFather**: Base class for interstitial ads with common functionality\r\n- **InterstitialAdNovel**: Novel-specific interstitial ad implementation with enhanced features\r\n- **AdExecuteManager**: Core ad execution management from @ad-execute-manager/core\r\n- **TypeScript Support**: Includes TypeScript type definitions\r\n- **Event Callbacks**: Comprehensive event callback system for ad lifecycle events\r\n- **Error Handling**: Built-in error handling and retry mechanisms\r\n- **Scene Support**: Scene-based ad configuration for different contexts\r\n\r\n## Usage\r\n\r\n### InterstitialAdNovel\r\n\r\n```javascript\r\nimport { InterstitialAdNovel } from '@ad-execute-manager/ad-interstitial';\r\n\r\nconst interstitialAd = InterstitialAdNovel.new({\r\n  sign: 'novel_interstitial',\r\n  preserveOnEnd: false,\r\n  needEndOnTimeout: true,\r\n  collection: {\r\n    onHalfway: (args) => {\r\n      console.log('Ad halfway:', args);\r\n    },\r\n    onShow: (args) => {\r\n      console.log('Ad shown:', args);\r\n    },\r\n    onFinish: (args) => {\r\n      console.log('Ad finished:', args);\r\n    },\r\n    onAlways: (args) => {\r\n      console.log('Ad always:', args);\r\n    },\r\n    onError: (error) => {\r\n      console.error('Ad error:', error);\r\n    }\r\n  }\r\n});\r\n\r\n// Initialize ad\r\ninterstitialAd.initialize({\r\n  adUnitId: 'your-ad-unit-id',\r\n  retry: 3\r\n});\r\n\r\n// Show ad\r\nconst result = await interstitialAd.addExecuteManager({\r\n  options: {\r\n    scene: 1\r\n  }\r\n});\r\n\r\nconsole.log('Ad result:', result);\r\n```\r\n\r\n### Basic Interstitial Ad Usage\r\n\r\n```javascript\r\nimport { InterstitialAdNovel } from '@ad-execute-manager/ad-interstitial';\r\n\r\n// Create ad instance\r\nconst interstitialAd = InterstitialAdNovel.new({\r\n  sign: 'chapter_end_interstitial',\r\n  preserveOnEnd: false,\r\n  needEndOnTimeout: true,\r\n  collection: {\r\n    onFinish: () => {\r\n      console.log('Interstitial ad finished, proceeding to next chapter');\r\n      // Proceed to next chapter logic here\r\n    },\r\n    onError: (error) => {\r\n      console.error('Interstitial ad error:', error);\r\n      // Handle error gracefully, maybe skip ad\r\n    }\r\n  }\r\n});\r\n\r\n// Initialize and show ad\r\ninterstitialAd.initialize({ adUnitId: 'ca-app-pub-xxx/xxx', retry: 2 });\r\n\r\n// Show ad at chapter end\r\nasync function showAdAtChapterEnd() {\r\n  try {\r\n    const result = await interstitialAd.addExecuteManager({ options: { scene: 1 } });\r\n    console.log('Ad result:', result);\r\n  } catch (error) {\r\n    console.error('Ad execution error:', error);\r\n  }\r\n}\r\n\r\n// Usage\r\n// showAdAtChapterEnd();\r\n```\r\n\r\n### Ad Instance Management\r\n\r\n```javascript\r\nimport { InterstitialAdNovel } from '@ad-execute-manager/ad-interstitial';\r\n\r\n// Create ad instance\r\nconst interstitialAd = InterstitialAdNovel.new({ sign: 'interstitial' });\r\n\r\n// Initialize ad\r\ninterstitialAd.initialize({ adUnitId: 'ca-app-pub-xxx/xxx', retry: 2 });\r\n\r\n// Function to show ad based on user action\r\nasync function showAdBasedOnAction(action) {\r\n  try {\r\n    switch (action) {\r\n      case 'chapter_end':\r\n        return await interstitialAd.addExecuteManager({ options: { scene: 1 } });\r\n      case 'app_start':\r\n        return await interstitialAd.addExecuteManager({ options: { scene: 2 } });\r\n      case 'level_complete':\r\n        return await interstitialAd.addExecuteManager({ options: { scene: 3 } });\r\n      default:\r\n        throw new Error('Invalid ad action');\r\n    }\r\n  } catch (error) {\r\n    console.error('Ad error:', error);\r\n    return { success: false, error: error.message };\r\n  }\r\n}\r\n\r\n// Usage examples\r\n// showAdBasedOnAction('chapter_end');\r\n// showAdBasedOnAction('app_start');\r\n// showAdBasedOnAction('level_complete');\r\n```\r\n\r\n## API\r\n\r\n### InterstitialAdFather\r\n\r\nBase class for interstitial ads with common functionality.\r\n\r\n### InterstitialAdNovel\r\n\r\n```typescript\r\nclass InterstitialAdNovel extends InterstitialAdFather {\r\n  /**\r\n   * Builds and returns an instance of InterstitialAdNovel\r\n   * @param args Construction arguments\r\n   * @returns Instance of InterstitialAdNovel\r\n   */\r\n  static build(args: IConstructArgs): InterstitialAdNovel;\r\n  \r\n  /**\r\n   * Gets the singleton instance of InterstitialAdNovel\r\n   * @returns Singleton instance of InterstitialAdNovel\r\n   */\r\n  static getInstance(): InterstitialAdNovel;\r\n  \r\n  /**\r\n   * Creates a new instance of InterstitialAdNovel\r\n   * @param args Construction arguments\r\n   * @returns New instance of InterstitialAdNovel\r\n   */\r\n  static new(args: IConstructArgs): InterstitialAdNovel;\r\n  \r\n  /**\r\n   * Initializes the ad with configuration\r\n   * @param params Ad configuration parameters\r\n   * @param callback Optional callback function\r\n   * @returns Current instance for method chaining\r\n   */\r\n  initialize(params: IRewordAdConfig, callback?: (v: IRewardedVideoAd) => void): this;\r\n  \r\n  /**\r\n   * Adds execute manager and runs the ad\r\n   * @param ctx Context object with options\r\n   * @returns Promise with ad execution result\r\n   */\r\n  addExecuteManager(ctx: any): Promise<any>;\r\n  \r\n  /**\r\n   * Clears the ad instance\r\n   */\r\n  clear(): void;\r\n  \r\n  /**\r\n   * Shifts the ad instance\r\n   */\r\n  shift(): void;\r\n}\r\n```\r\n\r\n## Configuration\r\n\r\n### Construction Arguments\r\n\r\nWhen creating an ad instance, you can pass the following configuration options:\r\n\r\n- **sign**: Unique identifier for the ad instance\r\n- **preserveOnEnd**: Whether to preserve the instance after ad ends\r\n- **needEndOnTimeout**: Whether to end the ad on timeout\r\n- **collection**: Event collection object with callback functions\r\n  - **onHalfway**: Called when ad reaches halfway point\r\n  - **onShow**: Called when ad is shown\r\n  - **onFinish**: Called when ad finishes\r\n  - **onAlways**: Called always after ad operation\r\n  - **onError**: Called when ad encounters error\r\n\r\n### Initialize Parameters\r\n\r\nWhen initializing an ad, you can pass the following parameters:\r\n\r\n- **adUnitId**: Unique identifier for the ad unit\r\n- **retry**: Number of retry attempts on ad error\r\n\r\n## Examples\r\n\r\n### Example 1: Chapter End Interstitial Ad\r\n\r\n```javascript\r\nimport { InterstitialAdNovel } from '@ad-execute-manager/ad-interstitial';\r\n\r\n// Create ad instance for chapter end\r\nconst chapterEndAd = InterstitialAdNovel.new({\r\n  sign: 'chapter_end_interstitial',\r\n  preserveOnEnd: false,\r\n  needEndOnTimeout: true,\r\n  collection: {\r\n    onShow: () => {\r\n      console.log('Chapter end interstitial ad shown');\r\n      // Track ad show event\r\n    },\r\n    onFinish: () => {\r\n      console.log('Chapter end interstitial ad finished');\r\n      // Proceed to next chapter\r\n      nextChapter();\r\n    },\r\n    onError: (error) => {\r\n      console.error('Chapter end interstitial ad error:', error);\r\n      // Skip ad and proceed\r\n      nextChapter();\r\n    }\r\n  }\r\n});\r\n\r\n// Initialize ad\r\nchapterEndAd.initialize({ \r\n  adUnitId: 'your-ad-unit-id', \r\n  retry: 2 \r\n});\r\n\r\n// Function to proceed to next chapter\r\nfunction nextChapter() {\r\n  console.log('Proceeding to next chapter...');\r\n  // Next chapter logic here\r\n}\r\n\r\n// Show ad when chapter ends\r\nasync function showChapterEndAd() {\r\n  console.log('Showing chapter end interstitial ad...');\r\n  try {\r\n    await chapterEndAd.addExecuteManager({ \r\n      options: { \r\n        scene: 1 // Chapter end scene\r\n      } \r\n    });\r\n  } catch (error) {\r\n    console.error('Error showing chapter end ad:', error);\r\n    nextChapter();\r\n  }\r\n}\r\n```\r\n\r\n### Example 2: App Start Interstitial Ad\r\n\r\n```javascript\r\nimport { InterstitialAdNovel } from '@ad-execute-manager/ad-interstitial';\r\n\r\n// Create ad instance for app start\r\nconst appStartAd = InterstitialAdNovel.new({\r\n  sign: 'app_start_interstitial',\r\n  preserveOnEnd: true,\r\n  needEndOnTimeout: true,\r\n  collection: {\r\n    onShow: () => {\r\n      console.log('App start interstitial ad shown');\r\n      // Track app start ad event\r\n    },\r\n    onFinish: () => {\r\n      console.log('App start interstitial ad finished');\r\n      // Continue app initialization\r\n      continueAppInit();\r\n    },\r\n    onError: (error) => {\r\n      console.error('App start interstitial ad error:', error);\r\n      // Continue app initialization despite error\r\n      continueAppInit();\r\n    }\r\n  }\r\n});\r\n\r\n// Initialize ad\r\nappStartAd.initialize({ \r\n  adUnitId: 'your-ad-unit-id', \r\n  retry: 1 \r\n});\r\n\r\n// Function to continue app initialization\r\nfunction continueAppInit() {\r\n  console.log('Continuing app initialization...');\r\n  // App initialization logic here\r\n}\r\n\r\n// Show ad on app start\r\nasync function showAppStartAd() {\r\n  console.log('Showing app start interstitial ad...');\r\n  try {\r\n    await appStartAd.addExecuteManager({ \r\n      options: { \r\n        scene: 2 // App start scene\r\n      } \r\n    });\r\n  } catch (error) {\r\n    console.error('Error showing app start ad:', error);\r\n    continueAppInit();\r\n  }\r\n}\r\n```\r\n\r\n### Example 3: Level Complete Interstitial Ad\r\n\r\n```javascript\r\nimport { InterstitialAdNovel } from '@ad-execute-manager/ad-interstitial';\r\n\r\n// Create ad instance for level complete\r\nconst levelCompleteAd = InterstitialAdNovel.new({\r\n  sign: 'level_complete_interstitial',\r\n  preserveOnEnd: false,\r\n  needEndOnTimeout: true,\r\n  collection: {\r\n    onShow: () => {\r\n      console.log('Level complete interstitial ad shown');\r\n      // Track level complete ad event\r\n    },\r\n    onFinish: () => {\r\n      console.log('Level complete interstitial ad finished');\r\n      // Show level complete screen\r\n      showLevelCompleteScreen();\r\n    },\r\n    onError: (error) => {\r\n      console.error('Level complete interstitial ad error:', error);\r\n      // Show level complete screen despite error\r\n      showLevelCompleteScreen();\r\n    }\r\n  }\r\n});\r\n\r\n// Initialize ad\r\nlevelCompleteAd.initialize({ \r\n  adUnitId: 'your-ad-unit-id', \r\n  retry: 2 \r\n});\r\n\r\n// Function to show level complete screen\r\nfunction showLevelCompleteScreen() {\r\n  console.log('Showing level complete screen...');\r\n  // Level complete screen logic here\r\n}\r\n\r\n// Show ad when level completes\r\nasync function showLevelCompleteAd() {\r\n  console.log('Showing level complete interstitial ad...');\r\n  try {\r\n    await levelCompleteAd.addExecuteManager({ \r\n      options: { \r\n        scene: 3 // Level complete scene\r\n      } \r\n    });\r\n  } catch (error) {\r\n    console.error('Error showing level complete ad:', error);\r\n    showLevelCompleteScreen();\r\n  }\r\n}\r\n```\r\n\r\n## Dependencies\r\n\r\n- **@ad-execute-manager/core**: Core ad execution management\r\n- **@ad-execute-manager/logger**: Logging utility\r\n- **@ad-execute-manager/serializable-error**: Serializable error implementation\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}