Giter VIP home page Giter VIP logo

admob-plus / admob-plus Goto Github PK

View Code? Open in Web Editor NEW
361.0 24.0 150.0 25.36 MB

Trustable AdMob Plugin for Cordova, Capacitor, Ionic, React Native

Home Page: https://admob-plus.github.io

License: MIT License

TypeScript 27.62% Objective-C 0.64% Swift 26.29% JavaScript 5.64% Java 7.94% Ruby 0.42% CSS 0.34% Handlebars 0.03% Kotlin 24.21% MDX 6.57% Nix 0.29%
admob cordova ionic capacitor monetization react-native typescript javascript angular react ios android mobile hacktoberfest

admob-plus's Introduction

AdMob Plus

AdMob Plus

AdMob Plus is the successor of cordova-plugin-admob-free, provides a clean API and is built with modern tools.

Features

  • No Ad-Sharing
  • No Remote Control
  • Fully Open Source
  • Well maintained

Documentation

You can find the documentation on the website.

Contributing

  • Star this repository
  • Open issue for bug reports
  • Suggest features in Discussions

Sponsors

This project needs sponsors!

Disclaimer

This is third party software, not a product of Google Inc.

Google AdMob is a trademark of Google, Inc.

License

AdMob Plus is MIT licensed.

admob-plus's People

Contributors

1n3jgkl9pq6cumrw avatar andalusio avatar b3l7 avatar einfachhans avatar eliadafeka avatar ewisuri avatar fatfer avatar gregai avatar ifeddy avatar johnfitz1775 avatar longa1992 avatar martijnmichel avatar melvin-felix avatar mikkimichaelis avatar mkuklis avatar naveed-ahmad avatar netlob avatar ollm avatar petarov avatar peterjewicz avatar playmax-dev avatar rastafan avatar ratson avatar rayros avatar rickgbw avatar sandervankasteel avatar slothentic avatar steebchen avatar thegemdev avatar yigit-serin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

admob-plus's Issues

error building after admob-plus installation

Is this a bug report?

Yes

Environment

AdMob Plus Environment Info:
System:
OS: Windows 10
CPU: (4) x64 Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz
Memory: 2.01 GB / 7.93 GB
Binaries:
npm: 5.6.0 - C:\Program Files\nodejs\npm.CMD
IDEs:
Android Studio: Version 3.2.0.0 AI-181.5540.7.32.5056338

cordova: 8.1.2 ([email protected])
ionic: 4.3.1
cordova plugins: {
"cordova-plugin-whitelist": "1.3.3",
"cordova-plugin-statusbar": "2.4.2",
"cordova-plugin-device": "2.0.2",
"cordova-plugin-splashscreen": "5.0.2",
"cordova-plugin-ionic-webview": "^2.0.0",
"cordova-plugin-ionic-keyboard": "^2.0.5",
"cordova-plugin-advanced-http": "^2.0.1",
"cordova-plugin-camera": "^4.0.3",
"cordova-plugin-file": "^6.0.1",
"cordova-plugin-file-transfer": "^1.7.1",
"cordova-plugin-filepath": "^1.4.2",
"com-badrit-base64": "0.2.0",
"cordova-plugin-firebase": "2.0.5",
"cordova-android-support-gradle-release": "^1.4.5",
"cordova-plugin-inappbrowser": "3.0.0",
"cordova-sqlite-storage": "2.5.0",
"cordova-plugin-network-information": "2.0.1",
"mx.ferreyra.callnumber": "0.0.2",
"call-number": "1.0.1",
"cordova-admob-plus": "0.8.0"
}

Steps to Reproduce

(Write your steps here:)

  1. everything works fine
  2. installed plugin
  3. ionic cordova build android

Expected Behavior

build successful...

Actual Behavior

:app:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.

java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

39 actionable tasks: 5 executed, 34 up-to-date

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

  • Get more help at https://help.gradle.org

BUILD FAILED in 10s
cmd: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.

java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex

Reproducible Demo

(Paste the link to an example project and exact instructions to reproduce the issue.)

[Android] App crashes at start.

Steps to reproduce:

cordova create test-app com.test.sample
cordova platform add android
cordova run android # It's ok
cordova plugin add cordova-admob-plus --variable ADMOB_APPLICATOIN_ID=<MY_ADMOB_APPID>
cordova run android # crash

adb logcat messages:

adb logcat com.test.sample *:E

10-07 14:18:41.528 27114 27114 E AndroidRuntime: FATAL EXCEPTION: main
10-07 14:18:41.528 27114 27114 E AndroidRuntime: Process: com.test.sample, PID: 27114
10-07 14:18:41.528 27114 27114 E AndroidRuntime: java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.IllegalStateException:
10-07 14:18:41.528 27114 27114 E AndroidRuntime:
10-07 14:18:41.528 27114 27114 E AndroidRuntime: ******************************************************************************
10-07 14:18:41.528 27114 27114 E AndroidRuntime: * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
10-07 14:18:41.528 27114 27114 E AndroidRuntime: * should follow the instructions here: https://goo.gl/fQ2neu to add a valid  *
10-07 14:18:41.528 27114 27114 E AndroidRuntime: * App ID inside the AndroidManifest. Google Ad Manager publishers should     *
10-07 14:18:41.528 27114 27114 E AndroidRuntime: * follow instructions here: https://goo.gl/h17b6x.                           *
10-07 14:18:41.528 27114 27114 E AndroidRuntime: ******************************************************************************
10-07 14:18:41.528 27114 27114 E AndroidRuntime:
10-07 14:18:41.528 27114 27114 E AndroidRuntime:
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at android.app.ActivityThread.installProvider(ActivityThread.java:6501)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at android.app.ActivityThread.installContentProviders(ActivityThread.java:6064)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5968)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at android.app.ActivityThread.-wrap1(Unknown Source:0)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1684)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:105)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:164)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6759)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
10-07 14:18:41.528 27114 27114 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)

As described in the instructions link https://goo.gl/fQ2neu, I need to manually add a meta-data to the AndroidManifest.xml file to resolve this error.

wx20181007-143155

Can this be fixed?

Exception when used with firebase plugin

It's impossible to use this plugin with firebase.

[cordova]  Exception in thread "main" java.lang.IllegalArgumentException
[cordova]       at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)
[cordova]       at com.google.devtools.build.android.desugar.DefaultMethodClassFixer$DefaultMethodFinder.visit(DefaultMethodClassFixer.java:471)
[cordova]       at org.objectweb.asm.ClassReader.accept(Unknown Source)
[cordova]       at org.objectweb.asm.ClassReader.accept(Unknown Source)
[cordova]       at com.google.devtools.build.android.desugar.DefaultMethodClassFixer.defaultMethodsDefined(DefaultMethodClassFixer.java:319)
[cordova]       at com.google.devtools.build.android.desugar.DefaultMethodClassFixer.visitEnd(DefaultMethodClassFixer.java:88)
[cordova]       at org.objectweb.asm.ClassVisitor.visitEnd(Unknown Source)
[cordova]       at com.google.devtools.build.android.desugar.InterfaceDesugaring.visitEnd(InterfaceDesugaring.java:85)
[cordova]       at org.objectweb.asm.ClassVisitor.visitEnd(Unknown Source)
[cordova]       at com.google.devtools.build.android.desugar.LambdaDesugaring.visitEnd(LambdaDesugaring.java:150)
[cordova]       at org.objectweb.asm.ClassReader.accept(Unknown Source)
[cordova]       at org.objectweb.asm.ClassReader.accept(Unknown Source)
[cordova]       at com.google.devtools.build.android.desugar.Desugar.desugarClassesInInput(Desugar.java:401)
[cordova]       at com.google.devtools.build.android.desugar.Desugar.desugarOneInput(Desugar.java:326)
[cordova]       at com.google.devtools.build.android.desugar.Desugar.desugar(Desugar.java:280)
[cordova]       at com.google.devtools.build.android.desugar.Desugar.main(Desugar.java:584)
[cordova]
[cordova]  :app:transformClassesWithDesugarForDebug FAILED
[cordova]
[cordova]  FAILURE: Build failed with an exception.
[cordova]
[cordova]  * What went wrong:
[cordova]  Execution failed for task ':app:transformClassesWithDesugarForDebug'.
[cordova]  > com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while e
xecuting java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@C:\xampp\htdocs\ioniconfe\platforms\android\app\build\intermediates\tmp\desuga
r_args5256650161876836932}
[cordova]
[cordova]  * Try:
[cordova]  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
[cordova]
[cordova]  * Get more help at https://help.gradle.org
[cordova]

