패키지, 저장소 및 앱 카테고리 검색

패키지 상세v26.3.13

easy_ads_flutter

Easy Ads는 유명한 광고 패키지의 래퍼로, 광고를 쉽게 통합할 수 있게 해줍니다

AndroidiOS
30일 다운로드
246
좋아요
126
Pub 점수
150

패키지 설치

flutter pub add easy_ads_flutter

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

Easy Ads Flutter는 인기 있는 광고 통합 패키지의 래퍼로, 안드로이드 및 iOS에서 Flutter 앱에 광고를 추가하는 과정을 간소화합니다. 복잡한 설정을 추상화하고 배너, 인터스티셜, 리워드 광고 구현을 위한 통합되고 사용하기 쉬운 인터페이스를 제공합니다. 광고 SDK에 대한 깊은 지식 없이도 앱을 신속하고 신뢰성 있게 수익화하고자 하는 개발자를 위해 설계되었으며, 반복 코드를 줄이고 설치 프로세스를 간소화합니다. 이 패키지는 일관된 API를 통해 주요 광고 네트워크를 지원하여 크로스플랫폼 광고 관리가 효율적이고 접근 가능하게 만듭니다.

사용 사례

  • 앱 내 광고를 통한 모바일 앱 수익화
  • 다양한 플랫폼 간 광고 통합 간소화
  • 빠르게 배너, 인터스티셜 및 보상 광고 추가
  • 광고 기능을 활용한 빠른 프로토타이핑 활성화
  • 하나의 인터페이스를 통해 여러 광고 네트워크를 관리하기

주요 기능

  • 다중 네트워크용 통합 광고 API
  • 배너, 인터스티셜 및 보상 광고 지원
  • 최소한의 설정 및 구성
  • 크로스 플랫폼 호환성 (Android 및 iOS)
  • 내장된 오류 처리 및 백업

적합한 대상

  • 광고 통합에 처음 도전하는 플러터 개발자
  • 빠른 광고 구현이 필요한 앱
  • 여러 광고 공급업체를 사용하는 프로젝트
  • 부가적인 코드를 줄이려는 개발자
  • 수익화 속도에 중점을 둔 스타트업

고려 사항

  • 완전한 기능을 위해 하위 광고 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 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.