Flutter Facebook广告集成插件facebook_ads_module的使用

Flutter Facebook广告集成插件facebook_ads_module的使用

开始使用

本项目是一个用于Flutter的插件包,该插件包包含了针对Android和iOS平台的特定实现代码。

为了帮助你开始Flutter开发,你可以查看在线文档,它提供了教程、示例、移动开发指南以及完整的API引用。

示例代码

以下是一个简单的示例,展示如何在Flutter应用中集成Facebook广告。

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  // 初始化Facebook广告插件
  final FacebookAdsModule facebookAdsModule = FacebookAdsModule();

  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化广告
    initAd();
  }

  // 初始化广告的方法
  Future<void> initAd() async {
    try {
      await facebookAdsModule.initialize(
        appId: "YOUR_FACEBOOK_APP_ID", // 你的Facebook应用ID
        testDevices: ["EMULATOR"], // 测试设备(可选)
      );
      print("Facebook Ads Module initialized successfully.");
    } catch (e) {
      print("Failed to initialize Facebook Ads Module: $e");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Facebook Ads Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // 显示广告
              showInterstitialAd();
            },
            child: Text('Show Ad'),
          ),
        ),
      ),
    );
  }

  // 显示插屏广告的方法
  Future<void> showInterstitialAd() async {
    try {
      await facebookAdsModule.showInterstitialAd(
        placementId: "YOUR_PLACEMENT_ID", // 你的插屏广告位ID
      );
      print("Interstitial ad shown successfully.");
    } catch (e) {
      print("Failed to show interstitial ad: $e");
    }
  }
}

更多关于Flutter Facebook广告集成插件facebook_ads_module的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter Facebook广告集成插件facebook_ads_module的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


要在Flutter中集成Facebook广告,你可以使用 flutter_facebook_ads 插件。这个插件提供了对Facebook Audience Network广告的支持,包括横幅广告、插页式广告、原生广告和奖励视频广告。

以下是使用 flutter_facebook_ads 插件集成Facebook广告的步骤:

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 flutter_facebook_ads 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_facebook_ads: ^3.0.0 # 请检查最新版本

然后运行 flutter pub get 来安装依赖。

2. 配置Android项目

android/app/src/main/AndroidManifest.xml 文件中添加以下权限和元数据:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.your_app">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application
        android:label="Your App"
        android:icon="@mipmap/ic_launcher">

        <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />

        <activity
            android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:label="@string/app_name" />

        <activity
            android:name="com.facebook.CustomTabActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="@string/fb_login_protocol_scheme" />
            </intent-filter>
        </activity>

    </application>
</manifest>

android/app/src/main/res/values/strings.xml 文件中添加你的Facebook App ID:

<resources>
    <string name="facebook_app_id">YOUR_FACEBOOK_APP_ID</string>
    <string name="fb_login_protocol_scheme">fbYOUR_FACEBOOK_APP_ID</string>
</resources>

3. 配置iOS项目

ios/Runner/Info.plist 文件中添加以下配置:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fbYOUR_FACEBOOK_APP_ID</string>
        </array>
    </dict>
</array>
<key>FacebookAppID</key>
<string>YOUR_FACEBOOK_APP_ID</string>
<key>FacebookDisplayName</key>
<string>Your App Name</string>
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-share-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
</array>

4. 初始化插件

在你的 main.dart 文件中初始化 flutter_facebook_ads 插件:

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FacebookAudienceNetwork.init();
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Facebook Ads',
      home: HomeScreen(),
    );
  }
}

5. 显示广告

你可以使用 flutter_facebook_ads 插件来显示不同类型的广告。以下是一些示例:

横幅广告

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

class BannerAdExample extends StatefulWidget {
  [@override](/user/override)
  _BannerAdExampleState createState() => _BannerAdExampleState();
}

class _BannerAdExampleState extends State<BannerAdExample> {
  BannerAd _bannerAd;

  [@override](/user/override)
  void initState() {
    super.initState();
    _bannerAd = BannerAd(
      placementId: "YOUR_PLACEMENT_ID",
      listener: (result, value) {
        print("Banner Ad: $result --> $value");
      },
    )..load();
  }

  [@override](/user/override)
  void dispose() {
    _bannerAd.dispose();
    super.dispose();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Banner Ad Example"),
      ),
      body: Center(
        child: _bannerAd == null
            ? CircularProgressIndicator()
            : Container(
                height: 50.0,
                child: AdWidget(ad: _bannerAd),
              ),
      ),
    );
  }
}

插页式广告

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

class InterstitialAdExample extends StatefulWidget {
  [@override](/user/override)
  _InterstitialAdExampleState createState() => _InterstitialAdExampleState();
}

class _InterstitialAdExampleState extends State<InterstitialAdExample> {
  InterstitialAd _interstitialAd;

  [@override](/user/override)
  void initState() {
    super.initState();
    _loadInterstitialAd();
  }

  void _loadInterstitialAd() {
    _interstitialAd = InterstitialAd(
      placementId: "YOUR_PLACEMENT_ID",
      listener: (result, value) {
        if (result == InterstitialAdResult.LOADED) {
          _interstitialAd.show();
        }
        if (result == InterstitialAdResult.DISMISSED) {
          _loadInterstitialAd();
        }
      },
    )..load();
  }

  [@override](/user/override)
  void dispose() {
    _interstitialAd.dispose();
    super.dispose();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Interstitial Ad Example"),
      ),
      body: Center(
        child: Text("Interstitial Ad Example"),
      ),
    );
  }
}
回到顶部