[Android] App crash on startup

Sadly my Ionic 3 app doesn't only crash on iOS during startup (see #23), but also on Android as well. Following the important part from system logs:

 E  java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.Ille
     galStateException:
 E  ******************************************************************************
 E  * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
 E  * should follow the instructions here: https://goo.gl/fQ2neu to add a valid  *
 E  * App ID inside the AndroidManifest. Google Ad Manager publishers should     *
 E  * follow instructions here: https://goo.gl/h17b6x.                           *
 E  ******************************************************************************
 E      at android.app.ActivityThread.installProvider(ActivityThread.java:5855)
 E      at android.app.ActivityThread.installContentProviders(ActivityThread.java:5444)
 E      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5383)
 E      at android.app.ActivityThread.-wrap2(ActivityThread.java)
 E      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1541)
 E      at android.os.Handler.dispatchMessage(Handler.java:102)
 E      at android.os.Looper.loop(Looper.java:154)
 E      at android.app.ActivityThread.main(ActivityThread.java:6123)
 E      at java.lang.reflect.Method.invoke(Native Method)
 E      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
 E      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
 E  Caused by: java.lang.IllegalStateException:
 E  ******************************************************************************
 E  * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
 E  * should follow the instructions here: https://goo.gl/fQ2neu to add a valid  *
 E  * App ID inside the AndroidManifest. Google Ad Manager publishers should     *
 E  * follow instructions here: https://goo.gl/h17b6x.                           *
 E  ******************************************************************************
 E      at com.google.android.gms.internal.ads.zzmn.attachInfo(Unknown Source)
 E      at com.google.android.gms.ads.MobileAdsInitProvider.attachInfo(Unknown Source)
 E      at android.app.ActivityThread.installProvider(ActivityThread.java:5852)
 E      ... 10 more

So it looks like the initialization while adding the plugin didn't do well, but I the terminal didn't show any error messages!

Part of my config.xml:

    <plugin name="cordova-admob-plus" spec="0.6.0">
        <variable name="APP_ID_ANDROID" value="ca-app-pub-123~456" />
        <variable name="APP_ID_IOS" value="ca-app-pub-456~789" />
    </plugin>

Some project / system information:

 ~> ionic info
โœ” Gathering environment info - done!

Ionic:

   ionic (Ionic CLI)  : 4.2.1 (/usr/local/lib/node_modules/ionic)
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.0

Cordova:

   cordova (Cordova CLI) : 8.1.2 ([email protected])
   Cordova Platforms     : android 7.0.0, ios 4.5.5
   Cordova Plugins       : cordova-plugin-ionic 5.1.2, cordova-plugin-ionic-keyboard 2.1.2, cordova-plugin-ionic-webview 2.2.0, (and 23 other plugins)

System:

   Android SDK Tools : 26.1.1 (/Users/svzi/Library/Android/sdk)
   ios-deploy        : 1.9.2
   NodeJS            : v8.11.3 (/usr/local/bin/node)
   npm               : 5.6.0
   OS                : macOS High Sierra
   Xcode             : Xcode 10.0 Build version 10A255

Any help would be really much appreciated!

Best,
Sven

Banner ads not display in 8.1.0

I have checked with Android Version: 5.1. This is showing banner ads, but in Android Version: 8.1.0, does not show banner ads instead of it showing Error code 3.
I think this is adview container issue, please check it.

Reward Video Ionic 3 Error

``
this.admob.rewardVideo.load({ id: "ca-app-pub-xxx/xxx" }).then(() => {
this.admob.rewardVideo.show();
});

Uncaught (in promise): [object CustomEvent]

id: 'test' working

AdMob Plus Capabilities

Does AdMob Plus support interstitial ads and interstitial videos? Does it support ionic 4 as well as ionic 3?

No production ads, only test ads work

I've integrated the admob-plus plugin for Cordova and I'm only getting test ads. When I disable the setDevMode to false it will never show my banner or interstitial ads. For example, the event 'admob.banner.load_fail' will always return

When I check the flow in admob.js it seems that it does parse a valid ad unit. I've tested this ad unit with another admob plugin: https://www.npmjs.com/package/cordova-admob and there it works fine. I wanted to move over to this one since that one does not support rewarded videos at the moment.

