パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v26.3.13

easy_ads_flutter

Easy Ads は、有名な広告パッケージのラッパーであり、広告を簡単に統合できるようにします

AndroidiOS
30日間ダウンロード
246
いいね数
126
Pub ポイント
150

パッケージをインストール

flutter pub add easy_ads_flutter

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

Easy Ads Flutter は、人気のある広告統合パッケージのラッパーであり、Android および iOS の Flutter アプリに広告を追加するプロセスを簡素化します。複雑な設定を抽象化し、バナー広告、インテリスティシャル広告、報酬付き広告の実装に一貫性があり使いやすいインターフェースを提供します。広告SDKに関する深い知識がなくても、アプリを迅速かつ信頼性高くMonetizeしたい開発者向けに設計されており、ボイラープレートコードを削減し、セットアップをスムーズにします。このパッケージは一貫したAPIを通じて主要な広告ネットワークをサポートしており、クロスプラットフォームでの広告管理を効率的かつアクセスしやすくしています。

用途

  • アプリ内広告によるモバイルアプリの収益化
  • 複数プラットフォーム間での広告統合の簡素化
  • バナー、インストゥーシャル、報酬付き広告を素早く追加
  • 広告機能を活用した高速プロトタイピングの有効化
  • 1つのインターフェースを通じて複数の広告ネットワークを管理する

主な機能

  • 複数のネットワーク向けの統合広告API
  • バナー広告、インテーシャル広告、報酬付き広告のサポート
  • 最小限のセットアップと構成
  • クロスプラットフォーム互換性(AndroidおよびiOS)
  • 組み込みのエラーハンドリングとフォールバック

適している対象

  • 広告統合に初めて挑戦するFlutter開発者
  • 迅速な広告実装が必要なアプリ
  • 複数の広告プロバイダーを使用するプロジェクト
  • ボイラープレートを減らしたい開発者
  • 収益化スピードに焦点を当てるスタートアップ

注意事項

  • 完全な機能を実現するには、下位の広告SDKに依存します
  • 直接的なSDKの使用と比較してカスタマイズの選択肢が限られている
  • 高度な広告設定のための追加構成が必要になる場合があります
  • 非常に専門的な広告ワークフローには適していません
  • 広告ネットワークポリシーの遵守が必要です

元の README

関連するソースリポジトリの README 原文のスナップショットです。最新の内容はリポジトリをご覧ください。

Easy Ads Flutter

pub package Last Commits Pull Requests Code size License PayPal

Show some 💙, 👍 the package & ⭐️ the repo to support the project

A plugin to easily integrate AdMob ads into your Flutter app.


⚠ Note

From version 26.3.12, this package supports AdMob only.

If you need Facebook, AppLovin, or Unity ads, you can use the alternative branches:

  • All Ad Networks (AdMob + Facebook + AppLovin + Unity)
    https://github.com/nooralibutt/easy-ads/tree/feature/all-ads-support

  • AdMob + Facebook Only
    https://github.com/nooralibutt/easy-ads/tree/feature/admob-facebook


New Feature: autoLoadAds

