vungle 0.6.3

  • Readme
  • Changelog
  • Example
  • Installing
  • 69

vungle #

A plugin for Flutter that supports loading and displaying interstitial and rewarded video ads using the Vungle SDK API.

Note: This plugin is in beta, and may still have a few issues and missing APIs. Feedback and Pull Requests are welcome.

Getting Started #

Please go to the Vungle website to create account for your apps at first. You need add your apps there and you will get the app id and placement ids, then use this plugin in your flutter app to do the monetization.

Initialize the plugin #

if (Platfrom.isAndrod) {
  Vungle.init('[vungle_android_app_id]');
} else {
  //for iOS
  Vungle.init('[vungle_ios_app_id]');
}

//You need wait until the plugin initialized to load and show ads
Vungle.onInitializeListener = () {
  //The plugin initialized, can load ads for now
}

Load Interstitial or rewarded video ads #

Vungle.loadAd('[vungle_placement_id]');

//To know if the ad loaded
Vungle.onAdPlayableListener = (placementId, playable) {
  if(playable) {
    //The ad has been loaded, could play it for now.
  }
}

Play Interstitial or rewarded video ads #

if(Vungle.isAdPlayable('[your_placement_id]') {
  Vungle.playAd(placementId);
}

Vungle.onAdStatedListener = (placementId) {
  //Ad started to play  
}

Vungle.onAdFinishedListener = (placementId, isCTAClicked, isCompletedView) {
  //Ad finished to play
  //isCTAClicked - User has clicked the `download` button
  //isCompletedView - User has viewed the video ad completely
  
}

0.6.3 #

  • Add API comments

0.0.1 #

  • Initial Release: not ready for production use

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:io';

import 'package:vungle/vungle.dart';

void main() {
  String appId;
  String placementId;
  if(Platform.isAndroid) {
    appId = '5adff6afb2cadf62871219ff';
    placementId = 'DEFAULT-3224603';
  } else {
    //iOS
    appId = '5aa9e7dc7db3b73d270148e7';
    placementId = 'DEFAULT-1337376';
  }

  var app = MyApp(appId, placementId);
  runApp(app);
}

class MyApp extends StatefulWidget {
  final String placementId;
  final String appId;
  MyApp(this.appId, this.placementId);

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  
  bool sdkInit = false;
  bool adLoaded = false;

  String get appId => widget.appId;
  String get placementId => widget.placementId;

  @override
  void initState() {
    super.initState();

    Vungle.onInitilizeListener = () {
      setState(() {
        sdkInit = true;  
      });
    };

    Vungle.onAdPlayableListener = (placemenId, playable) {
      if(playable) {
        setState(() {
          adLoaded = true;
        });
      }
    };

    Vungle.onAdStartedListener = (placementId) {
      print('ad started');
    };

    Vungle.onAdFinishedListener = (placementId, isCTAClicked, completedView) {
      print('ad finished, isCTAClicked:($isCTAClicked), completedView:($completedView)');
      setState(() {
        adLoaded = false;
      });
    };

  }

  void onInit() {
    Vungle.init(appId);
  }

  void onLoadAd() {
    Vungle.loadAd(placementId);
  }

  void onPlayAd() async {
    if(await Vungle.isAdPlayable(placementId)) {
      Vungle.playAd(placementId);
    } else {
      print('The ad is not ready to play');
    }
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              RaisedButton(child: Text(
                sdkInit ? 'Vungle SDK initialized - $appId' : 'Init Vungle SDK - $appId'
                ), onPressed: sdkInit ? null : onInit,),
              RaisedButton(child: Text(
                adLoaded ? 'Ad Loaded - $placementId' : 'Load Ad - $placementId'
                ), onPressed: adLoaded ? null : onLoadAd,),
              RaisedButton(child: Text(
                'Play Ad - $placementId'
                ), onPressed: adLoaded ? onPlayAd : null,),
              SizedBox(height: 20,),
              Text('Logs:'),
            ],
          ),
        ),
      ),
    );
  }
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  vungle: ^0.6.3

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:vungle/vungle.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
39
Health:
Code health derived from static analysis. [more]
100
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
98
Overall:
Weighted score of the above. [more]
69
Learn more about scoring.

We analyzed this package on Mar 31, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.6
  • Flutter: 1.12.13+hotfix.8

Health suggestions

Format lib/vungle.dart.

Run flutter format to format lib/vungle.dart.

Maintenance suggestions

The package description is too short. (-2 points)

Add more detail to the description field of pubspec.yaml. Use 60 to 180 characters to describe the package, what it does, and its target use case.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.8
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test