fix(admob): harden consent, banners, and variant builds - #2553
Open
deadlyjack wants to merge 2 commits into
Open
fix(admob): harden consent, banners, and variant builds#2553deadlyjack wants to merge 2 commits into
deadlyjack wants to merge 2 commits into
Conversation
deadlyjack
commented
Jul 30, 2026
Member
- integrate UMP consent handling and reactive privacy choices
- serialize adaptive banner visibility across pages and keyboard changes
- make free and paid Cordova variant configuration idempotent
- commit and validate a deterministic self-contained AdMob bundle
- remove vulnerable legacy toolchains and update affected lockfiles
- replace the legacy soft-input workaround with adjustResize
- add tests, lockfile checks, bundle freshness, and security auditing to CI
- integrate UMP consent handling and reactive privacy choices - serialize adaptive banner visibility across pages and keyboard changes - make free and paid Cordova variant configuration idempotent - commit and validate a deterministic self-contained AdMob bundle - remove vulnerable legacy toolchains and update affected lockfiles - replace the legacy soft-input workaround with adjustResize - add tests, lockfile checks, bundle freshness, and security auditing to CI
deadlyjack
requested review from
RohitKushvaha01 and
bajrangCoder
and removed request for
bajrangCoder
July 30, 2026 16:02
Contributor
Greptile SummaryThe PR hardens AdMob consent, banner visibility, rewarded-pass lifecycle handling, Android variant builds, and CI validation.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains; the previously reported rewarded-pass banner suspension is now cleared through the same reason-scoped lifecycle on expiry and resume, immediately reconciling registered pages. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
Reward[Reward state refresh or redemption] --> Normalize[Normalize reward status]
Normalize --> Active{Pass active until adFreeUntil?}
Active -->|Yes| Suppress[Add rewarded-pass suppression]
Active -->|No| Clear[Remove rewarded-pass suppression]
Suppress --> Reconcile[Reconcile banner visibility]
Clear --> Reconcile
Page[Active registered page] --> Reconcile
Keyboard[Keyboard visibility] --> Reconcile
Pro[Pro suppression] --> Reconcile
Reconcile --> Visible{Page requests banner and no suppression or keyboard?}
Visible -->|Yes| Show[Queue native banner show]
Visible -->|No| Hide[Queue native banner hide]
Reviews (2): Last reviewed commit: "fix(admob): harden banner suppression an..." | Re-trigger Greptile |
- make banner suppression reason-aware across Pro and rewarded passes - centralize reward state refresh, expiry scheduling, and failure handling - remove stale Cordova consent and persisted AdMob variant metadata - add ES2020-compatible access and Java 21 Android native CI coverage - enforce transient plugin setup and clean tracked build state - remove the obsolete large-screen quicktools tutorial
Comment on lines
+45
to
+92
| timeout-minutes: 15 | ||
| name: Unit and dependency checks | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v7 | ||
|
|
||
| - name: Use Node.js | ||
| uses: actions/setup-node@v7 | ||
| with: | ||
| node-version: 22 | ||
| cache: npm | ||
| cache-dependency-path: | | ||
| package-lock.json | ||
| src/plugins/admob/package-lock.json | ||
| src/plugins/cordova-plugin-advanced-http/package-lock.json | ||
|
|
||
| - name: Use Bun | ||
| uses: oven-sh/setup-bun@v2 | ||
| with: | ||
| bun-version: 1.3.9 | ||
|
|
||
| - name: Install dependencies | ||
| run: npm ci --no-audit --no-fund | ||
|
|
||
| - name: Run JavaScript tests | ||
| run: npm test | ||
|
|
||
| - name: Run typecheck | ||
| run: npm run typecheck | ||
|
|
||
| - name: Verify generated AdMob bundle | ||
| run: | | ||
| npm run build:admob | ||
| npm run check:admob-bundle | ||
| git diff --exit-code -- src/plugins/admob/www/admob.js | ||
|
|
||
| - name: Verify Bun lockfile | ||
| run: bun install --frozen-lockfile --dry-run | ||
|
|
||
| - name: Reject critical dependency advisories | ||
| run: | | ||
| npm audit --package-lock-only --audit-level=critical | ||
| npm audit --prefix src/plugins/admob --package-lock-only --audit-level=critical | ||
| npm audit --prefix src/plugins/cordova-plugin-advanced-http --package-lock-only --audit-level=critical | ||
|
|
||
| admob-native-tests: |
This comment was marked as outdated.
This comment was marked as outdated.
| return sanitized; | ||
| } | ||
|
|
||
| function getAppVariant(args) { |
Member
There was a problem hiding this comment.
paid dev builds are ignored, is that intentional?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.