We've introduced a new autoLoadAds field in EasyAds initialization:

  • Purpose: Control whether ads are loaded automatically or not.
  • Default: true (ads are loaded automatically on initialization)
  • Usage:
    await EasyAds.instance.initialize(
      adIdManager,
      autoLoadAds: false, // disables automatic ad loading
    );```
    
    

If set to false, ads will not be loaded automatically. You must manually load ads using:

EasyAds.instance.loadAd(adUnitType: AdUnitType.interstitial);

Features

  • Google Mobile Ads (Banner, Native, App Open, Interstitial, Rewarded)
  • JIT (Just-in-Time) ad loading for Interstitial, App Open, and Rewarded ads
  • Simple API for loading and displaying ads
  • Event callbacks for ad lifecycle handling

AdMob Mediation

This plugin supports AdMob Mediation.

You can configure additional ad networks directly in your AdMob dashboard while still using this plugin.

See the official guide:
https://developers.google.com/admob/flutter/mediation/get-started


GDPR and Privacy Options Compliance

A Consent Manager helper is provided to support GDPR and privacy dialogs. ConsentManager.gatherGdprConsent() and ConsentManager.gatherPrivacyConsent()

Platform Specific Setup

iOS
Update your Info.plist
  • The Google Mobile Ads App ID is required in your Info.plist.

Update your app's ios/Runner/Info.plist file to add two keys:

<key>GADApplicationIdentifier</key>
<string>YOUR_SDK_KEY</string>
  • You have to add SKAdNetworkItems for all networks provided by easy-ads-flutter info.plist you can copy paste SKAdNetworkItems in your own project.
Android
Update AndroidManifest.xml
<manifest>
    <application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>

Initialize Ad Ids

import 'dart:io';
import 'package:easy_ads_flutter/easy_ads_flutter.dart';

class TestAdIdManager extends IAdIdManager {
  const TestAdIdManager();

  @override
  AppAdIds? get admobAdIds => AppAdIds(
    appId: Platform.isAndroid
        ? 'ca-app-pub-3940256099942544~3347511713'
        : 'ca-app-pub-3940256099942544~1458002511',
    appOpenId: Platform.isAndroid
        ? 'ca-app-pub-3940256099942544/9257395921'
        : 'ca-app-pub-3940256099942544/5575463023',
    bannerId: Platform.isAndroid
        ? 'ca-app-pub-3940256099942544/9214589741'
        : 'ca-app-pub-3940256099942544/2435281174',
    interstitialId: Platform.isAndroid
        ? 'ca-app-pub-3940256099942544/1033173712'
        : 'ca-app-pub-3940256099942544/4411468910',
    rewardedId: Platform.isAndroid
        ? 'ca-app-pub-3940256099942544/5224354917'
        : 'ca-app-pub-3940256099942544/1712485313',
    nativeBannerId: Platform.isAndroid
        ? 'ca-app-pub-3940256099942544/2247696110'
        : 'ca-app-pub-3940256099942544/3986624511',
  );
}

Initialize the SDK

Before loading ads, have your app initialize the Mobile Ads SDK by calling EasyAds.instance.initialize() which initializes the SDK and returns a Future that finishes once initialization is complete (or after a 30-second timeout). This needs to be done only once, ideally right before running the app.

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

const IAdIdManager adIdManager = TestAdIdManager();

EasyAds.instance.initialize(
    adIdManager,
    adMobAdRequest: const AdRequest(),
    admobConfiguration: RequestConfiguration(testDeviceIds: [
      '072D2F3992EF5B4493042ADC632CE39F', // Mi Phone
      '00008030-00163022226A802E',
    ]),
  );

Interstitial/Rewarded Ads

Load an ad

Ad is automatically loaded after being displayed or first time when you call initialize. But on safe side, you can call this method. This will load both rewarded and interstitial ads. If a particular ad is already loaded, it will not load it again.

EasyAds.instance.loadAd();
Show interstitial or rewarded ad
EasyAds.instance.showAd(AdUnitType.rewarded);
Show appOpen ad
EasyAds.instance.showAd(AdUnitType.appOpen)

Show Banner Ads

This is how you may show banner ad in widget-tree somewhere:

@override
Widget build(BuildContext context) {
  Column(
    crossAxisAlignment: CrossAxisAlignment.stretch,
    children: [
      SomeWidget(),
      const Spacer(),
      EasyBannerAd(adSize: AdSize.largeBanner),
    ],
  );
}

JIT (Just-in-Time) Ads

This package supports JIT (Just-in-Time) ad loading for Interstitial, App Open, and Rewarded ads.
You can show ads on demand, with callbacks for success, failure, and dismissal.

Show JIT App Open
EasyAds.instance.showJitAppOpen(
  onFailedToLoadOrShow: () => _showSnack('AppOpen failed'),
  onAdShowed: () => _showSnack('AppOpen showed'),
  onAdDismissed: () => _showSnack('AppOpen dismissed'),
);
Show JIT Interstitial
EasyAds.instance.showJitInterstitial(
context,
onFailedToLoadOrShow: () => _showSnack('Interstitial failed'),
onAdShowed: () => _showSnack('Interstitial showed'),
onAdDismissed: () => _showSnack('Interstitial dismissed'),
);
Show JIT Rewarded
EasyAds.instance.showJitRewarded(
context,
onEarnedReward: (ctx) => _showSnack('Reward earned!'),
);
Native Ads

You can also create Native Ads and insert them into your widget tree using:

EasyAds.instance.createNativeAd();

Example usage in a widget tree:

@override
Widget build(BuildContext context) {
  return Column(
    children: [
      SomeWidget(),
      EasyAds.instance.createNativeAd(),
      AnotherWidget(),
    ],
  );
}

This ensures native ads are properly loaded and displayed within your UI.

Listening to the callbacks

Declare this object in the class

  StreamSubscription? _streamSubscription;

We are showing InterstitialAd here and also checking if ad has been shown. If true, we are canceling the subscribed callbacks, if any. Then, we are listening to the Stream and accessing the particular event we need

if (EasyAds.instance.showInterstitialAd()) {
  // Canceling the last callback subscribed
  _streamSubscription?.cancel();
  // Listening to the callback from showInterstitialAd()
  _streamSubscription =
  EasyAds.instance.onEvent.listen((event) {
    if (event.adUnitType == AdUnitType.interstitial &&
        event.type == AdEventType.adDismissed) {
      _streamSubscription?.cancel();
      goToNextScreen(countryList[index]);
    }
  });
}

Authors

Noor Ali Butt

GitHub Follow LinkedIn Link

カテゴリー

依存関係

依存関係一覧 3 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。