Cordova version: 8.1.2
Cordova Admob plus version: 0.0.0 (installed it through the CLI: cordova plugin add cordova-admob-plus --variable APP_ID_ANDROID=my_app_id_here
Platorm: Android
Test device: Samsung galaxy S9
Android version: 8.0

My call to create the banner ads:
Publisher.createBannerAd = function() { if(admob) { admob.banner.show({ id: { // replace with your ad unit IDs android: Publisher.admobId.banner } }); } };

My call to prepare the interstitials and show when loaded:
Publisher.prepareInterstitialAd = function() { if(admob) { admob.interstitial.load({ id: { // replace with your ad unit IDs android: Publisher.admobId.interstitial } }).then(() => admob.interstitial.show()) } };

The variable Publisher.admobId.banner is the 'ca-app-pub-xxx/xxx' of my admob. I also tried to hardcode my ca-app-pub id as a string in the id object but no succes either.

Any suggestions what I'm doing wrong?

How does it work with typescript and webpack?

Hi, I use it in my project, but webpack build failed.

Here is the relevant code:

// tsconfig.json
{
  "compilerOptions": {
    "target": "esnext",
    "module": "commonjs",
    "jsx": "react",
    "strict": true,
    "sourceMap": true,
    "baseUrl": "./",
    "paths": {
      "@assets/*": ["src/assets/*"]
    },
    "esModuleInterop": true,
    "resolveJsonModule": true
  }
}
// webpack.config.ts
// ...
module: {
    rules: [
      {
        test: /\.tsx?$/,
        exclude: /node_modules/,
        use: [
          { loader: "awesome-typescript-loader" }
        ]
      }
    ]
  },
// ...
// src/index.ts
import admob from "cordova-admob-plus";

console.log(admob);
## webpack build error

ERROR in ../node_modules/cordova-admob-plus/www/admob.js
Module not found: Error: Can't resolve 'cordova' in '/Users/arz/test-app/node_modules/cordova-admob-plus/www'
 @ ../node_modules/cordova-admob-plus/www/admob.js 3:16-34
 @ ./index.ts

ERROR in [at-loader] ./plugins/cordova-admob-plus/ts/state.ts:6:28
    TS2304: Cannot find name 'cordova'.

ERROR in [at-loader] ./plugins/cordova-admob-plus/ts/state.ts:6:54
    TS2304: Cannot find name 'cordova'.

ERROR in [at-loader] ./plugins/cordova-admob-plus/ts/base.ts:1:22
    TS2307: Cannot find module 'cordova'.

ERROR in [at-loader] ./plugins/cordova-admob-plus/ts/base.ts:25:27
    TS7006: Parameter 'successEvent' implicitly has an 'any' type.

...

Sample project: test-app.zip

Error Message from admob.banner.load_fail

I installed the admob-plus, and i change the app id and ds unit id.
But i got an error from admob.banner.load_fail event, it return a json.
{ "isTrusted":false }

Is it my admob account problem or something else,
Please tell me how to solve this problem, thank you.

Error: exec proxy not found for :: AdMob :: interstitial_load

i have installed this plugin in cordova 8.0.0. But i have got error on browser console like this....
Error: exec proxy not found for :: AdMob :: interstitial_load cordova.js:1004:9 Error: exec proxy not found for :: AdMob :: ready cordova.js:1004:9 uncaught exception: Missing Command Error admob.js:159:13

What can i do? Thanks alot before

error: package AdRequest does not exist

Is this a bug report?

Yes

Environment

AdMob Plus Environment Info:
System:
OS: Linux 4.19 Arch Linux undefined
CPU: (4) x64 Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
Memory: 772.13 MB / 7.67 GB
Shell: 4.4.23 - /bin/bash
Binaries:
Node: 11.2.0 - /usr/bin/node
npm: 6.4.1 - /usr/bin/npm
SDKs:
Android SDK:
API Levels: 21, 22, 23, 24, 25, 26, 27, 28
Build Tools: 27.0.3, 28.0.0, 28.0.2, 28.0.3
System Images: android-24 | Google APIs Intel x86 Atom, android-24 | Google Play Intel x86 Atom, android-26 | Google APIs Intel x86 Atom
IDEs:
Android Studio: 3.2
npmGlobalPackages:
cordova: 8.1.2

Steps to Reproduce

(Write your steps here:)

  1. Update to 0.12.0
  2. Run Cordova Build Android
  3. Build Fails: error: package AdRequest does not exist
    protected AdRequest.Builder createAdRequestBuilder() {

Expected Behavior

Expected successful build. v0.11 built without issues.

Actual Behavior

BUILD FAILED in 5s
26 actionable tasks: 6 executed, 20 up-to-date
/home/b3l7/Repos/eternityPilot/platforms/android/gradlew: Command failed with exit code 1 Error output:
/home/b3l7/Repos/eternityPilot/platforms/android/app/src/main/java/admob/plugin/AbstractExecutor.java:14: error: package AdRequest does not exist
protected AdRequest.Builder createAdRequestBuilder() {
^
/home/b3l7/Repos/eternityPilot/platforms/android/app/src/main/java/admob/plugin/AbstractExecutor.java:15: error: package AdRequest does not exist
return new AdRequest.Builder();
^

Reproducible Demo

I'd be willing to give the admob-plus author access to my private bitbucket repo but I do not want to make my app public at this time.

Reward Video Error

When I add a video it does not load.
That is my code:

admob.rewardVideo.load({
        id: {
            android: 'ca-app-pub-xxx/yyy', //with my id
            ios: 'ca-app-pub-xxx/yyy',
        },
});

And then when click a <div>

admob.rewardVideo.show();

This event is triggered.
It happens with wifi and with 4G,

document.addEventListener('admob.reward_video.load_fail', () => { alert("Error"); })

However in the test mode load the ads.

[question] which App-ID to use during setup?

Hi.

When creating an App in Google AdMob the very first thing to select is the Platform - is your App for Android or iOS.

Since my App is distributed on both platforms I created two Apps within AdMob with the same name, but for the two different platforms. So i got two different App-IDs.

Which one should be used during setup of the plugin?
Regarding to the setup instruction of the admob-free-plugin the App-ID is only needed for the AndroidManifest.xml, so I will use/try the Android-App-ID...

Is this the correct approach?

setDevMode() not available

I'm trying admob-plus with ionic and I don't see any setDevMode() method in the AdMob object.

Maybe there is an issue with the typings.
index.d.ts shows the following for AdMob:

export declare class AdMob extends IonicNativePlugin {
    banner: Banner;
    interstitial: Interstitial;
    rewardVideo: RewardVideo;
    setAppMuted(value: boolean): Promise<any>;
    setAppVolume(value: number): Promise<any>;
    on(event: string): Observable<any>;
}

Error in AndroidManifest.xml duplicated element

Element meta-data#com.google.android.gms.ads.APPLICATION_ID at AndroidManifest.xml:21:9-134 duplicated with element declared at AndroidManifest.xml:20:9-100
app/platforms/android/app/src/main/AndroidManifest.xml Error:
Validation failed, exiting

FAILURE: Build failed with an exception.

AndroidManifest.xml

Reward video load fails

The plugin(v 0.3.0) shows banner and interstitial ads but fails to load rewarded video ads.Could you please check if it works now on your setup(things might have changed over the past month). If it works, please share the versions of the play services ads framework and the ios pod in your setup.
Here is the link to the picture of the error object received on the reward_video_load_fail event-
https://drive.google.com/file/d/1L34-3HZsXvGgsaIm8lvWXdIEyYYyELTw/view?usp=drivesdk

Where to add the Admob Ads ID

Dear,
Please advise me the place to add the admob ads ID (ad banner/interstitial/Video Award), please.
I have an html5 page, and try to add admob.
I also have tried as the example file but the ads is not show.

Appreciate your help please.

  • where to add the Admob ads ID exactly.

Thanks a lot.

Testing mode

Is there an option to use test ad units, as stated in AdMob docs?

Always test with test ads

When building and testing your apps, make sure you use test ads rather than live, production ads. Failure to do so can lead to suspension of your account.

The easiest way to load test ads is to use our dedicated test ad unit ID for Android rewarded video:

ca-app-pub-3940256099942544/5224354917

Crashes on Start ionic 4

Using ionic 4. Started with a clean default tabs project. The app starts fine. Next added
ionic cordova plugin add cordova-admob-plus ....
With no other changes to the code, the app crashes on startup.

Plugin doesn't support this project's cordova version. cordova: 8.1.1, failed version requirement: >=8.1.2

Adding the plugin with CLI:
cordova plugin add cordova-admob-plus --variable APP_ID_ANDROID=ca-app-pub-........... --variable APP_ID_IOS=ca-app-pub-.................

This is the result:
Installing "cordova-admob-plus" for android
Plugin doesn't support this project's cordova version. cordova: 8.1.1, failed version requirement: >=8.1.2
Skipping 'cordova-admob-plus' for android
Installing "cordova-admob-plus" for ios
Plugin doesn't support this project's cordova version. cordova: 8.1.1, failed version requirement: >=8.1.2
Skipping 'cordova-admob-plus' for ios

Cordova -v
8.1.2 ([email protected])

Crash when start my app

I just create a new cordova android app, and add this plugin to it.
And i just change the app id and ads unit id, but it is crash when i start it.

Do i need any other setting or it is a bug?

config.xml

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.hellocordova" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>HelloCordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="[email protected]" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <plugin name="cordova-plugin-whitelist" spec="1" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
    <plugin name="cordova-admob-plus" spec="^0.19.0">
        <variable name="APP_ID_ANDROID" value="ca-app-pub-9535165217626459~9269127071" />
        <variable name="APP_ID_IOS" value="ca-app-pub-9535165217626459~8959833405" />
        <variable name="PLAY_SERVICES_VERSION" value="16.0.0" />
    </plugin>
    <engine name="android" spec="^7.1.4" />
</widget>

package.json

{
    "name": "helloworld",
    "displayName": "HelloCordova",
    "version": "1.0.0",
    "description": "A sample Apache Cordova application that responds to the deviceready event.",
    "main": "index.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "Apache Cordova Team",
    "license": "Apache-2.0",
    "dependencies": {
        "cordova-admob-plus": "^0.19.0",
        "cordova-android": "^7.1.4",
        "cordova-plugin-whitelist": "^1.3.3"
    },
    "cordova": {
        "plugins": {
            "cordova-plugin-whitelist": {},
            "cordova-admob-plus": {
                "APP_ID_ANDROID": "ca-app-pub-9535165217626459~9269127071",
                "APP_ID_IOS": "ca-app-pub-9535165217626459~8959833405",
                "PLAY_SERVICES_VERSION": "16.0.0"
            }
        },
        "platforms": [
            "android"
        ]
    }
}

index.js

document.addEventListener('deviceready', () => {
  admob.banner.show({
    id: {
      // replace with your ad unit IDs
      android: 'ca-app-pub-9535165217626459/2925697116',
      ios: 'ca-app-pub-9535165217626459/9889771698',
    },
  })
}, false)

[Funding Question]

Hi

I am interested on this as it seems to not only be transparent but also seems as you give love to the plugin, specially the free one.

Those monthly subscription is that per app or is that unlimited app usage?

Implement Reward Video

As requested for your priorization:
Rewarded Videos are pretty important for me before I can use this.

And I directly have some request about how you do it:
So what troubled me in cordova-admob-pro when I tried to add reward videos witht hat plugin:
I had to listen to global events to know when the video showed completely.
I would prefer an interface like

ads.showRewardVideo(config).then((shownCompletely) => { 
    if(shownCompletely) {
        // give reward
    } else {
       // show some hint 
   }
 })
.catch(() => {
   // failed to show
});

I don't know if it is possible or if this is a restriction from admob: But it would be nice to be able to request if ads are available without loading them. At the moment I always have to preload some ad to know if I can show a button which offers this. This uses bandwith which I would like to only use when user actually decides to watch a video. But I fear this is an admob limitation maybe I don't know the admob interface.

Unable to test ionic app from admob-plus example

To replicate issue:
Extract master folder, in example > ionic-angular

npm install
ionic cordova plugin add cordova-admob-plus --variable APP_ID_ANDROID=[own_google_admob_id]
npm install --save ionic-admob
ionic serve

clicks on admob.banner.show() --> displays error below
Runtime Error
Uncaught (in promise): adView is null, cal createBannerView first

clicks on admob.interstitial.load() and admob.rewardVideo.load()
Runtime Error
Uncaught (in promise): plugin_not_installed

Currently on:
Ionic Framework: 3.9.2
Ionic App Scripts: 3.2.0
Angular Core: 5.2.11
Angular Compiler CLI: 5.2.11
Node: 8.12.0
OS Platform: Windows 10
Navigator Platform: Linux armv81
User Agent: Mozilla/5.0 (Linus: Android 8.0.0 SM-G955F

cordova_not_available

when i try show banner, i get this error: "Uncaugth (in promise): cordova_not_available

here is my code to show banner
this.platform.ready().then(() => { this.admob.banner.show({ id: "ca-app-pub-xxx" }); });

Implement Banner Ads

2nd priority for me would be Banner ads.
I don't know if its possible due to admob or not, but I would like to have different banner ads loaded simultanously. E.g. cordova-admob-pro is not able to do so.

Use case:
Have a small banner ad on bottom of a game level. When switching to a pause screen I would have space for some bigger banner. Switching to another view there might be other space available.
Additionally, for the statistics in admob it would be nice to also have a way to separate the incoms by different types of views so I would like to use different ad IDs for different views for which this feature would also be nice.
Otherwise loading banners will always take some time before I can show them. Additionally, with the other library I had issues when quickly switching between views with different banners, especially on iOS: There it happened that sometimes the wrong banner was shown then above the content as in this view a smaller banner should have been loaded, but that seemed to be a library bug. So maybe have an eye on doing this right from beginning please ;)

Thanks for starting this new project!

Bug, cannot create release

The issue as below when create the release (after add the admob plus plugin):

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformClassesWithDexBuilderForRelease'.

com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/abc/.gradle/caches/transforms-1/files-1.1/play-services-base-11.0.4.aar/6c61d7814c0dd0361967e6ea4349b41f/jars/classes.jar

Please help to advise

iOS- Error: pod: Command failed with exit code 31

Hi all,
my project has build right on Android but in iOS there is a problem:
Failed to install 'cordova-admob-plus': Error: pod: Command failed with exit code 31

This error appear after the follow commands:

  • cordova platform rm ios
  • cordova platform add ios

Cordova version: 8.1.2 ([email protected])
Installed platforms:
android 7.1.3
ios 4.5.5

Project plugin list:
cordova-admob-plus 0.0.0 "@admob-plus/cordova"
cordova-plugin-add-swift-support 1.7.2 "AddSwiftSupport"
cordova-plugin-cocoapod-support 1.6.0 "Cordova CocoaPods Dependency Support"
cordova-plugin-enable-multidex 0.1.3 "Enable Multidex"
cordova-plugin-facebook4 3.1.0 "Facebook Connect"
cordova-plugin-firebase 2.0.5 "Google Firebase Plugin"
cordova-plugin-geolocation 4.0.1 "Geolocation"
cordova-plugin-network-information 2.0.1 "Network Information"
cordova-plugin-screen-orientation 3.0.1 "Screen Orientation"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-promise-polyfill 0.0.2 "cordova-promise-polyfill"
cordova-support-google-services 1.2.1 "cordova-support-google-services"
es6-promise-plugin 4.2.2 "Promise"

Any idea how fix?

Banner doesn't work in Ionic 3 app

Hi there,

first of all thanks for making this plugin, @ratson ! It looks really nice, but sadly I can't use it in my Ionic 3 app. Building the app for Android results in the following errors:

:app:processDebugResources
:app:generateDebugSources
:app:javaPreCompileDebug
/Users/svzi/...app/platforms/android/app/src/main/java/admob/plugin/AdMob.java:60: error: incompatible types: Object cannot be converted to JSONObject
            JSONObject opts = args.opt(0);
                                      ^
/Users/svzi/.../app/platforms/android/app/src/main/java/admob/plugin/AdMob.java:67: error: incompatible types: boolean cannot be converted to float
            MobileAds.setAppVolume(true);
                                   ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/svzi/.../app/platforms/android/app/src/main/java/org/apache/cordova/file/AssetFilesystem.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
2 errors
:app:compileDebugJavaWithJavac FAILED

Most relevant parts of my package.json:

  "dependencies": {
    "@angular/animations": "5.2.11",
    "@angular/common": "5.2.11",
    "@angular/compiler": "5.2.11",
    "@angular/compiler-cli": "5.2.11",
    "@angular/core": "5.2.11",
    "@angular/forms": "5.2.11",
    "@angular/http": "5.2.11",
    "@angular/platform-browser": "5.2.11",
    "@angular/platform-browser-dynamic": "5.2.11",
    "@ionic-native/core": "~4.10.0",
    "@ionic-native/dialogs": "^4.11.0",
    "@ionic-native/file": "^4.10.1",
    "@ionic-native/firebase": "^4.11.0",
    "@ionic-native/globalization": "^4.10.1",
    "@ionic-native/in-app-browser": "^4.11.0",
    "@ionic-native/splash-screen": "~4.10.0",
    "@ionic-native/status-bar": "~4.10.0",
    "@ionic/pro": "2.0.3",
    "@ionic/storage": "2.1.3",
    "@types/underscore": "^1.8.8",
    "angularfire2": "^5.0.0-rc.11",
    "cordova-admob-plus": "^0.1.0",
    "cordova-android": "7.0.0",
    "cordova-ios": "^4.5.5",
    "cordova-plugin-add-swift-support": "^1.7.2",
    "cordova-plugin-cocoapod-support": "^1.6.0",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-dialogs": "^2.0.1",
    "cordova-plugin-file": "^6.0.1",
    "cordova-plugin-firebase": "^1.0.5",
    "cordova-plugin-globalization": "^1.11.0",
    "cordova-plugin-inappbrowser": "^3.0.0",
    "cordova-plugin-ionic": "^5.0.3",
    "cordova-plugin-ionic-keyboard": "^2.1.2",
    "cordova-plugin-ionic-webview": "^2.0.2",
    "cordova-plugin-splashscreen": "^5.0.2",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-whitelist": "^1.3.3",
    "firebase": "^5.3.0",
    "ionic-admob": "^0.1.0",
    "ionic-angular": "3.9.2",
    "ionic2-super-tabs": "^4.3.0",
    "ionicons": "3.0.0",
    "moment": "^2.22.2",
    "moment-duration-format": "^2.2.2",
    "promise-polyfill": "^8.0.0",
    "rxjs": "^6.2.2",
    "rxjs-compat": "^6.2.2",
    "sw-toolbox": "3.6.0",
    "underscore": "^1.9.1",
    "zone.js": "0.8.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "3.1.11",
    "@types/moment-duration-format": "^2.2.1",
    "typescript": "~2.6.2"
  },
  "cordova": {
    "plugins": {
      "cordova-plugin-globalization": {},
      "cordova-plugin-file": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-webview": {},
      "cordova-plugin-ionic-keyboard": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-inappbrowser": {},
      "cordova-plugin-firebase": {},
      "cordova-plugin-dialogs": {},
      "cordova-admob-plus": {
        "ADMOB_APPLICATOIN_ID": "ca-app-pub-xxx",
        "PLAY_SERVICES_VERSION": "+"
      }
    },
    "platforms": [
      "ios",
      "android"
    ]
  }

For that reason I will try to switch to cordova-plugin-admob-free.

[iOS] Banner (bottom) overlaps Ionic 3 bottom tab bar

Title says it all. As soon as the banner is loaded / displayed on iOS, it overlays my bottom tab bar. So the navigation is unavailable, as soon as the banner shows. This doesn't happen on Android.

I did not experience this issue with cordova-plugin-admob-free. I've also noticed that the old plugin had the configuration property overlap: boolean(see https://ratson.github.io/cordova-plugin-admob-free/typedef/index.html#static-typedef-BannerConfig) which seems to be missing in admob-plus.

Maybe there is another way to avoid the overlapping on iOS and I'm just missing it.

@ratson @ratson0 Do I need to switch back to the old plugin to get it working again?

Plugin version 0.0.0 - Error on iOs

I getting an error when I try to add the iOS platform to my project.
Failed to install 'cordova-admob-plus': undefined
CordovaError: Promise rejected with non-error: 'Version should contain only numbers and dots'

The current version of the admob-plus plugin is: 0.0.0
> cordova plugin ls cordova-admob-plus 0.0.0 "@admob-plus/cordova"

Allow Showing Multiple Banners

As @Screeze suggested in #2, it could be useful in some case.

Here are questions need to be answered before implementation,

  • Is AdMob terms allow doing so?
  • Any references to existing apps using this strategy?
  • What the API should look like?
  • Could the API be designed without requiring changing single banner use case?

Error on build: All firebase libraries must be either above or below 14.0.0

Is this a bug report?

After installing admob-plus, I was not able to build to android anymore..

Looks like some conflict with Firebase

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [class 'com.google.gms.googleservices.GoogleServicesPlugin']
   > All firebase libraries must be either above or below 14.0.0

Cordova plugins:

cordova-admob-plus 0.0.0 "@admob-plus/cordova"
cordova-plugin-device 1.1.7 "Device"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.4.2 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-support-google-services 1.1.0 "cordova-support-google-services"
ionic-plugin-keyboard 2.2.1 "Keyboard"
mx.ferreyra.callnumber 0.0.2 "Cordova Call Number Plugin"
phonegap-plugin-multidex 1.0.0 "Multidex"
phonegap-plugin-push 2.2.3 "PushPlugin"

Environment

npx: installed 92 in 3.648s

  AdMob Plus Environment Info:
    System:
      OS: Linux 4.15 Ubuntu 16.04.5 LTS (Xenial Xerus)
      CPU: (8) x64 Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz
      Memory: 411.09 MB / 7.66 GB
      Shell: 4.3.48 - /bin/bash
    Binaries:
      Node: 8.1.1 - ~/.nvm/versions/node/v8.1.1/bin/node
      Yarn: 1.9.4 - /usr/bin/yarn
      npm: 6.4.1 - ~/.nvm/versions/node/v8.1.1/bin/npm
    SDKs:
      Android SDK:
        API Levels: 23, 24, 25, 26, 27, 28
        Build Tools: 27.0.3, 28.0.3
        System Images: android-27 | Google APIs Intel x86 Atom
    Languages:
      Java: 1.8.0 - /usr/bin/javac
    npmPackages:
      cordova-admob-plus: ^0.15.0 => 0.15.0 
      cordova-android: 7.1.2 => 7.1.2 
      cordova-ios: ^4.4.0 => 4.5.5 
      cordova-plugin-device: ^1.1.7 => 1.1.7 
      cordova-plugin-splashscreen: ^4.1.0 => 4.1.0 
      cordova-plugin-statusbar: ^2.4.2 => 2.4.2 
      cordova-plugin-whitelist: ^1.3.3 => 1.3.3 
      ionic-plugin-keyboard: ^2.2.1 => 2.2.1 
      phonegap-plugin-push: 2.2.3 => 2.2.3 
    npmGlobalPackages:
      cordova: 8.1.2
      ionic: 4.3.0

AndroidManifest.xml: looks ok

Uncaught TypeError: Object(...) is not a function in ionic-admob/dist/index.js (vendor.js:78042)

Uncaught TypeError: Object(...) is not a function
at vendor.js:78023
at Module../node_modules/ionic-admob/dist/index.js (vendor.js:78042)
at webpack_require (runtime.js:84)
at Module../src/app/app.module.ts (main.js:1701)
at webpack_require (runtime.js:84)
at Module../src/main.ts (main.js:1780)
at webpack_require (runtime.js:84)
at Object.0 (main.js:1802)
at webpack_require (runtime.js:84)

I followed all instructions from the guide. Started with a ionic 4 tabs app. Appears to be an error coming from admob, can you please help?

[iOS] App crash on startup

I experienced an App crash on iOS right at the start.

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value at
AMSPlugin.pluginInitialize() at line GADMobileAds.configure(withApplicationID: applicationID!)

    override func pluginInitialize() {
        super.pluginInitialize()

        banner = AMSBanner(plugin: self)
        interstitial = AMSInterstitial(plugin: self)
        rewardVideo = AMSRewardVideo(plugin: self)

        var applicationID = commandDelegate.settings["ADMOB_APPLICATOIN_ID".lowercased()] as? String
        if applicationID == nil || applicationID == "test" {
            applicationID = testApplicationID
            NSLog("admob is using testApplicationID")
        }
        GADMobileAds.configure(withApplicationID: applicationID!)
    }

applicationID seems to be nil...
...but in the debug-output i could see the message: admob is using testApplicationID (generated 2 lines above) - i dont know how these two fit together.

build environment

Device: Iphone 7, iOS version 12.0

cordova (Cordova CLI) : 8.1.2 ([email protected])
Cordova Platforms : ios 4.5.4
Ionic Framework : ionic-angular 3.9.2
Xcode : Xcode 10.0 Build version 10A255

Google-Mobile-Ads-SDK (7.34.0)
"ionic-admob": "0.3.0",
"cordova-plugin-add-swift-support": "1.7.2"

Solution

I could solve it by adding
<preference name="ADMOB_APPLICATOIN_ID" value="ca-app-pub-1234567890~987654321" />
to my config.xml inside of the ios-platform-block.


I need to add that I had problems getting my project to build after installing the plugin, I did not had CocoaPod installed by then and had to manually run pod install afterwarsds inside of the ios-platform-folder etc.
So maybe something went wrong during the plugin-installation because of that (i saw no errors).

Build FAILS: local variable finalAdUnitID is accessed from within inner class; needs to be declared final

Is this a bug report?

Yes

Environment

npx: Installierte 82 in 5.956s

  AdMob Plus Environment Info:
    System:
      OS: Linux 4.4 Ubuntu 16.04.5 LTS (Xenial Xerus)
      CPU: (4) x64 Intel(R) Core(TM) i5-6600 CPU @ 3.30GHz
      Memory: 1.21 GB / 15.63 GB
      Shell: 4.3.48 - /bin/bash
    Binaries:
      Node: 8.11.4 - /usr/local/bin/node
      Yarn: 1.7.0 - /usr/local/bin/yarn
      npm: 5.6.0 - /usr/local/bin/npm
    SDKs:
      Android SDK:
        API Levels: 19, 25, 26
        Build Tools: 24.0.2, 26.0.2, 27.0.0
        System Images: android-19 | Google APIs Intel x86 Atom, android-21 | Google APIs Intel x86 Atom_64, android-24 | Intel x86 Atom_64
    npmPackages:
      cc.fovea.cordova.purchase: ^7.1.2 => 7.1.2 
      cordova-admob-plus: ^0.8.0 => 0.8.0 
      cordova-admob-sdk: ^0.13.1 => 0.13.1 
      cordova-launch-review: ^3.1.1 => 3.1.1 
      cordova-plugin-app-version: ^0.1.9 => 0.1.9 
      cordova-plugin-calendar: ^4.6.0 => 4.6.0 
      cordova-plugin-compat: ^1.2.0 => 1.2.0 
      cordova-plugin-device: ^2.0.1 => 2.0.1 
      cordova-plugin-dialogs: ^2.0.1 => 2.0.1 
      cordova-plugin-file: ^5.0.0 => 5.0.0 
      cordova-plugin-file-transfer: ^1.7.1 => 1.7.1 
      cordova-plugin-inappbrowser: ^1.7.2 => 1.7.2 
      cordova-plugin-media: ^4.0.0 => 4.0.0 
      cordova-plugin-network-information: ^2.0.1 => 2.0.1 
      cordova-plugin-screen-orientation: ^3.0.1 => 3.0.1 
      cordova-plugin-secure-storage: ^2.6.8 => 2.6.8 
      cordova-plugin-splashscreen: ^4.1.0 => 4.1.0 
      cordova-plugin-statusbar: ^2.3.0 => 2.4.1 
      cordova-plugin-whitelist: ^1.3.3 => 1.3.3 
      cordova-plugin-x-socialsharing: ^5.3.2 => 5.3.2 
      cordova-sqlite-storage: ^2.1.1 => 2.2.1 
      es6-promise-plugin: ^4.2.2 => 4.2.2 
      ionic-plugin-keyboard: ^2.2.1 => 2.2.1 
      phonegap-plugin-push: ^2.1.0 => 2.2.1 
    npmGlobalPackages:
      cordova: 7.1.0
      ionic: 3.20.0

Steps to Reproduce

  1. Add the plugin as described in the documentation -> works
  2. cordova run android

Expected Behavior

Build succeeds ;-)

Actual Behavior

Build fails:

ANDROID_HOME=/home/username/tools/android-sdk
JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre
Subproject Path: CordovaLib
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.

	at build_cv1ozxye12219a7dw6auqz84z.run(/home/username/customers/acme/app_name/app/platforms/android/build.gradle:142)

The JavaCompile.setDependencyCacheDir() method has been deprecated and is scheduled to be removed in Gradle 4.0.

Incremental java compilation is an incubating feature.

The TaskInputs.source(Object) method has been deprecated and is scheduled to be removed in Gradle 4.0. Please use TaskInputs.file(Object).skipWhenEmpty() instead.

:preBuild UP-TO-DATE
:preDebugBuild
 UP-TO-DATE
:checkDebugManifest

:preReleaseBuild
 UP-TO-DATE
:CordovaLib:preBuild
 UP-TO-DATE
:CordovaLib:preDebugBuild
 UP-TO-DATE
:CordovaLib:checkDebugManifest

:CordovaLib:prepareDebugDependencies
:CordovaLib:compileDebugAidl

:CordovaLib:compileDebugNdk
 UP-TO-DATE
:CordovaLib:compileLint

:CordovaLib:copyDebugLint
 UP-TO-DATE
:CordovaLib:mergeDebugShaders

:CordovaLib:compileDebugShaders

:CordovaLib:generateDebugAssets

:CordovaLib:mergeDebugAssets

:CordovaLib:mergeDebugProguardFiles

:CordovaLib:packageDebugRenderscript
 UP-TO-DATE
:CordovaLib:compileDebugRenderscript

:CordovaLib:generateDebugResValues

:CordovaLib:generateDebugResources
:CordovaLib:packageDebugResources

:CordovaLib:processDebugManifest

:CordovaLib:generateDebugBuildConfig

:CordovaLib:processDebugResources

:CordovaLib:generateDebugSources
:CordovaLib:incrementalDebugJavaCompilationSafeguard

:CordovaLib:compileDebugJavaWithJavac

:CordovaLib:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:CordovaLib:processDebugJavaRes UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForDebug

:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForDebug

:CordovaLib:mergeDebugJniLibFolders

:CordovaLib:transformNative_libsWithMergeJniLibsForDebug
:CordovaLib:transformNative_libsWithSyncJniLibsForDebug
:CordovaLib:bundleDebug

:CordovaLib:preReleaseBuild
 UP-TO-DATE
:CordovaLib:checkReleaseManifest
:CordovaLib:prepareReleaseDependencies
:CordovaLib:compileReleaseAidl

:CordovaLib:compileReleaseNdk UP-TO-DATE
:CordovaLib:copyReleaseLint 
UP-TO-DATE
:CordovaLib:mergeReleaseShaders
:CordovaLib:compileReleaseShaders

:CordovaLib:generateReleaseAssets

:CordovaLib:mergeReleaseAssets
:CordovaLib:mergeReleaseProguardFiles

:CordovaLib:packageReleaseRenderscript
 
UP-TO-DATE

:CordovaLib:compileReleaseRenderscript
:CordovaLib:generateReleaseResValues

:CordovaLib:generateReleaseResources

:CordovaLib:packageReleaseResources

:CordovaLib:processReleaseManifest

:CordovaLib:generateReleaseBuildConfig

:CordovaLib:processReleaseResources

:CordovaLib:generateReleaseSources
:CordovaLib:incrementalReleaseJavaCompilationSafeguard

:CordovaLib:compileReleaseJavaWithJavac

:CordovaLib:compileReleaseJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
:CordovaLib:processReleaseJavaRes
 
UP-TO-DATE
:CordovaLib:transformResourcesWithMergeJavaResForRelease

:CordovaLib:transformClassesAndResourcesWithSyncLibJarsForRelease

:CordovaLib:mergeReleaseJniLibFolders

:CordovaLib:transformNative_libsWithMergeJniLibsForRelease

:CordovaLib:transformNative_libsWithSyncJniLibsForRelease

:CordovaLib:bundleRelease

:prepareAndroidArchLifecycleRuntime100Library

:prepareComAndroidSupportSupportCompat2610Library

:prepareComAndroidSupportSupportCoreUi2610Library

:prepareComAndroidSupportSupportCoreUtils2610Library

:prepareComAndroidSupportSupportFragment2610Library

:prepareComAndroidSupportSupportMediaCompat2610Library

:prepareComAndroidSupportSupportV132610Library

:prepareComAndroidSupportSupportV42610Library

:prepareComGoogleAndroidGmsPlayServicesAds1160Library

:prepareComGoogleAndroidGmsPlayServicesAdsLicense1160Library

:prepareComGoogleAndroidGmsPlayServicesAdsLite1160Library

:prepareComGoogleAndroidGmsPlayServicesAdsLiteLicense1160Library

:prepareComGoogleAndroidGmsPlayServicesBase1160Library

:prepareComGoogleAndroidGmsPlayServicesBaseLicense1160Library

:prepareComGoogleAndroidGmsPlayServicesBasement1160Library

:prepareComGoogleAndroidGmsPlayServicesBasementLicense1160Library

:prepareComGoogleAndroidGmsPlayServicesGass1160Library

:prepareComGoogleAndroidGmsPlayServicesGassLicense1160Library

:prepareComGoogleAndroidGmsPlayServicesTasks1160Library

:prepareComGoogleAndroidGmsPlayServicesTasksLicense1160Library

:prepareComGoogleFirebaseFirebaseAnalytics1160Library

:prepareComGoogleFirebaseFirebaseAnalyticsImpl1160Library

:prepareComGoogleFirebaseFirebaseAnalyticsImplLicense1160Library

:prepareComGoogleFirebaseFirebaseAnalyticsLicense1160Library

:prepareComGoogleFirebaseFirebaseCommon1160Library

:prepareComGoogleFirebaseFirebaseCommonLicense1160Library

:prepareComGoogleFirebaseFirebaseCore1160Library

:prepareComGoogleFirebaseFirebaseIid1160Library

:prepareComGoogleFirebaseFirebaseIidLicense1160Library

:prepareComGoogleFirebaseFirebaseMessaging1101Library

:prepareMeLeolinShortcutBadger1117Library

:prepareOrgApacheCordovaCordovaLib630DebugLibrary

:prepareDebugDependencies

:compileDebugAidl

:compileDebugRenderscript

:generateDebugBuildConfig

:generateDebugResValues

:processDebugGoogleServices
Parsing json file: /home/username/customers/acme/app_name/app/platforms/android/google-services.json
:generateDebugResources
:mergeDebugResources

:processDebugManifest

:processDebugResources

:generateDebugSources
:incrementalDebugJavaCompilationSafeguard

:compileDebugJavaWithJavac

:compileDebugJavaWithJavac - is not incremental (e.g. outputs have changed, no previous execution, etc.).

/home/username/customers/acme/app_name/app/platforms/android/src/admob/plugin/interstitial/InterstitialExecutor.java:38: error: local variable finalAdUnitID is accessed from within inner class; needs to be declared final

                createAndLoadInterstitial(finalAdUnitID);
                                          ^
/home/username/customers/acme/app_name/app/platforms/android/src/admob/plugin/interstitial/InterstitialExecutor.java:41: error: local variable callbackContext is accessed from within inner class; needs to be declared final
                callbackContext.sendPluginResult(result);
                ^
/home/username/customers/acme/app_name/app/platforms/android/src/admob/plugin/interstitial/InterstitialExecutor.java:55: error: local variable callbackContext is accessed from within inner class; needs to be declared final
                callbackContext.sendPluginResult(result);
                ^
/home/username/customers/acme/app_name/app/platforms/android/src/admob/plugin/rewardvideo/RewardVideoExecutor.java:115: error: method does not override or implement a method from a supertype
            @Override
            ^
/home/username/customers/acme/app_name/app/platforms/android/src/com/adobe/phonegap/push/FCMService.java:74: error: cannot access zza
    String from = message.getFrom();
                         ^
  class file for com.google.android.gms.common.internal.safeparcel.zza not found
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

5 errors
:compileDebugJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace
 option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.148 secs
Error: /home/username/customers/acme/app_name/app/platforms/android/gradlew: Command failed with exit code 1 Error output:
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
/home/username/customers/acme/app_name/app/platforms/android/src/admob/plugin/interstitial/InterstitialExecutor.java:38: error: local variable finalAdUnitID is accessed from within inner class; needs to be declared final
                createAndLoadInterstitial(finalAdUnitID);
                                          ^
/home/username/customers/acme/app_name/app/platforms/android/src/admob/plugin/interstitial/InterstitialExecutor.java:41: error: local variable callbackContext is accessed from within inner class; needs to be declared final
                callbackContext.sendPluginResult(result);
                ^
/home/username/customers/acme/app_name/app/platforms/android/src/admob/plugin/interstitial/InterstitialExecutor.java:55: error: local variable callbackContext is accessed from within inner class; needs to be declared final
                callbackContext.sendPluginResult(result);
                ^
/home/username/customers/acme/app_name/app/platforms/android/src/admob/plugin/rewardvideo/RewardVideoExecutor.java:115: error: method does not override or implement a method from a supertype
            @Override
            ^
/home/username/customers/acme/app_name/app/platforms/android/src/com/adobe/phonegap/push/FCMService.java:74: error: cannot access zza
    String from = message.getFrom();
                         ^
  class file for com.google.android.gms.common.internal.safeparcel.zza not found
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
5 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

[ERROR] An error occurred while running cordova run android (exit code 1).

BUILD FAILED

/platforms/android/app/src/main/java/admob/plugin/rewardvideo/RewardVideoExecutor.java:36: error: incompatible types: RewardedVideoAd cannot be converted to boolean
PluginResult result = new PluginResult(PluginResult.Status.OK, rewardedVideoAd ? rewardedVideoAd.isLoaded() : false);

[iOS + Android] App crash on startup

I got a similar issue like in #15, but I'm using version 0.6.0 of this plugin.

Also the solution mentioned by @znegva didn't work for me, even with correcting the possible typo in his preference name (ADMOB_APPLICATOIN_ID => ADMOB_APPLICATOIN_ID).

Some logs from iOS app start:

admob is using testApplicationID
<Google> Invalid application ID. Follow instructions at https://goo.gl/QJ4sUK to find your app ID in the AdMob UI.
admob is using testApplicationID
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write ((null))'

Logs from Android app start:

 E  java.lang.RuntimeException: Unable to get provider com.google.android.gms.ads.MobileAdsInitProvider: java.lang.Ille
     galStateException:
 E  ******************************************************************************
 E  * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
 E  * should follow the instructions here: https://goo.gl/fQ2neu to add a valid  *
 E  * App ID inside the AndroidManifest. Google Ad Manager publishers should     *
 E  * follow instructions here: https://goo.gl/h17b6x.                           *
 E  ******************************************************************************
 E      at android.app.ActivityThread.installProvider(ActivityThread.java:5855)
 E      at android.app.ActivityThread.installContentProviders(ActivityThread.java:5444)
 E      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5383)
 E      at android.app.ActivityThread.-wrap2(ActivityThread.java)
 E      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1541)
 E      at android.os.Handler.dispatchMessage(Handler.java:102)
 E      at android.os.Looper.loop(Looper.java:154)
 E      at android.app.ActivityThread.main(ActivityThread.java:6123)
 E      at java.lang.reflect.Method.invoke(Native Method)
 E      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
 E      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
 E  Caused by: java.lang.IllegalStateException:
 E  ******************************************************************************
 E  * The Google Mobile Ads SDK was initialized incorrectly. AdMob publishers    *
 E  * should follow the instructions here: https://goo.gl/fQ2neu to add a valid  *
 E  * App ID inside the AndroidManifest. Google Ad Manager publishers should     *
 E  * follow instructions here: https://goo.gl/h17b6x.                           *
 E  ******************************************************************************
 E      at com.google.android.gms.internal.ads.zzmn.attachInfo(Unknown Source)
 E      at com.google.android.gms.ads.MobileAdsInitProvider.attachInfo(Unknown Source)
 E      at android.app.ActivityThread.installProvider(ActivityThread.java:5852)
 E      ... 10 more

So it looks like the installation of the plugin didn't do well, but the terminal didn't show any error messages. ๐Ÿ˜•

Part of my config.xml:

    <plugin name="cordova-admob-plus" spec="0.6.0">
        <variable name="APP_ID_ANDROID" value="ca-app-pub-123~456" />
        <variable name="APP_ID_IOS" value="ca-app-pub-456~789" />
    </plugin>

Some project / system information:

 ~> ionic info
โœ” Gathering environment info - done!

Ionic:

   ionic (Ionic CLI)  : 4.2.1 (/usr/local/lib/node_modules/ionic)
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.0

Cordova:

   cordova (Cordova CLI) : 8.1.2 ([email protected])
   Cordova Platforms     : android 7.0.0, ios 4.5.5
   Cordova Plugins       : cordova-plugin-ionic 5.1.2, cordova-plugin-ionic-keyboard 2.1.2, cordova-plugin-ionic-webview 2.2.0, (and 23 other plugins)

System:

   Android SDK Tools : 26.1.1 (/Users/svzi/Library/Android/sdk)
   ios-deploy        : 1.9.2
   NodeJS            : v8.11.3 (/usr/local/bin/node)
   npm               : 5.6.0
   OS                : macOS High Sierra
   Xcode             : Xcode 10.0 Build version 10A255

I installed the plugin as described in the README.MD, with both app ids for iOS and Android. I'm using the plugin in an Ionic 3 app.

Any kind of help would be really much appreciated!

Best,
Sven

[Funding Suggestion]

Patreon Page, paypal.me page would be much easier for non-fixed amounts and you would get funding for your name @ratson so that would also cover legacy project admob-free

ERROR Error: Uncaught (in promise): Invalid action

Is this a bug report?

Just created a brand new app to test admob-plus but couldn't make it work..

image

Environment

npx: installed 92 in 8.744s

  AdMob Plus Environment Info:
    System:
      OS: Linux 4.15 Ubuntu 16.04.5 LTS (Xenial Xerus)
      CPU: (8) x64 Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz
      Memory: 528.07 MB / 7.66 GB
      Shell: 4.3.48 - /bin/bash
    Binaries:
      Node: 8.1.1 - ~/.nvm/versions/node/v8.1.1/bin/node
      Yarn: 1.9.4 - /usr/bin/yarn
      npm: 6.4.1 - ~/.nvm/versions/node/v8.1.1/bin/npm
    SDKs:
      Android SDK:
        API Levels: 23, 24, 25, 26, 27, 28
        Build Tools: 27.0.3, 28.0.3
        System Images: android-27 | Google APIs Intel x86 Atom
    Languages:
      Java: 1.8.0 - /usr/bin/javac
    npmPackages:
      cordova-admob-plus: 0.16.0 => 0.16.0 
      cordova-android: 7.1.4 => 7.1.4 
      cordova-plugin-device: ^2.0.2 => 2.0.2 
      cordova-plugin-ionic-keyboard: ^2.1.3 => 2.1.3 
      cordova-plugin-ionic-webview: ^2.2.5 => 2.2.5 
      cordova-plugin-splashscreen: ^5.0.2 => 5.0.2 
      cordova-plugin-statusbar: ^2.4.2 => 2.4.2 
      cordova-plugin-whitelist: ^1.3.3 => 1.3.3 
    npmGlobalPackages:
      cordova: 8.1.2
      ionic: 4.3.0

AndroidManifest.xml: looks ok

Reproducible Demo

https://github.com/lfreneda/ionic-admob-plus-demo

Can't install plugin

Is this a bug report?

Yes, its a bug

Environment

AdMob Plus Environment Info:
System:
OS: macOS High Sierra 10.13.6
CPU: (8) x64 Intel(R) Core(TM) i7-4850HQ CPU @ 2.30GHz
Memory: 318.02 MB / 16.00 GB
Shell: 5.3 - /bin/zsh
Binaries:
Node: 8.9.1 - ~/.nvm/versions/node/v8.9.1/bin/node
Yarn: 1.7.0 - /usr/local/bin/yarn
npm: 6.2.0 - ~/.nvm/versions/node/v8.9.1/bin/npm
SDKs:
Android SDK:
API Levels: 14, 15, 16, 22, 23, 24, 25, 26, 27, 28
Build Tools: 25.0.2, 26.0.2, 27.0.1, 27.0.3
System Images: android-16 | ARM EABI v7a, android-22 | Google APIs Intel x86 Atom_64, android-23 | Google APIs Intel x86 Atom, android-24 | Google APIs Intel x86 Atom, android-27 | Google APIs Intel x86 Atom, android-27 | Google Play Intel x86 Atom
IDEs:
Xcode: /undefined - /usr/bin/xcodebuild
npmPackages:
cordova-admob-plus: ^0.9.3 => 0.9.3
cordova-android: ^7.1.2 => 7.1.2
cordova-browser: ^5.0.4 => 5.0.4
cordova-plugin-crypt-file-ng: git+https://github.com/qhng/cordova-plugin-crypt-file.git => 0.1.0
cordova-plugin-google-analytics: ^1.8.6 => 1.8.6
npmGlobalPackages:
cordova: 8.1.2

AndroidManifest.xml: missing <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" ... />

Steps to Reproduce

  1. cordova plugin add [email protected] --variable APP_ID_ANDROID=ca-app-pub-xxxxxx~xxxx

this command will throw Failed to install 'cordova-admob-plus': TypeError: Path must be a string. Received undefined exception.

Expected Behavior

Plugin should install successfully.

Actual Behavior

Failed to install 'cordova-admob-plus': TypeError: Path must be a string. Received undefined
at assertPath (path.js:28:11)
at Object.join (path.js:1251:7)
at ConfigKeeper_get [as get] (/Volumes/UBUNTU/development/games/pac_rat/platforms/android/cordova/node_modules/cordova-common/src/ConfigChanges/ConfigKeeper.js:45:26)
at /Volumes/UBUNTU/development/games/pac_rat/platforms/android/cordova/node_modules/cordova-common/src/ConfigChanges/ConfigChanges.js:346:51
at Array.forEach ()
at is_conflicting (/Volumes/UBUNTU/development/games/pac_rat/platforms/android/cordova/node_modules/cordova-common/src/ConfigChanges/ConfigChanges.js:339:17)
at PlatformMunger.add_plugin_changes (/Volumes/UBUNTU/development/games/pac_rat/platforms/android/cordova/node_modules/cordova-common/src/ConfigChanges/ConfigChanges.js:132:33)
at /Volumes/UBUNTU/development/games/pac_rat/platforms/android/cordova/node_modules/cordova-common/src/PluginManager.js:123:29
at _fulfilled (/Volumes/UBUNTU/development/games/pac_rat/platforms/android/cordova/node_modules/q/q.js:834:54)
at self.promiseDispatch.done (/Volumes/UBUNTU/development/games/pac_rat/platforms/android/cordova/node_modules/q/q.js:863:30)
Path must be a string. Received undefined

(Write what happened. Please add screenshots!)

Reproducible Demo

(Paste the link to an example project and exact instructions to reproduce the issue.)

Display Interstitial with Onclick event

I want to display the interstitial Ad with an Onclick event.
I did it with Admob free. but Admob plus I can't:
document.addEventListener('deviceready', () => {
admob.interstitial.load({
id: {
// replace with your ad unit IDs
android: 'ca-app-pub-xxx/yyy',
ios: 'ca-app-pub-xxx/zzz',
},
}).then(() => admob.interstitial.show())
}, false)

any solution?
thanks

[iOS] Can't build app with versions 0.12+

Is this a bug report?

Yes.

Environment

I've upgraded yesterday your plugin from version 0.6.0 to 0.12.1 and today 0.13.0. With the old version I could build without an issue.

 ~> npx admob-plus info --clipboard
npx: Installierte 92 in 8.435s

  AdMob Plus Environment Info:
    System:
      OS: macOS High Sierra 10.13.6
      CPU: (4) x64 Intel(R) Core(TM) i5-4288U CPU @ 2.60GHz
      Memory: 705.91 MB / 16.00 GB
      Shell: 3.2.57 - /bin/bash
    Binaries:
      Node: 8.11.3 - /usr/local/bin/node
      Yarn: 1.6.0 - /usr/local/bin/yarn
      npm: 5.6.0 - /usr/local/bin/npm
    SDKs:
      iOS SDK:
        Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
      Android SDK:
        API Levels: 26, 27, 28
        Build Tools: 26.0.2, 27.0.3, 28.0.3
    IDEs:
      Android Studio: 3.1 AI-173.4720617
      Xcode: 10.1/10B61 - /usr/bin/xcodebuild
    Languages:
      Java: 1.8.0 - /usr/bin/javac
    npmPackages:
      cc.fovea.cordova.purchase: ^7.1.3 => 7.1.3
      cordova-admob-plus: ^0.13.0 => 0.13.0
      cordova-android: 7.0.0 => 7.0.0
      cordova-clipboard: 1.2.1 => 1.2.1
      cordova-ios: 4.5.5 => 4.5.5
      cordova-ios-plugin-no-export-compliance: 0.0.5 => 0.0.5
      cordova-plugin-app-version: ^0.1.9 => 0.1.9
      cordova-plugin-appavailability: ^0.4.2 => 0.4.2
      cordova-plugin-apprate: ^1.4.0 => 1.4.0
      cordova-plugin-browsertab: ^0.2.0 => 0.2.0
      cordova-plugin-device: ^2.0.2 => 2.0.2
      cordova-plugin-dialogs: ^2.0.1 => 2.0.1
      cordova-plugin-email-composer: ^0.8.15 => 0.8.15
      cordova-plugin-file: ^6.0.1 => 6.0.1
      cordova-plugin-firebase: ^2.0.5 => 2.0.5
      cordova-plugin-globalization: ^1.11.0 => 1.11.0
      cordova-plugin-inappbrowser: ^3.0.0 => 3.0.0
      cordova-plugin-ionic: ^5.1.2 => 5.1.2
      cordova-plugin-ionic-keyboard: ^2.1.2 => 2.1.2
      cordova-plugin-ionic-webview: ^2.2.0 => 2.2.0
      cordova-plugin-network-information: 2.0.1 => 2.0.1
      cordova-plugin-splashscreen: ^5.0.2 => 5.0.2
      cordova-plugin-statusbar: ^2.4.2 => 2.4.2
      cordova-plugin-whitelist: ^1.3.3 => 1.3.3
      cordova-plugin-x-socialsharing: ^5.4.1 => 5.4.1
    npmGlobalPackages:
      cordova: 8.1.2
      ionic: 4.3.1

AndroidManifest.xml: looks ok

Steps to Reproduce

  1. Add plugin to Ionic3 app.
  2. Try to build iOS app via command line (ionic cordova build ios)

Actual Behavior

I see the following logs:

...
/Users/svzi/development/_own/xxx/app/platforms/ios/xxx/Bridging-Header.h:29:9: note: in file included from /Users/svzi/development/_own/xxx/app/platforms/ios/xxx/Bridging-Header.h:29:
#import "AMSPlugin-Bridging-Header.h"
        ^
/Users/svzi/development/_own/xxx/app/platforms/ios/xxx/Plugins/cordova-admob-plus/AMSPlugin-Bridging-Header.h:2:9: error: 'GoogleMobileAds/GoogleMobileAds.h' file not found
#import <GoogleMobileAds/GoogleMobileAds.h>
        ^
1 error generated.
<unknown>:0: error: failed to emit precompiled header '/Users/svzi/development/_own/xxx/app/platforms/ios/build/sharedpch/Bridging-Header-swift_2UY9OHTLVOSLN-clang_2H1QBL2F1GQ6C.pch' for bridging header '/Users/svzi/development/_own/xxx/app/platforms/ios/xxx/Bridging-Header.h'

** ARCHIVE FAILED **

Reproducible Demo

This shouldn't be hard to track down, but if you really need a demo, I will provide one. Just let me know.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.