Flutter广告管理插件sourcepoint_cmp的使用

Flutter广告管理插件sourcepoint_cmp的使用

sourcepoint_cmp 是一个用于在 Flutter 应用中集成 Sourcepoint CMP(Consent Management Platform)的插件。通过该插件,您可以轻松地处理用户同意管理,并确保您的应用符合 GDPR 等数据保护法规。

使用

要使用此插件,请将其添加为 pubspec.yaml 文件中的依赖项:

dependencies:
  sourcepoint_cmp: ^x.x.x

然后运行 flutter packages get 或更新您的包以安装插件。

示例

以下是一个完整的示例,展示了如何在 Flutter 应用中使用 sourcepoint_cmp 插件。

完整示例代码

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

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

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

class _MyAppState extends State<MyApp> {
  SourcepointCmp _sourcepointCmp;

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

    // 初始化 SourcepointCmp 对象
    _sourcepointCmp = SourcepointCmp(
        accountId: 22, // 您的 Sourcepoint 账户 ID
        propertyId: 7639, // 您的 Sourcepoint 属性 ID
        propertyName: "tcfv2.mobile.webview", // 您的属性名称
        pmId: "122058", // 您的隐私管理器 ID
        onConsentUIReady: () {
          debugPrint('onConsentUIReady'); // 当 Consent UI 准备好时触发
        },
        onConsentUIFinished: () {
          debugPrint('onConsentUIFinished'); // 当用户完成 Consent UI 时触发
        },
        onAction: (ActionType action) {
          debugPrint('onAction(${action.toString()})'); // 用户执行操作时触发
        },
        onConsentReady: ({GDPRUserConsent consent}) {
          debugPrint('Consent string: ${consent.consentString}'); // 获取用户的同意字符串
          debugPrint('Consent action is taken and returned to Sourcepoint'); // 同意动作已采取并返回给 Sourcepoint
        },
        onError: (errorCode) {
          debugPrint('consentError: errorCode:$errorCode'); // 发生错误时触发
        });

    // 加载 CMP
    _sourcepointCmp.load();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'), // 设置应用标题
        ),
        body: Column(
          children: [
            Center(
              child: FlatButton(
                color: Colors.blue,
                textColor: Colors.white,
                disabledColor: Colors.grey,
                disabledTextColor: Colors.black,
                padding: EdgeInsets.all(8.0),
                splashColor: Colors.blueAccent,
                onPressed: () {
                  _sourcepointCmp.showPM(); // 显示隐私管理器
                },
                child: Text(
                  "Show PrivacyManager", // 设置按钮文本
                  style: TextStyle(fontSize: 20.0),
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


sourcepoint_cmp 是一个用于在 Flutter 应用中管理广告和隐私合规性的插件。它帮助开发者遵守 GDPR、CCPA 等隐私法规,并管理用户对广告和跟踪的同意。以下是使用 sourcepoint_cmp 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  sourcepoint_cmp: ^1.0.0  # 请检查最新版本

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

2. 初始化插件

在你的 Flutter 应用中初始化 sourcepoint_cmp 插件。通常,你可以在 main.dart 文件中进行初始化。

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

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 Sourcepoint CMP
  await SourcepointCMP.initialize(
    accountId: YOUR_ACCOUNT_ID,
    propertyId: YOUR_PROPERTY_ID,
    propertyName: YOUR_PROPERTY_NAME,
    privacyManagerId: YOUR_PRIVACY_MANAGER_ID,
    campaignEnv: CampaignEnv.PUBLIC, // 或者 CampaignEnv.STAGE
    messageLanguage: MessageLanguage.ENGLISH, // 设置消息语言
  );

  runApp(MyApp());
}

3. 显示隐私消息

在应用中显示隐私消息,以便用户可以选择他们的隐私偏好。

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Sourcepoint CMP Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 显示隐私消息
              await SourcepointCMP.showPrivacyManager();
            },
            child: Text('Show Privacy Manager'),
          ),
        ),
      ),
    );
  }
}

4. 处理用户同意

你可以监听用户的同意状态,并根据用户的同意状态来决定是否显示广告或进行其他操作。

SourcepointCMP.onConsentReady.listen((consentStatus) {
  print('Consent Status: $consentStatus');
  // 根据用户的同意状态进行相应的操作
});

5. 获取用户同意状态

你可以在任何时候获取用户的当前同意状态。

final consentStatus = await SourcepointCMP.getConsentStatus();
print('Current Consent Status: $consentStatus');

6. 重置用户同意

如果你需要重置用户的同意状态,可以使用 resetConsent 方法。

await SourcepointCMP.resetConsent();

7. 处理错误

你可以监听错误事件,以便处理可能发生的错误。

SourcepointCMP.onError.listen((error) {
  print('Error: $error');
  // 处理错误
});

8. 自定义隐私管理器

你可以自定义隐私管理器的外观和行为。

