-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathblog.html
112 lines (112 loc) · 44.8 KB
/
blog.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<!doctype html>
<html lang="en" dir="ltr" class="blog-wrapper blog-list-page plugin-blog plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.2.1">
<title data-rh="true">Blog | AdMob Plus</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://admob-plus.github.io/blog"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="og:title" content="Blog | AdMob Plus"><meta data-rh="true" name="description" content="Blog"><meta data-rh="true" property="og:description" content="Blog"><meta data-rh="true" name="docusaurus_tag" content="blog_posts_list"><meta data-rh="true" name="docsearch:docusaurus_tag" content="blog_posts_list"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://admob-plus.github.io/blog"><link data-rh="true" rel="alternate" href="https://admob-plus.github.io/blog" hreflang="en"><link data-rh="true" rel="alternate" href="https://admob-plus.github.io/blog" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"Blog","@id":"https://admob-plus.github.io/blog","mainEntityOfPage":"https://admob-plus.github.io/blog","headline":"Blog","description":"Blog","blogPost":[{"@type":"BlogPosting","@id":"https://admob-plus.github.io/blog/2020/03/21/release-1.0","mainEntityOfPage":"https://admob-plus.github.io/blog/2020/03/21/release-1.0","url":"https://admob-plus.github.io/blog/2020/03/21/release-1.0","headline":"Release 1.0","name":"Release 1.0","description":"It is a long way to reach the 1.0 release.","datePublished":"2020-03-21T00:00:00.000Z","author":{"@type":"Person","name":"Ratson","url":"https://github.com/ratson","image":"https://avatars.githubusercontent.com/u/2682937?v=4"},"keywords":[]},{"@type":"BlogPosting","@id":"https://admob-plus.github.io/blog/2018/08/05/how-cordova-plugin-admobpro-works","mainEntityOfPage":"https://admob-plus.github.io/blog/2018/08/05/how-cordova-plugin-admobpro-works","url":"https://admob-plus.github.io/blog/2018/08/05/how-cordova-plugin-admobpro-works","headline":"How cordova-plugin-admobpro works","name":"How cordova-plugin-admobpro works","description":"I believe most cordova-plugin-admobpro users do not know how the plugin works, as the author does not explain it or intentionally hide it. This blog post is going to uncover the details, so users could have better understanding about what is added to their projects.","datePublished":"2018-08-05T00:00:00.000Z","author":{"@type":"Person","name":"Ratson","url":"https://github.com/ratson","image":"https://avatars.githubusercontent.com/u/2682937?v=4"},"keywords":[]},{"@type":"BlogPosting","@id":"https://admob-plus.github.io/blog/2018/07/15/history-of-cordova-plugin-admob-free","mainEntityOfPage":"https://admob-plus.github.io/blog/2018/07/15/history-of-cordova-plugin-admob-free","url":"https://admob-plus.github.io/blog/2018/07/15/history-of-cordova-plugin-admob-free","headline":"History of cordova-plugin-admob-free","name":"History of cordova-plugin-admob-free","description":"2 years ago, I have a cordova project needed to add Google AdMob for showing ads. I was searching an open source solution, soon landed to the popular cordova-plugin-admobpro.","datePublished":"2018-07-15T00:00:00.000Z","author":{"@type":"Person","name":"Ratson","url":"https://github.com/ratson","image":"https://avatars.githubusercontent.com/u/2682937?v=4"},"keywords":[]}]}</script><link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="AdMob Plus RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="AdMob Plus Atom Feed"><link rel="stylesheet" href="/assets/css/styles.90efb77a.css">
<script src="/assets/js/runtime~main.f2d1bde3.js" defer="defer"></script>
<script src="/assets/js/main.77a52ebe.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return localStorage.getItem("theme")}catch(t){}}();null!==e?t(e):window.matchMedia("(prefers-color-scheme: dark)").matches?t("dark"):(window.matchMedia("(prefers-color-scheme: light)").matches,t("light"))}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_STMp" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.png" alt="AdMob Plus Logo" class="themedComponent_h23k themedComponent--light_X5gp"><img src="/img/logo.png" alt="AdMob Plus Logo" class="themedComponent_h23k themedComponent--dark_d9gb"></div><b class="navbar__title text--truncate">AdMob Plus</b></a><a class="navbar__item navbar__link" href="/docs">Docs</a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/blog">Blog</a><a class="navbar__item navbar__link" href="/users">Users</a></div><div class="navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a class="navbar__link" aria-haspopup="true" aria-expanded="false" role="button" href="/docs">Next</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs">Next</a></li><li><a class="dropdown__link" href="/docs/1.x">1.x</a></li><li><a class="dropdown__link" href="/docs/0.x">0.x</a></li><li><a class="dropdown__link" href="/versions">All versions</a></li></ul></div><a class="navbar__item navbar__link" href="/funding">Funding</a><a href="https://github.com/admob-plus/admob-plus" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_FtFW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a><div class="toggle_PSvm colorModeToggle_KhPe"><button class="clean-btn toggleButton_iWRi toggleButtonDisabled_t4Lx" type="button" disabled="" title="Switch between dark and light mode (currently light mode)" aria-label="Switch between dark and light mode (currently light mode)" aria-live="polite"><svg viewBox="0 0 24 24" width="24" height="24" class="lightToggleIcon_OxKq"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" class="darkToggleIcon_gqZQ"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg></button></div><div class="navbarSearchContainer_qIsI"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_U2vb"><div class="container margin-vert--lg"><div class="row"><aside class="col col--3"><nav class="sidebar_ZRBo thin-scrollbar" aria-label="Blog recent posts navigation"><div class="sidebarItemTitle_Sqz6 margin-bottom--md">Recent posts</div><ul class="sidebarItemList_sDtz clean-list"><li class="sidebarItem_WLs3"><a class="sidebarItemLink_xS72" href="/blog/2020/03/21/release-1.0">Release 1.0</a></li><li class="sidebarItem_WLs3"><a class="sidebarItemLink_xS72" href="/blog/2018/08/05/how-cordova-plugin-admobpro-works">How cordova-plugin-admobpro works</a></li><li class="sidebarItem_WLs3"><a class="sidebarItemLink_xS72" href="/blog/2018/07/15/history-of-cordova-plugin-admob-free">History of cordova-plugin-admob-free</a></li></ul></nav></aside><main class="col col--7"><article class="margin-bottom--xl"><header><h2 class="title_vOW_"><a href="/blog/2020/03/21/release-1.0">Release 1.0</a></h2><div class="container_ScEo margin-vert--md"><time datetime="2020-03-21T00:00:00.000Z">March 21, 2020</time> · <!-- -->3 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_G_Gz"><div class="avatar margin-bottom--sm"><a href="https://github.com/ratson" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://avatars.githubusercontent.com/u/2682937?v=4" alt="Ratson"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://github.com/ratson" target="_blank" rel="noopener noreferrer"><span>Ratson</span></a></div></div></div></div></div></header><div class="markdown"><p>It is <a href="https://github.com/admob-plus/admob-plus/compare/[email protected]@1.0.0" target="_blank" rel="noopener noreferrer">a long way</a> to reach the 1.0 release.</p>
<div class="language-js codeBlockContainer_OqoI theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_RVYd"><pre tabindex="0" class="prism-code language-js codeBlock_jVp5 thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_U5nO"><span class="token-line" style="color:#bfc7d5"><span class="token number" style="color:rgb(247, 140, 108)">480</span><span class="token plain"> commits</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">730</span><span class="token plain"> files changed</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">16341</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">insertions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token operator" style="color:rgb(137, 221, 255)">+</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token punctuation" style="color:rgb(199, 146, 234)">,</span><span class="token plain"> </span><span class="token number" style="color:rgb(247, 140, 108)">24085</span><span class="token plain"> </span><span class="token function" style="color:rgb(130, 170, 255)">deletions</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token operator" style="color:rgb(137, 221, 255)">-</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><br></span></code></pre><div class="buttonGroup_BGII"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_NTFI" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_Ah85"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_l1RI"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>1.0 is a serious rewrite of its internals and APIs to utilize the <a href="https://developers.google.com/admob/ios/migration" target="_blank" rel="noopener noreferrer">recently updated</a> and <a href="https://developers.google.com/admob/android/migration" target="_blank" rel="noopener noreferrer">upcoming</a> Google AdMob SDK.</p>
<p>Apart from the usual Cordova plugin, AdMob Plus is now officially providing plugins for <a href="https://ionicframework.com/" target="_blank" rel="noopener noreferrer">Ionic</a> and <a href="https://capacitorjs.com/" target="_blank" rel="noopener noreferrer">Capacitor v3</a>.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="cordova-plugin">Cordova Plugin<a href="#cordova-plugin" class="hash-link" aria-label="Direct link to Cordova Plugin" title="Direct link to Cordova Plugin"></a></h2>
<p>Package of Cordova plugin has been renamed from <a href="https://www.npmjs.com/package/cordova-admob-plus" target="_blank" rel="noopener noreferrer"><code>cordova-admob-plus</code></a> to <a href="https://www.npmjs.com/package/admob-plus-cordova" target="_blank" rel="noopener noreferrer"><code>admob-plus-cordova</code></a>.
This keeps <a href="https://ionicframework.com/docs/native/admob-plus" target="_blank" rel="noopener noreferrer">@ionic-native/admob-plus</a> working without breaking.</p>
<p><code>cordova-admob-plus</code> is now deprecated in favor of the new plugin, Ionic users should transit to use <a href="https://www.npmjs.com/package/@admob-plus/ionic" target="_blank" rel="noopener noreferrer"><code>@admob-plus/ionic</code></a> for the latest improvements.</p>
<p><a href="https://admob-plus.github.io/docs/cordova" target="_blank" rel="noopener noreferrer">Documentation</a></p>
<h3 class="anchor anchorWithStickyNavbar_lY9I" id="typescript-support">TypeScript Support<a href="#typescript-support" class="hash-link" aria-label="Direct link to TypeScript Support" title="Direct link to TypeScript Support"></a></h3>
<p><code>admob-plus-cordova</code> exports types for TypeScript projects.</p>
<p>Use Triple-slash directives to have global <code>admob</code> object typed,</p>
<div class="language-ts codeBlockContainer_OqoI theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_RVYd"><pre tabindex="0" class="prism-code language-ts codeBlock_jVp5 thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_U5nO"><span class="token-line" style="color:#bfc7d5"><span class="token comment" style="color:rgb(105, 112, 152);font-style:italic">/// <reference types="admob-plus-cordova" /></span><br></span></code></pre><div class="buttonGroup_BGII"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_NTFI" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_Ah85"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_l1RI"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>Regular import works too,</p>
<div class="language-ts codeBlockContainer_OqoI theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_RVYd"><pre tabindex="0" class="prism-code language-ts codeBlock_jVp5 thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_U5nO"><span class="token-line" style="color:#bfc7d5"><span class="token keyword" style="font-style:italic">import</span><span class="token plain"> </span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token plain"> BannerAd </span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token plain"> </span><span class="token keyword" style="font-style:italic">from</span><span class="token plain"> </span><span class="token string" style="color:rgb(195, 232, 141)">'admob-plus-cordova'</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">let</span><span class="token plain"> banner</span><span class="token operator" style="color:rgb(137, 221, 255)">:</span><span class="token plain"> BannerAd</span><br></span></code></pre><div class="buttonGroup_BGII"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_NTFI" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_Ah85"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_l1RI"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_lY9I" id="multiple-ad-instances">Multiple Ad Instances<a href="#multiple-ad-instances" class="hash-link" aria-label="Direct link to Multiple Ad Instances" title="Direct link to Multiple Ad Instances"></a></h3>
<p>It is now to manage multiple instances of the same ad format, thanks to the new API design.</p>
<div class="language-ts codeBlockContainer_OqoI theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_RVYd"><pre tabindex="0" class="prism-code language-ts codeBlock_jVp5 thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_U5nO"><span class="token-line" style="color:#bfc7d5"><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> banner1 </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> admob</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function" style="color:rgb(130, 170, 255)">BannerAd</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token operator" style="color:rgb(137, 221, 255)">...</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token keyword" style="font-style:italic">const</span><span class="token plain"> banner2 </span><span class="token operator" style="color:rgb(137, 221, 255)">=</span><span class="token plain"> admob</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function" style="color:rgb(130, 170, 255)">BannerAd</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">{</span><span class="token operator" style="color:rgb(137, 221, 255)">...</span><span class="token punctuation" style="color:rgb(199, 146, 234)">}</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><br></span></code></pre><div class="buttonGroup_BGII"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_NTFI" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_Ah85"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_l1RI"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<h3 class="anchor anchorWithStickyNavbar_lY9I" id="rewarded-interstitial-ad">Rewarded Interstitial Ad<a href="#rewarded-interstitial-ad" class="hash-link" aria-label="Direct link to Rewarded Interstitial Ad" title="Direct link to Rewarded Interstitial Ad"></a></h3>
<p>As part fo utilizing the SDK, new ad format <a href="https://admob-plus.github.io/docs/cordova/ads/rewarded-interstitial" target="_blank" rel="noopener noreferrer"><code>Rewarded Interstitial Ad</code></a> is added.</p>
<h3 class="anchor anchorWithStickyNavbar_lY9I" id="app-tracking-transparency">App Tracking Transparency<a href="#app-tracking-transparency" class="hash-link" aria-label="Direct link to App Tracking Transparency" title="Direct link to App Tracking Transparency"></a></h3>
<p><code>requestTrackingAuthorization()</code> was part of <a href="https://www.npmjs.com/package/cordova-plugin-consent" target="_blank" rel="noopener noreferrer"><code>cordova-plugin-consent</code></a>, is now moved to <code>admob-plus-cordova</code>,</p>
<div class="language-ts codeBlockContainer_OqoI theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_RVYd"><pre tabindex="0" class="prism-code language-ts codeBlock_jVp5 thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_U5nO"><span class="token-line" style="color:#bfc7d5"><span class="token plain">admob</span><span class="token punctuation" style="color:rgb(199, 146, 234)">.</span><span class="token function" style="color:rgb(130, 170, 255)">requestTrackingAuthorization</span><span class="token punctuation" style="color:rgb(199, 146, 234)">(</span><span class="token punctuation" style="color:rgb(199, 146, 234)">)</span><br></span></code></pre><div class="buttonGroup_BGII"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_NTFI" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_Ah85"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_l1RI"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>While you could <a href="https://admob-plus.github.io/docs/cordova/faq#shoud-i-use-apples-att-prompt" target="_blank" rel="noopener noreferrer">consider using it or not</a>, this makes ATT integration much easier.</p>
<h3 class="anchor anchorWithStickyNavbar_lY9I" id="api-docs">API Docs<a href="#api-docs" class="hash-link" aria-label="Direct link to API Docs" title="Direct link to API Docs"></a></h3>
<p><a href="https://admob-plus.github.io/docs/cordova/api" target="_blank" rel="noopener noreferrer">API docs</a> are automatically generated from source code to provide up-to-date reference to classes, methods and interfaces.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="ionic-plugin">Ionic Plugin<a href="#ionic-plugin" class="hash-link" aria-label="Direct link to Ionic Plugin" title="Direct link to Ionic Plugin"></a></h2>
<p>The Ionic community has maintained <a href="https://www.npmjs.com/package/@ionic-native/admob-plus" target="_blank" rel="noopener noreferrer"><code>@ionic-native/admob-plus</code></a> for some time, it is hard to keep changes in sync with wrapping Cordova plugin due to the difference of release cycle.</p>
<p>By officially maintaining the Ionic plugin <a href="https://www.npmjs.com/package/@admob-plus/ionic" target="_blank" rel="noopener noreferrer"><code>@admob-plus/ionic</code></a>, the API and documentation will always be up-to-date.</p>
<p><a href="https://admob-plus.github.io/docs/ionic" target="_blank" rel="noopener noreferrer">Documentation</a></p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="capacitor-plugin">Capacitor Plugin<a href="#capacitor-plugin" class="hash-link" aria-label="Direct link to Capacitor Plugin" title="Direct link to Capacitor Plugin"></a></h2>
<p>Capacitor 3 is around the corner, <a href="https://www.npmjs.com/package/@admob-plus/capacitor" target="_blank" rel="noopener noreferrer"><code>@admob-plus/capacitor</code></a> provides familiar AdMob Plus APIs for those want to try it out.</p>
<p><a href="https://admob-plus.github.io/docs/capacitor" target="_blank" rel="noopener noreferrer">Documentation</a></p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="github-sponsors">GitHub Sponsors<a href="#github-sponsors" class="hash-link" aria-label="Direct link to GitHub Sponsors" title="Direct link to GitHub Sponsors"></a></h2>
<p>I have setup the <a href="https://admob-plus.github.io/funding" target="_blank" rel="noopener noreferrer">Funding page</a> since the project start to subsidize my open source work.</p>
<p>By adding <a href="https://github.com/sponsors/ratson" target="_blank" rel="noopener noreferrer">GitHub Sponsors</a> option, I wish there will be more recurring support.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="thank-you">Thank You<a href="#thank-you" class="hash-link" aria-label="Direct link to Thank You" title="Direct link to Thank You"></a></h2>
<p>I would like to take the chance to say thank you to <a href="https://github.com/admob-plus/admob-plus/graphs/contributors" target="_blank" rel="noopener noreferrer">all contributors</a>, especially to all sponsors supporting my work financially.</p>
<ul>
<li><a href="https://github.com/krunalsk007" target="_blank" rel="noopener noreferrer">@krunalsk007</a></li>
<li><a href="https://github.com/shonek007" target="_blank" rel="noopener noreferrer">@shonek007</a></li>
<li>Aleh Belko</li>
<li>Amir</li>
<li>chawalit sittichai</li>
<li>Damien</li>
<li>EMI SANIMAN</li>
<li>guiñotepro</li>
<li>Ivan Lopez</li>
<li>J. Rafael</li>
<li>José Manuel Alarcón Lombardo</li>
<li>Leon Raymond Calcutt</li>
<li>Oliver</li>
<li>RyanDev Studio</li>
<li>stefan sprenger</li>
<li>titroo team Tasos, Kostis, Fotis</li>
<li>Vanilla</li>
<li>Varun Ramesh</li>
<li>Vincent Lepski</li>
<li>김동규</li>
</ul>
<p>(Names are sorted by alphabetical order)</p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><ul class="tags_MDyc padding--none margin-left--sm"><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/admob-plus">admob-plus</a></li><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/release">release</a></li><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/cordova">cordova</a></li><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/ionic">ionic</a></li><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/capacitor">capacitor</a></li></ul></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_vOW_"><a href="/blog/2018/08/05/how-cordova-plugin-admobpro-works">How cordova-plugin-admobpro works</a></h2><div class="container_ScEo margin-vert--md"><time datetime="2018-08-05T00:00:00.000Z">August 5, 2018</time> · <!-- -->4 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_G_Gz"><div class="avatar margin-bottom--sm"><a href="https://github.com/ratson" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://avatars.githubusercontent.com/u/2682937?v=4" alt="Ratson"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://github.com/ratson" target="_blank" rel="noopener noreferrer"><span>Ratson</span></a></div></div></div></div></div></header><div class="markdown"><p>I believe most <a href="https://www.npmjs.com/package/cordova-plugin-admobpro" target="_blank" rel="noopener noreferrer"><code>cordova-plugin-admobpro</code></a> users do not know how the plugin works, as the author does not explain it or intentionally hide it. This blog post is going to uncover the details, so users could have better understanding about what is added to their projects.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="cordova-plugin-extension">cordova-plugin-extension<a href="#cordova-plugin-extension" class="hash-link" aria-label="Direct link to cordova-plugin-extension" title="Direct link to cordova-plugin-extension"></a></h2>
<p>When looking at <a href="https://github.com/floatinghotpot/cordova-admob-pro" target="_blank" rel="noopener noreferrer">the repository</a>, it looks like a normal cordova plugin repository, where source code are <code>src</code> and <code>www</code>.</p>
<p>Until you read the source code line by line, you will find the native plugin classes are inherited from <a href="https://github.com/floatinghotpot/cordova-admob-pro/blob/master/src/android/AdMobPlugin.java#L39" target="_blank" rel="noopener noreferrer"><code>com.rjfun.cordova.ad.GenericAdPlugin</code></a> and <a href="https://github.com/floatinghotpot/cordova-admob-pro/blob/master/src/ios/CDVAdMobPlugin.h#L11" target="_blank" rel="noopener noreferrer"><code>GenericAdPlugin</code></a>, which are come from <a href="https://github.com/floatinghotpot/cordova-admob-pro/blob/master/plugin.xml#L25" target="_blank" rel="noopener noreferrer"><code>cordova-plugin-extension</code></a>.</p>
<p>The author has removed the source repository which results <a href="https://www.npmjs.com/package/cordova-plugin-extension" target="_blank" rel="noopener noreferrer">the npm page</a> pointing to a broken link in GitHub. This should prevent a normal user finding out the content, but an advanced user could still check <a href="https://unpkg.com/[email protected]/" target="_blank" rel="noopener noreferrer">the npm tarball content</a>.</p>
<p>The plugin has included 2 suspicious binary files, <a href="https://unpkg.com/[email protected]/src/android/cordova-generic-ad.jar" target="_blank" rel="noopener noreferrer">cordova-generic-ad.jar</a> and <a href="https://unpkg.com/[email protected]/src/ios/libCordovaGenericAd.a" target="_blank" rel="noopener noreferrer">libCordovaGenericAd.a</a>. Clearly, they are providing the base native plugin classes.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="phoning-home">Phoning home<a href="#phoning-home" class="hash-link" aria-label="Direct link to Phoning home" title="Direct link to Phoning home"></a></h2>
<p>Since the base classes are coming from binray files, it is hard to know what they are doing. However, when trying to inspect the network requests with the plugin installed, it tells more. A HTTP request is sent after the app starts,</p>
<div class="language-http codeBlockContainer_OqoI theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_RVYd"><pre tabindex="0" class="prism-code language-http codeBlock_jVp5 thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_U5nO"><span class="token-line" style="color:#bfc7d5"><span class="token plain">POST http://adlic.rjfun.com/adlic HTTP/1.1</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">Host: adlic.rjfun.com</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">Content-Type: application/x-www-form-urlencoded</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">User-Agent: Demo/1.0.0 CFNetwork/901.1 Darwin/17.7.0</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">Accept-Language: en-us</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain">app=com.rjfun.demo&os=ios&net=admob&lic=</span><br></span></code></pre><div class="buttonGroup_BGII"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_NTFI" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_Ah85"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_l1RI"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>It returns a JSON data,</p>
<div class="language-json codeBlockContainer_OqoI theme-code-block" style="--prism-color:#bfc7d5;--prism-background-color:#292d3e"><div class="codeBlockContent_RVYd"><pre tabindex="0" class="prism-code language-json codeBlock_jVp5 thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_U5nO"><span class="token-line" style="color:#bfc7d5"><span class="token plain">{"r": 0, "b": "", "i": "", "n": "", "v": "", "js": ""}</span><br></span></code></pre><div class="buttonGroup_BGII"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_NTFI" aria-hidden="true"><svg viewBox="0 0 24 24" class="copyButtonIcon_Ah85"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_l1RI"><path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div>
<p>At this point, it is clear the plugin collecting your app info to the author owned server and response data for the plugin to consume. A guess usage would be <a href="https://github.com/floatinghotpot/cordova-admob-pro#license" target="_blank" rel="noopener noreferrer">checking the license</a>, but the author never mentions it in the documentation.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="remote-controlling-ads">Remote controlling ads<a href="#remote-controlling-ads" class="hash-link" aria-label="Direct link to Remote controlling ads" title="Direct link to Remote controlling ads"></a></h2>
<p>Thanks to a document shared by a user (the original link is broken: <a href="https://drive.google.com/file/d/0B5vtpya8P4b-NUZTdUhBVkFlU0E/view" target="_blank" rel="noopener noreferrer">https://drive.google.com/file/d/0B5vtpya8P4b-NUZTdUhBVkFlU0E/view</a>), it revealed more about the black magic.</p>
<p>From the user,</p>
<blockquote>
<p>i am using your plugin in my app. I have never use any license key. I wanted to share 2% of my ad. BUT! Your plugin took 30% of my ad.</p>
</blockquote>
<p>From the plugin author,</p>
<blockquote>
<p>After check, we find your app in the black list, and a random higher rate will be applied. Usually when a guy is using a fake license key, or send unusual attacking request (for example, request not from iOS/android cordova platform), the antcrack logic will be triggered and move the app into the black list.</p>
<p>As mentioned in the license agreement, if you have earned more than $1000, a valid license is required, or else some ad sharing will be applied. When you use my code in your app, you are assumed to accept the license agreement. If you did not accept my term, then you are not allowed to use my code without permission.</p>
<p>Second, the ad sharing rate is not as what you guess. You may not know that, for any new app, the ad sharing is 0% from beginning, not 2%. When the system calculate your earning exceed $1000, if no license key is still provided, it will start to applied 2% ad sharing. But, when unusual request detected, it will increase the rate bit by bit, but no more than 30%.</p>
</blockquote>
<p>The plugin has ability to control how much ad-sharing from the server, and will increase ad-sharing according to some undocumented conditions. The author claims it will not share more than 30% ad revenue.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="conclusion">Conclusion<a href="#conclusion" class="hash-link" aria-label="Direct link to Conclusion" title="Direct link to Conclusion"></a></h2>
<p>The author of <code>cordova-plugin-admobpro</code> has using a very sophisticated approach to do ad-sharing without telling much details it, or writing <a href="https://github.com/floatinghotpot/coding-to-monetization" target="_blank" rel="noopener noreferrer">a very detailed document</a> to promote his plugin, but not mentioning the ad-sharing part. It is hard judge if it is an issue of honesty, but I don't think it aligns the spirit of open source.</p>
<p>With the increasing adoption of <a href="https://github.com/ratson/cordova-plugin-admob-free" target="_blank" rel="noopener noreferrer">cordova-plugin-admob-free</a>, I wish there is an enough momentum to finance <a href="https://admob-plus.github.io/" target="_blank" rel="noopener noreferrer">a sustainable and trustable AdMob plugin</a>.</p>
<p>If you do have to stick with <code>cordova-plugin-admobpro</code>, consider adding analytics whenever displaying ads to compare it with you ad display count, so as least you know how much is lost.</p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><ul class="tags_MDyc padding--none margin-left--sm"><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/admob">admob</a></li><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/cordova">cordova</a></li></ul></div></footer></article><article class="margin-bottom--xl"><header><h2 class="title_vOW_"><a href="/blog/2018/07/15/history-of-cordova-plugin-admob-free">History of cordova-plugin-admob-free</a></h2><div class="container_ScEo margin-vert--md"><time datetime="2018-07-15T00:00:00.000Z">July 15, 2018</time> · <!-- -->2 min read</div><div class="margin-top--md margin-bottom--sm row"><div class="col col--6 authorCol_G_Gz"><div class="avatar margin-bottom--sm"><a href="https://github.com/ratson" target="_blank" rel="noopener noreferrer" class="avatar__photo-link"><img class="avatar__photo" src="https://avatars.githubusercontent.com/u/2682937?v=4" alt="Ratson"></a><div class="avatar__intro"><div class="avatar__name"><a href="https://github.com/ratson" target="_blank" rel="noopener noreferrer"><span>Ratson</span></a></div></div></div></div></div></header><div class="markdown"><p>2 years ago, I have a cordova project needed to add Google AdMob for showing ads. I was searching an open source solution, soon landed to the popular <a href="https://www.npmjs.com/package/cordova-plugin-admobpro" target="_blank" rel="noopener noreferrer">cordova-plugin-admobpro</a>.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="research">Research<a href="#research" class="hash-link" aria-label="Direct link to Research" title="Direct link to Research"></a></h2>
<p>As my typical practice of choosing a open source project, apart from looking at Github stars and package download count, I would read the source code to evaluate the code quality and check past issues and pull requests for how well a project is maintained.</p>
<p>Like most Cordova Plugins, the code is written to be just work, not for read or extend. However, I was alerted when I was inspecting the source of its dependency, <a href="https://www.npmjs.com/package/cordova-plugin-extension" target="_blank" rel="noopener noreferrer">cordova-plugin-extension</a>. I found 2 binary files were used, <a href="https://unpkg.com/[email protected]/src/android/cordova-generic-ad.jar" target="_blank" rel="noopener noreferrer">cordova-generic-ad.jar</a> for Android and <a href="https://unpkg.com/[email protected]/src/ios/libCordovaGenericAd.a" target="_blank" rel="noopener noreferrer">libCordovaGenericAd.a</a> for iOS.</p>
<p>Then I searched through the documentation for explaination about the binary files, the author said nothing about them, but I found the <a href="https://github.com/floatinghotpot/cordova-admob-pro#license" target="_blank" rel="noopener noreferrer">pruchase license option</a>, so it is very like some license verification code. After I run it under network monitoring, I discovered that the plugin is sending application information to <a href="http://adlic.rjfun.com/adlic" target="_blank" rel="noopener noreferrer">http://adlic.rjfun.com/adlic</a> to retrive Ad Unit ID. Searching the URL in the issue track reveals that a user reported lose revenue and the author explained it was some server bugs.</p>
<p>At this point, I have lost trust to the author, I started searching other solutions. Interestingly, there is no completely free and open source solution, many are doing ad-sharing without telling their users.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="fork">Fork<a href="#fork" class="hash-link" aria-label="Direct link to Fork" title="Direct link to Fork"></a></h2>
<p>I then decided to fork a relative high quality plugin with the ad-sharing code removed, I picked <a href="https://www.npmjs.com/package/cordova-plugin-admob-simple" target="_blank" rel="noopener noreferrer">cordova-plugin-admob-simple</a> as it has the most recent commit at that time. Just 2 weeks after I had working on my fork version, <a href="https://github.com/floatinghotpot/cordova-plugin-admob" target="_blank" rel="noopener noreferrer">cordova-plugin-admob</a> author (the same author of <code>cordova-plugin-admobpro</code>) was <a href="https://github.com/sunnycupertino/cordova-plugin-admob-simple/issues/1" target="_blank" rel="noopener noreferrer">claiming his credit</a>.</p>
<p>As a result, <a href="https://github.com/ratson/cordova-plugin-admob-free" target="_blank" rel="noopener noreferrer">cordova-plugin-admob-free</a> becomes a fork of <code>cordova-plugin-admob-simple</code> and <code>cordova-plugin-admob</code>.</p>
<h2 class="anchor anchorWithStickyNavbar_lY9I" id="next">Next<a href="#next" class="hash-link" aria-label="Direct link to Next" title="Direct link to Next"></a></h2>
<p>AdMob Plus, being the successor of <code>cordova-plugin-admob-free</code>, is continue to be free and open source. Instead of stealing your revenve, <a href="https://ratson.name/fund-admob-plus" target="_blank" rel="noopener noreferrer">I ask funding explictily</a>, but you don't have to pay to enjoy all features.</p></div><footer class="row docusaurus-mt-lg"><div class="col"><b>Tags:</b><ul class="tags_MDyc padding--none margin-left--sm"><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/admob">admob</a></li><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/cordova">cordova</a></li><li class="tag_oHHb"><a class="tag_VeVY tagRegular_CSKB" href="/blog/tags/cordova-plugin-admobpro">cordova-plugin-admobpro</a></li></ul></div></footer></article><nav class="pagination-nav" aria-label="Blog list page navigation"></nav></main></div></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs">Getting Started</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/users">User Showcase</a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/blog">Blog</a></li><li class="footer__item"><a href="https://github.com/admob-plus/admob-plus" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_FtFW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2024 <a href="https://github.com/admob-plus/admob-plus/graphs/contributors">AdMob Plus Contributors</a>.</div></div></div></footer></div>
</body>
</html>