Unity Ads Plugin
Unity Ads plugin for Flutter Applications. This plugin is able to display Unity Banner Ads and Unity Video Ads.
If you want to try Unity Mediation (Beta) use Unity Mediation plugin instead of this one.
UnityAds.init(
gameId: 'PROJECT_GAME_ID',
onComplete: () => print('Initialization Complete'),
onFailed: (error, message) => print('Initialization Failed: $error $message'),
);
Set your Game ID. For testing purposes set testMode
to true
.
UnityAds.isInitialized()
can be used to check if the SDK is initialized successfully.
Android only: To change ads behavior in Firebase Test Lab use firebaseTestLabMode
parameter. Possible values:
Mode | Description |
---|---|
disableAds | Ads are not displayed in the Firebase Test Lab (by default) |
showAdsInTestMode | Ads are displayed in test mode. |
showAds | Real ads are displayed, if testMode is false. |
Load a video ad before show it.
UnityAds.load(
placementId: 'PLACEMENT_ID',
onComplete: (placementId) => print('Load Complete $placementId'),
onFailed: (placementId, error, message) => print('Load Failed $placementId: $error $message'),
);
Show a loaded ad.
UnityAds.showVideoAd(
placementId: 'PLACEMENT_ID',
onStart: (placementId) => print('Video Ad $placementId started'),
onClick: (placementId) => print('Video Ad $placementId click'),
onSkipped: (placementId) => print('Video Ad $placementId skipped'),
onComplete: (placementId) => print('Video Ad $placementId completed'),
onFailed: (placementId, error, message) => print('Video Ad $placementId failed: $error $message'),
);
UnityAds.showVideoAd
has serverId
parameter.
To use server-to-server callbacks, you need to set this parameter.
Read more on docs.unity.com.
Place UnityBannerAd
widget in your app.
UnityBannerAd(
placementId: 'PLACEMENT_ID',
onLoad: (placementId) => print('Banner loaded: $placementId'),
onClick: (placementId) => print('Banner clicked: $placementId'),
onFailed: (placementId, error, message) => print('Banner Ad $placementId failed: $error $message'),
)
Read more about privacy consent in Unity Ads documentation.
Use the following code to pass the appropriate consent flags to the Unity Ads SDK:
UnityAds.setPrivacyConsent(<Privacy Consent type>, true)
Run this command:
With Flutter:
$ flutter pub add unity_ads_plugin
This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get
):
dependencies:
unity_ads_plugin: ^0.3.8
Alternatively, your editor might support flutter pub get
. Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:unity_ads_plugin/unity_ads_plugin.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:unity_ads_plugin/unity_ads_plugin.dart';
void main() {
runApp(const UnityAdsExampleApp());
}
class UnityAdsExampleApp extends StatelessWidget {
const UnityAdsExampleApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Unity Ads Example',
home: Scaffold(
appBar: AppBar(
title: const Text('Unity Ads Example'),
),
body: const SafeArea(
child: UnityAdsExample(),
),
),
);
}
}
class UnityAdsExample extends StatefulWidget {
const UnityAdsExample({Key? key}) : super(key: key);
@override
_UnityAdsExampleState createState() => _UnityAdsExampleState();
}
class _UnityAdsExampleState extends State<UnityAdsExample> {
bool _showBanner = false;
Map<String, bool> placements = {
AdManager.interstitialVideoAdPlacementId: false,
AdManager.rewardedVideoAdPlacementId: false,
};
@override
void initState() {
super.initState();
UnityAds.init(
gameId: AdManager.gameId,
testMode: true,
onComplete: () {
print('Initialization Complete');
_loadAds();
},
onFailed: (error, message) => print('Initialization Failed: $error $message'),
);
}
@override
Widget build(BuildContext context) {
return SizedBox(
width: double.infinity,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () {
setState(() {
_showBanner = !_showBanner;
});
},
child: Text(_showBanner ? 'Hide Banner' : 'Show Banner'),
),
ElevatedButton(
onPressed: placements[AdManager.rewardedVideoAdPlacementId] == true
? () => _showAd(AdManager.rewardedVideoAdPlacementId)
: null,
child: const Text('Show Rewarded Video'),
),
ElevatedButton(
onPressed: placements[AdManager.interstitialVideoAdPlacementId] == true
? () => _showAd(AdManager.interstitialVideoAdPlacementId)
: null,
child: const Text('Show Interstitial Video'),
),
],
),
if (_showBanner)
UnityBannerAd(
placementId: AdManager.bannerAdPlacementId,
onLoad: (placementId) => print('Banner loaded: $placementId'),
onClick: (placementId) => print('Banner clicked: $placementId'),
onFailed: (placementId, error, message) =>
print('Banner Ad $placementId failed: $error $message'),
),
],
),
);
}
void _loadAds() {
for (var placementId in placements.keys) {
_loadAd(placementId);
}
}
void _loadAd(String placementId) {
UnityAds.load(
placementId: placementId,
onComplete: (placementId) {
print('Load Complete $placementId');
setState(() {
placements[placementId] = true;
});
},
onFailed: (placementId, error, message) => print('Load Failed $placementId: $error $message'),
);
}
void _showAd(String placementId) {
setState(() {
placements[placementId] = false;
});
UnityAds.showVideoAd(
placementId: placementId,
onComplete: (placementId) {
print('Video Ad $placementId completed');
_loadAd(placementId);
},
onFailed: (placementId, error, message) {
print('Video Ad $placementId failed: $error $message');
_loadAd(placementId);
},
onStart: (placementId) => print('Video Ad $placementId started'),
onClick: (placementId) => print('Video Ad $placementId click'),
onSkipped: (placementId) {
print('Video Ad $placementId skipped');
_loadAd(placementId);
},
);
}
}
class AdManager {
static String get gameId {
if (defaultTargetPlatform == TargetPlatform.android) {
return 'your_android_game_id';
}
if (defaultTargetPlatform == TargetPlatform.iOS) {
return 'your_ios_game_id';
}
return '';
}
static String get bannerAdPlacementId {
return 'your_banner_ad_placement_id';
}
static String get interstitialVideoAdPlacementId {
return 'your_interstitial_video_ad_placement_id';
}
static String get rewardedVideoAdPlacementId {
return 'your_rewarded_video_ad_placement_id';
}
}
Download details:
Author: rebeloid.com
Source: https://github.com/pavelzaichyk/flutter_unity_ads
#flutter #android #web-development #web #advertising #plugin #unity