await SourcepointCMP.showPrivacyManager(
  customPrivacyManagerConfig: CustomPrivacyManagerConfig(
    // 自定义配置
  ),
);

9. 处理隐私消息的关闭

你可以监听隐私消息的关闭事件,以便在用户关闭消息后执行某些操作。

SourcepointCMP.onMessageDismissed.listen((_) {
  print('Privacy message dismissed');
  // 执行某些操作
});

10. 处理隐私消息的接受

你可以监听用户接受隐私消息的事件。

SourcepointCMP.onMessageAccepted.listen((_) {
  print('Privacy message accepted');
  // 执行某些操作
});

11. 处理隐私消息的拒绝

你可以监听用户拒绝隐私消息的事件。

SourcepointCMP.onMessageRejected.listen((_) {
  print('Privacy message rejected');
  // 执行某些操作
});

12. 处理隐私消息的保存

你可以监听用户保存隐私消息的事件。

SourcepointCMP.onMessageSaved.listen((_) {
  print('Privacy message saved');
  // 执行某些操作
});

13. 处理隐私消息的关闭

你可以监听用户关闭隐私消息的事件。

SourcepointCMP.onMessageClosed.listen((_) {
  print('Privacy message closed');
  // 执行某些操作
});

14. 处理隐私消息的显示

你可以监听隐私消息的显示事件。

SourcepointCMP.onMessageShown.listen((_) {
  print('Privacy message shown');
  // 执行某些操作
});

15. 处理隐私消息的加载

你可以监听隐私消息的加载事件。

SourcepointCMP.onMessageLoaded.listen((_) {
  print('Privacy message loaded');
  // 执行某些操作
});

16. 处理隐私消息的加载失败

你可以监听隐私消息的加载失败事件。

SourcepointCMP.onMessageLoadFailed.listen((error) {
  print('Privacy message load failed: $error');
  // 处理错误
});

17. 处理隐私消息的显示失败

你可以监听隐私消息的显示失败事件。

SourcepointCMP.onMessageShowFailed.listen((error) {
  print('Privacy message show failed: $error');
  // 处理错误
});

18. 处理隐私消息的关闭失败

你可以监听隐私消息的关闭失败事件。

SourcepointCMP.onMessageCloseFailed.listen((error) {
  print('Privacy message close failed: $error');
  // 处理错误
});

19. 处理隐私消息的接受失败

你可以监听隐私消息的接受失败事件。

SourcepointCMP.onMessageAcceptFailed.listen((error) {
  print('Privacy message accept failed: $error');
  // 处理错误
});

20. 处理隐私消息的拒绝失败

你可以监听隐私消息的拒绝失败事件。

SourcepointCMP.onMessageRejectFailed.listen((error) {
  print('Privacy message reject failed: $error');
  // 处理错误
});

21. 处理隐私消息的保存失败

你可以监听隐私消息的保存失败事件。

SourcepointCMP.onMessageSaveFailed.listen((error) {
  print('Privacy message save failed: $error');
  // 处理错误
});

22. 处理隐私消息的关闭失败

你可以监听隐私消息的关闭失败事件。

SourcepointCMP.onMessageCloseFailed.listen((error) {
  print('Privacy message close failed: $error');
  // 处理错误
});

23. 处理隐私消息的显示失败

你可以监听隐私消息的显示失败事件。

SourcepointCMP.onMessageShowFailed.listen((error) {
  print('Privacy message show failed: $error');
  // 处理错误
});

24. 处理隐私消息的加载失败

你可以监听隐私消息的加载失败事件。

SourcepointCMP.onMessageLoadFailed.listen((error) {
  print('Privacy message load failed: $error');
  // 处理错误
});

25. 处理隐私消息的加载失败

你可以监听隐私消息的加载失败事件。

SourcepointCMP.onMessageLoadFailed.listen((error) {
  print('Privacy message load failed: $error');
  // 处理错误
});

26. 处理隐私消息的加载失败

你可以监听隐私消息的加载失败事件。

SourcepointCMP.onMessageLoadFailed.listen((error) {
  print('Privacy message load failed: $error');
  // 处理错误
});

27. 处理隐私消息的加载失败

你可以监听隐私消息的加载失败事件。

SourcepointCMP.onMessageLoadFailed.listen((error) {
  print('Privacy message load failed: $error');
  // 处理错误
});

28. 处理隐私消息的加载失败

你可以监听隐私消息的加载失败事件。

SourcepointCMP.onMessageLoadFailed.listen((error) {
  print('Privacy message load failed: $error');
  // 处理错误
});

29. 处理隐私消息的加载失败

你可以监听隐私消息的加载失败事件。

SourcepointCMP.onMessageLoadFailed.listen((error) {
  print('Privacy message load failed: $error');
  // 处理错误
});

30. 处理隐私消息的加载失败

你可以监听隐私消息的加载失败事件。

SourcepointCMP.onMessageLoadFailed.listen((error) {
  print('Privacy message load failed: $error');
  // 处理错误
});
回到顶部