[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ES9ESK5PYH0ZJ09CRAH9Z2":3,"skill-same:01M6ES9ESK5PYH0ZJ09CRAH9Z2":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":44,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6ES9ESK5PYH0ZJ09CRAH9Z2","unity-integrate-ads",null,"Integrate explicitly selected Unity LevelPlay ads with privacy configuration, lifecycle ownership, bounded retries and idempotent rewarded outcomes.","TimothyMeadows\u002FHephaera","TimothyMeadows","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4072037?v=4","01M6ERVE3WV9X55S1NT4W5FDGA","Timothy D Meadows II","01M6ERVE8H7CBATH6KYFDKG5CJ",4,"MIT","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funity-integrate-ads\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"ads","integrate","unity","unity integrate ads","privacy","lifecycle","outcomes","configuration","retries","ownership","with","bounded","idempotent","2026-11-10 10:12:30",false,"---\nname: unity-integrate-ads\ndescription: Integrate explicitly selected Unity LevelPlay ads with privacy configuration, lifecycle ownership, bounded retries and idempotent rewarded outcomes.\nengines: [UNITY]\n---\n\n# Unity Integrate Ads\n\n## When to use\n\nImplement a selected LevelPlay ad integration, placement or rewarded-ad flow. Do not add advertising to a project merely because it can support it.\n\n## Activation and inputs\n\nRun `commands\u002Fresolve-engine.sh` and `commands\u002Fresolve-skill.sh unity-integrate-ads`; require effective `UNITY`, compatibility and permitted scope. Inspect the locked LevelPlay package, adapters\u002Fnative dependencies, platform, approved placement\u002Freward policy, privacy settings, app keys and authorized test mode. Accounts, terms, provider activation, SDK installation and real ad traffic remain separate actions.\n\n## Workflow\n\n1. Match the installed SDK's initialization and ad-unit API. Keep legacy global rewarded listeners distinct from current owned ad objects. Initialize once; register handlers before load\u002Fshow and remove exactly those handlers on disposal.\n2. Apply the project's consent, age-related and platform privacy configuration at the SDK-required time. Preserve unknown\u002Fdenied states and selected contextual\u002Fdisabled behavior; do not manufacture permission or consent.\n3. Track ad-unit loading, readiness, display, reward, close and failure separately. A close or impression is not a reward. Own callbacks by ad instance, display attempt and player generation; prevent recycled UI\u002Fscreens from receiving stale events.\n4. Grant a reward only from the selected verified reward signal and persistent deduplication identity. Handle reward\u002Fclose callbacks in either order. For server-to-server rewards, verify the provider's signature and replay identity on the backend; keep signing secrets off clients.\n5. Bound load\u002Fshow retries and respect placement caps. Restore UI\u002Fgame pause\u002Faudio\u002Finput on every supported failure\u002Fclose path; delayed rewards retain a valid owner without reopening an obsolete screen.\n\nRead [ad lifecycle](references\u002Fad-lifecycle.md) for privacy, callback ordering and device acceptance.\n\n## Verification and output\n\nDeliver SDK\u002Fadapter\u002Fplatform\u002Fplacement identities, privacy and reward ownership, dependency changes, callback-state tests and approved test-ad device evidence. Exercise no-fill, offline start, show failure, duplicate\u002Flate reward, close-before-reward, consent denial and teardown. Simulated callbacks are protocol tests; Editor success cannot certify native adapters or platform privacy behavior. Redact identifiers, payment\u002Frevenue payloads and personal data. Store observations under resolved `.hephaera\u002F.cache`; unavailable accounts\u002FSDKs\u002Fdevices remain blocked\u002Fnot-run.\n","# Unity Integrate Ads\n\n## When to use\n\nImplement a selected LevelPlay ad integration, placement or rewarded-ad flow. Do not add advertising to a project merely because it can support it.\n\n## Activation and inputs\n\nRun `commands\u002Fresolve-engine.sh` and `commands\u002Fresolve-skill.sh unity-integrate-ads`; require effective `UNITY`, compatibility and permitted scope. Inspect the locked LevelPlay package, adapters\u002Fnative dependencies, platform, approved placement\u002Freward policy, privacy settings, app keys and authorized test mode. Accounts, terms, provider activation, SDK installation and real ad traffic remain separate actions.\n\n## Workflow\n\n1. Match the installed SDK's initialization and ad-unit API. Keep legacy global rewarded listeners distinct from current owned ad objects. Initialize once; register handlers before load\u002Fshow and remove exactly those handlers on disposal.\n2. Apply the project's consent, age-related and platform privacy configuration at the SDK-required time. Preserve unknown\u002Fdenied states and selected contextual\u002Fdisabled behavior; do not manufacture permission or consent.\n3. Track ad-unit loading, readiness, display, reward, close and failure separately. A close or impression is not a reward. Own callbacks by ad instance, display attempt and player generation; prevent recycled UI\u002Fscreens from receiving stale events.\n4. Grant a reward only from the selected verified reward signal and persistent deduplication identity. Handle reward\u002Fclose callbacks in either order. For server-to-server rewards, verify the provider's signature and replay identity on the backend; keep signing secrets off clients.\n5. Bound load\u002Fshow retries and respect placement caps. Restore UI\u002Fgame pause\u002Faudio\u002Finput on every supported failure\u002Fclose path; delayed rewards retain a valid owner without reopening an obsolete screen.\n\nRead [ad lifecycle](references\u002Fad-lifecycle.md) for privacy, callback ordering and device acceptance.\n\n## Verification and output\n\nDeliver SDK\u002Fadapter\u002Fplatform\u002Fplacement identities, privacy and reward ownership, dependency changes, callback-state tests and approved test-ad device evidence. Exercise no-fill, offline start, show failure, duplicate\u002Flate reward, close-before-reward, consent denial and teardown. Simulated callbacks are protocol tests; Editor success cannot certify native adapters or platform privacy behavior. Redact identifiers, payment\u002Frevenue payloads and personal data. Store observations under resolved `.hephaera\u002F.cache`; unavailable accounts\u002FSDKs\u002Fdevices remain blocked\u002Fnot-run.\n",{"name":5,"engines":37,"description":7},[38],"UNITY","main","f819d9a9c7d641d8c7e14b59560a4fd358ec4630","skills\u002Funity-integrate-ads",3,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera","https:\u002F\u002Fhephaera.com\u002F","https:\u002F\u002Fgithub.com\u002FTimothyMeadows","http:\u002F\u002Fwww.timothymeadows.com","Software & AI Systems Architect | Distributed Systems & Agentic Platforms","2026-11-13 12:12:19",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add TimothyMeadows\u002FHephaera --skill unity-integrate-ads",{"tool":55,"command":56},"bunx","bunx skills add TimothyMeadows\u002FHephaera --skill unity-integrate-ads",{"tool":58,"command":59},"pnpm","pnpm dlx skills add TimothyMeadows\u002FHephaera --skill unity-integrate-ads","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funity-integrate-ads\u002FSKILL.md",true,[63,69],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"agents\u002Fopenai.yaml","REFERENCE","参考文档",252,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funity-integrate-ads\u002Fagents\u002Fopenai.yaml",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fad-lifecycle.md",3134,"https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Funity-integrate-ads\u002Freferences\u002Fad-lifecycle.md",[74,96,120,139,157,174],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":32},"01M70V3EJ7JDFDFJ3XTKRGKRBP","verify-web3-game-lifecycle","Verify a game's selected Web3 asset, wallet, ownership and trading lifecycle with contract properties, canonical recovery, actual target evidence and separate release readiness.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fverify-web3-game-lifecycle\u002FSKILL.md",[],[81,82,24,83,84,29,85,86,87,88,89,90,91,92,93,94,28,95],"game","verify","verify web3 game lifecycle","web3","evidence","readiness","release readiness","Wallet","recovery","properties","release","contract","canonical","asset","trading",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":32},"01M70V3CS767H4M1FP4C2A7K51","verify-onchain-game-assets","Verify exact on-chain game collection ownership and quantities at canonical blocks, reconcile inventory events, and design honest match admission. Use for ERC721\u002FERC1155 inventory, reorg recovery, reservations, or transfer-during-match rules.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fverify-onchain-game-assets\u002FSKILL.md",[],[81,103,82,104,105,106,107,108,109,110,111,112,113,114,115,116,89,117,118,119],"onchain","game assets","assets","verify onchain game assets","chain","for","inventory","reservations","design","erc721","use","Rules","collection","on-chain","at","blocks","reconcile",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":32},"01M70TZYWE48MTM8CGGDMWSJDN","plan-web3-game-assets","Define an opt-in Ethereum, Base or Immutable game-asset lifecycle, including token identity, supply, rights, custody, game eligibility and chain-specific dependencies.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fplan-web3-game-assets\u002FSKILL.md",[],[81,127,104,105,128,84,129,130,131,132,107,133,24,134,135,136,137,94,138],"plan","plan web3 game assets","supply","opt","immutable","rights","dependencies","token","base","define","ethereum","identity",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":32},"01M70TYYZ7SPZ7PE6A6GQ5RXQ9","integrate-game-wallets","Integrate explicit player-wallet connection, scoped SIWE authentication, authority invalidation and reviewed target-specific handoff without application-held player keys.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fintegrate-game-wallets\u002FSKILL.md",[],[81,146,20,147,148,88,149,150,151,152,153,154,155,156],"integrate game wallets","wallets","siwe","keys","authentication","player","scoped","connection","authority","application","handoff",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":32},"01M70TYX656BP1R0KWMYRX437R","integrate-game-asset-trading","Integrate explicitly selected game asset settlement with exact unsigned intents, scoped approvals, idempotent operations and canonical receipt reconciliation. Use for NFT listing, buying, cancellation, retries or marketplace integration.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fintegrate-game-asset-trading\u002FSKILL.md",[],[81,164,20,94,95,165,166,108,152,27,113,167,31,29,168,169,170,171,172,173],"integrate game asset trading","reconciliation","idempotent operations","listing","nft","approvals","operations","marketplace","integration","intents",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":32},"01M70TWV3J83RAJMA7BC62CPAH","build-evm-game-contracts","Author and verify host-owned EVM game collections and explicit mint, burn, craft or admin rules with pinned Solidity tooling. Use for contract source and deployment candidates; deployment and player signing require separate authorization.","https:\u002F\u002Fgithub.com\u002FTimothyMeadows\u002FHephaera\u002Fblob\u002Fmain\u002Fskills\u002Fbuild-evm-game-contracts\u002FSKILL.md",[],[81,181,182,183,184,108,185,151,186,92,187,113,114,188,29,189,190,82,191,192],"evm","build","build evm game contracts","contracts","deployment","collections","host","author","admin","signing","mint","tooling"]