Flutter广告归因插件flutter_asa_attribution的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter广告归因插件flutter_asa_attribution的使用

flutter_asa_attribution 是一个用于 Flutter 应用的苹果搜索广告归因插件。

iOS

在iOS上使用此插件之前,需要进行一些配置:

  1. 在Xcode项目中添加iAd框架。
  2. 在Xcode项目中添加AdServices框架。
  3. 在Xcode项目中添加AdSupport框架。
  4. 在Xcode项目中添加AppTrackingTransparency框架。

Flutter

如何使用该插件:

import 'package:flutter_asa_attribution/flutter_asa_attribution.dart';

String? token = await FlutterAsaAttribution.instance.attributionToken();

Map<String, dynamic>? data = await FlutterAsaAttribution.instance.requestAttributionDetails()

以下示例展示了当你调用 requestAttributionDetails 方法时接收到的字典结构。此结构适用于iOS版本14.3及以上。

{
  "attribution": true,
  "orgId": 40669820,
  "campaignId": 542370539,
  "conversionType": "Download",
  "clickDate": "2020-04-08T17:17Z",
  "adGroupId": 542317095,
  "countryOrRegion": "US",
  "keywordId": 87675432,
  "creativeSetId": 542317136
}

完整示例代码

以下是完整的示例代码,演示了如何在Flutter应用中使用flutter_asa_attribution插件。

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

import 'package:flutter/services.dart';
import 'package:flutter_asa_attribution/flutter_asa_attribution.dart';

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

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

class _MyAppState extends State<MyApp> {
  String? _token;
  Map<String, dynamic>? _data;

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

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> requestAttributionDetails() async {
    Map<String, dynamic>? data;
    String? token;

    token = await FlutterAsaAttribution.instance.attributionToken();

    try {
      data = await FlutterAsaAttribution.instance.requestAttributionDetails();
    } on PlatformException {
      // Handle errors here
    }

    if (!mounted) return;

    setState(() {
      _token = token;
      _data = data;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: [
            Text('归因令牌: $_token', textAlign: TextAlign.center),
            Text('归因数据: $_data', textAlign: TextAlign.center),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


当然,下面是一个关于如何在Flutter项目中集成和使用flutter_asa_attribution插件的示例代码。这个插件用于处理Apple Search Ads归因数据。

1. 添加依赖

首先,你需要在pubspec.yaml文件中添加flutter_asa_attribution依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_asa_attribution: ^最新版本号  # 请替换为最新的版本号

然后运行flutter pub get来获取依赖。

2. 配置iOS项目

由于flutter_asa_attribution插件主要处理Apple Search Ads的归因数据,因此你需要在iOS项目中进行一些配置。

2.1 在Info.plist中添加配置

确保你的Info.plist文件中包含以下键:

<key>SKAdNetworkItems</key>
<array>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>your.ad.network.identifier</string>
        <key>SKAdNetworkVersion</key>
        <integer>2</integer>
    </dict>
    <!-- 添加更多广告网络标识符,如果需要 -->
</array>

your.ad.network.identifier替换为实际的广告网络标识符。

3. 使用flutter_asa_attribution插件

在你的Flutter项目中,你可以按照以下方式使用flutter_asa_attribution插件:

3.1 导入插件

import 'package:flutter_asa_attribution/flutter_asa_attribution.dart';

3.2 初始化并监听归因数据

你可以在应用的入口点(例如main.dart)中初始化插件并监听归因数据:

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化flutter_asa_attribution插件
  FlutterAsaAttribution.instance.initialize().then((_) {
    // 开始监听归因数据
    FlutterAsaAttribution.instance.attributionStream.listen((attribution) {
      // 处理归因数据
      if (attribution != null) {
        print("Attribution received: ${attribution.toMap()}");
      }
    });
  });

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter ASA Attribution Demo'),
      ),
      body: Center(
        child: Text('Waiting for attribution data...'),
      ),
    );
  }
}

4. 处理归因数据

在上面的代码中,我们监听了attributionStream流,当收到归因数据时,会打印出归因数据的详细信息。你可以根据需要处理这些归因数据,例如更新用户画像、显示特定的广告等。

注意事项

  • 确保你的iOS项目已经正确配置了Apple Search Ads。
  • 归因数据可能不是实时到达的,因此监听流时需要有适当的处理逻辑。
  • 在实际项目中,请确保遵循Apple的隐私政策和指南来处理归因数据。

通过以上步骤,你就可以在Flutter项目中集成并使用flutter_asa_attribution插件来处理Apple Search Ads的归因数据了。

回到顶部