Flutter联盟营销插件insert_affiliate_flutter_sdk的使用
Flutter联盟营销插件insert_affiliate_flutter_sdk的使用
插件概述
Insert Affiliate Flutter SDK 是为Flutter应用程序设计的,旨在与 Insert Affiliate平台 轻松集成。该插件简化了iOS应用中带有应用内购买(In-App Purchases)的联盟营销,使开发者能够为联盟跟踪和货币化创建无缝的用户体验。
功能特性
- 唯一设备ID: 创建一个唯一ID以匿名方式将购买与用户关联起来进行跟踪。
- 联盟标识符管理: 基于用户特定链接设置和检索联盟标识符。
- 应用内购买初始化: 简单地重新初始化应用内购买,并可以选择使用联盟标识符进行验证。
开始使用
要开始使用 Insert Affiliate Flutter SDK,请遵循以下步骤:
安装
在项目的 pubspec.yaml 文件中添加以下依赖项:
dependencies:
  flutter:
    sdk: flutter
  insert_affiliate_flutter_sdk: <最新版本>
  shared_preferences: <最新版本>
  http: <最新版本>
然后在终端运行以下命令以获取所需的包:
$ flutter pub get
基本用法
导入SDK
在主Dart文件中导入SDK:
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:insert_affiliate_flutter_sdk/insert_affiliate_flutter_sdk.dart';
在Main.dart中初始化
确保在应用程序生命周期的早期初始化 Insert Affiliate Flutter SDK,通常是在 Main.dart 文件中完成。
import 'package:insert_affiliate_flutter_sdk/insert_affiliate_flutter_sdk.dart';
late final InsertAffiliateFlutterSDK insertAffiliateSdk;
void main() async {
    // 确保Flutter已初始化后再运行异步代码
    WidgetsFlutterBinding.ensureInitialized();
    // 重要:您的深度链接平台(例如Branch.io)以及收据验证平台(如果使用第三方平台如RevenueCat/Iaptic),必须在Insert Affiliate SDK之前初始化。
    // 初始化Insert Affiliate SDK
    insertAffiliateSdk = InsertAffiliateFlutterSDK(
        companyCode: "{{ your_company_code }}",
    );
    runApp(MyApp());
}
- 将 {{ your_company_code }}替换为您Insert Affiliate账户关联的唯一公司代码。您可以在仪表板的设置中找到此代码。
应用内购买设置 [必需]
Insert Affiliate需要一个收据验证平台来验证应用内购买。您必须选择我们的支持合作伙伴之一:
选项1:RevenueCat集成
代码设置
- 安装RevenueCat SDK - 首先,按照RevenueCat SDK安装指南设置应用内购买和订阅。
- 修改初始化代码 - 更新您初始化深度链接(例如Branch.io)和RevenueCat的文件,包含对 insertAffiliateSdk.returnInsertAffiliateIdentifier()的调用。这确保每次应用启动或深度链接点击时都会传递Insert Affiliate标识符到RevenueCat。
- 实现示例
import 'dart:async';
import 'package:purchases_flutter/purchases_flutter.dart';
import 'package:insert_affiliate_flutter_sdk/insert_affiliate_flutter_sdk.dart';
class _MyAppState extends State<MyApp> {
    @override
    void initState() {
        super.initState();
        _initializeAsyncDependencies();
    }
    Future<void> _initializeAsyncDependencies() async {
        // 第一步:初始化RevenueCat
        await _initializeRevenueCat();
        // 第二步:处理初始联盟标识符
        handleAffiliateIdentifier();
        // 第三步:监听深度链接(以Branch.io为例)
        _branchStreamSubscription = FlutterBranchSdk.listSession().listen((data) {
            if (data.containsKey("+clicked_branch_link") && data["+clicked_branch_link"] == true) {
                final referringLink = data["~referring_link"];
                insertAffiliateSdk.setInsertAffiliateIdentifier(referringLink);
                // 处理深度链接点击后的联盟标识符
                handleAffiliateIdentifier();
            }
        }, onError: (error) {
            print('listSession error: ${error.toString()}');
        });
    }
    void handleAffiliateIdentifier() {
        insertAffiliateSdk.returnInsertAffiliateIdentifier().then((value) {
            if (value != null && value.isNotEmpty) {
                Purchases.logIn(value); // 使用联盟ID登录到RevenueCat
            }
        });
    }
}
Webhook设置
接下来,您需要设置一个Webhook,以便我们可以直接与RevenueCat通信以跟踪联盟购买。
- 
转到RevenueCat并创建一个新的Webhook: - URL: https://api.insertaffiliate.com/v1/api/revenuecat-webhook
- 授权头: 使用您Insert Affiliate仪表板中的值(您将在步骤4中获取此值)
 
- URL: 
- 
- 导航到验证设置
- 将应用内购买验证方法设置为 RevenueCat
 
- 
返回您的Insert Affiliate仪表板: - 查找 RevenueCat Webhook Authentication Header值
- 复制此值
- 将其作为授权头值粘贴到RevenueCat Webhook配置中
 
- 查找 
选项2:Iaptic集成
首先,完成AIP购买Flutter库的设置。然后修改您的 main.dart 文件:
import 'package:in_app_purchase/in_app_purchase.dart';
import 'package:insert_affiliate_flutter_sdk/insert_affiliate_flutter_sdk.dart';
late final InsertAffiliateFlutterSDK insertAffiliateSdk;
class _MyAppState extends State<MyApp> {
    final InAppPurchase _iap = InAppPurchase.instance;
    @override
    void initState() {
        super.initState();
        _purchaseStream.listen((List<PurchaseDetails> purchaseDetailsList) {
          _listenToPurchaseUpdated(purchaseDetailsList);
        });
    }
    void _listenToPurchaseUpdated(List<PurchaseDetails> purchaseDetailsList) async {
        for (var purchaseDetails in purchaseDetailsList) {
            if (purchaseDetails.status == PurchaseStatus.purchased) {
                final jsonIapPurchase = {
                    'transactionReceipt': purchaseDetails.verificationData.localVerificationData,
                    'orderId': purchaseDetails.purchaseID,
                    'purchaseToken': purchaseDetails.verificationData.serverVerificationData,
                    'signature': purchaseDetails.verificationData.localVerificationData,
                    'applicationUsername': await insertAffiliateSdk.returnInsertAffiliateIdentifier(),
                };
                final isValid = await insertAffiliateSdk.validatePurchaseWithIapticAPI(
                    jsonIapPurchase,
                    "{{ your_iaptic_app_id }}",
                    "{{ your_iaptic_app_name }}",
                    "{{ your_iaptic_public_key }}"
                );
                // 可选:根据需要处理 `isValid` 的结果
            }
        }
    }
}
替换以下内容:
- {{ your_iaptic_app_id }}为您的Iaptic App ID
- {{ your_iaptic_app_name }}为您的Iaptic App Name
- {{ your_iaptic_public_key }}为您的Iaptic公钥
深度链接设置 [必需]
Insert Affiliate需要一个深度链接平台来为您的联盟创建链接。我们的平台可以与任何深度链接提供商配合使用,您只需遵循以下步骤:
- 创建深度链接 在您选择的第三方平台上创建深度链接,并在联盟注册时将其传递给我们。
- 处理深度链接点击 在您的应用中通过传递点击的链接:insertAffiliateSdk.setInsertAffiliateIdentifier(data["~referring_link"]);
使用Branch.io进行深度链接
要使用Branch.io设置深度链接,请按照以下步骤操作:
- 在Branch中创建深度链接并在联盟注册时传递给我们。
- 示例:创建联盟。
 
- 修改 Main.dart中的深度链接处理逻辑- 在设置好Branch集成后,在iOS应用中添加以下代码以初始化Insert Affiliate SDK:import 'package:flutter_branch_sdk/flutter_branch_sdk.dart'; import 'package:insert_affiliate_flutter_sdk/insert_affiliate_flutter_sdk.dart'; late final InsertAffiliateFlutterSDK insertAffiliateSdk; class _MyAppState extends State<MyApp> { late StreamSubscription<Map> _branchStreamSubscription; @override void initState() { super.initState(); _branchStreamSubscription = FlutterBranchSdk.listSession().listen((data) { if (data.containsKey("+clicked_branch_link") && data["+clicked_branch_link"] == true) { insertAffiliateSdk.setInsertAffiliateIdentifier(data["~referring_link"]); } }, onError: (error) { print('Branch session error: ${error.toString()}'); }); } }
 
- 在设置好Branch集成后,在iOS应用中添加以下代码以初始化Insert Affiliate SDK:
其他功能
1. 事件跟踪(测试版)
InsertAffiliateFlutter SDK 现在包括一个事件跟踪的测试版功能。使用事件跟踪来记录关键用户行为,例如注册、购买或推荐。这有助于:
- 理解用户行为。
- 衡量营销活动的有效性。
- 激励联盟对于最终用户采取的指定操作(不仅仅是应用内购买)。
在此阶段,我们无法保证此功能完全防篡改或防操纵。
使用 trackEvent
要跟踪事件,请使用 trackEvent 函数。确保首先设置联盟标识符;否则,事件跟踪将无法工作。以下是示例:
import 'package:insert_affiliate_flutter_sdk/insert_affiliate_flutter_sdk.dart';
ElevatedButton(
  onPressed: () {
    insertAffiliateSdk.trackEvent(eventName: "yourEventIdentifier")
      .then((_) => print('Event tracked successfully!'))
      .catchError((error) => print('Error tracking event: $error'));
  },
  child: Text("Track Test Event"),
);
2. 短码(测试版)
什么是短码?
短码是联盟可以用来推广产品或订阅的独特10个字符的字母数字标识符。这些代码非常适合影响者或合作伙伴,比长URL更容易分享。
示例用例:一位影响者在其TikTok视频描述中推广了一个订阅,短码为 “JOIN123456”。当用户在您的应用中输入此代码时,应用会将订阅跟踪回该影响者以进行佣金支付。
更多详细信息,请访问Insert Affiliate短码文档。
设置短码
使用 setShortCode 方法将短码与联盟关联起来。这适用于用户通过输入字段、弹出窗口或其他UI元素输入短码的场景。
短码必须满足以下条件:
- 恰好 10个字符长。
- 包含仅 字母和数字(字母数字字符)。
- 替换 {{ user_entered_short_code }}为用户通过您选择的输入方法输入的短码,即输入字段/弹出窗口元素。
示例集成
以下是用户可以通过输入短码并与联盟帐户关联的示例SwiftUI实现:
late final InsertAffiliateFlutterSDK insertAffiliateSdk;
ElevatedButton(
    onPressed: () => insertAffiliateSdk.setShortCode("B2SC6VRSKQ"),
    child: Text("Set Short Code"),
)
示例用法
设置联盟标识符(用于跟踪):
InsertAffiliateSwift.setInsertAffiliateIdentifier(referringLink: "your_affiliate_link")
更多关于Flutter联盟营销插件insert_affiliate_flutter_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter联盟营销插件insert_affiliate_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
insert_affiliate_flutter_sdk 是一个用于在 Flutter 应用中集成联盟营销功能的插件。通过该插件,开发者可以轻松地在应用中集成联盟营销链接,跟踪用户的点击和转化,从而为应用带来额外的收入来源。
以下是如何使用 insert_affiliate_flutter_sdk 的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml 文件中添加 insert_affiliate_flutter_sdk 的依赖。
dependencies:
  flutter:
    sdk: flutter
  insert_affiliate_flutter_sdk: ^1.0.0  # 请根据实际情况使用最新版本
然后运行 flutter pub get 来获取依赖。
2. 初始化 SDK
在你的 Flutter 应用启动时,通常是在 main.dart 文件中,初始化 insert_affiliate_flutter_sdk。
import 'package:flutter/material.dart';
import 'package:insert_affiliate_flutter_sdk/insert_affiliate_flutter_sdk.dart';
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化 SDK
  await InsertAffiliateFlutterSdk.init(
    apiKey: 'YOUR_API_KEY',
    appId: 'YOUR_APP_ID',
    userId: 'YOUR_USER_ID',  // 可选
  );
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Affiliate Demo',
      home: HomeScreen(),
    );
  }
}
3. 创建联盟营销链接
你可以使用 InsertAffiliateFlutterSdk 提供的 API 来创建联盟营销链接。
class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Affiliate Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () async {
            // 创建联盟营销链接
            String affiliateLink = await InsertAffiliateFlutterSdk.createAffiliateLink(
              productId: 'PRODUCT_ID',
              campaignId: 'CAMPAIGN_ID',  // 可选
            );
            // 打开链接或分享链接
            print('Affiliate Link: $affiliateLink');
            // 你可以使用 url_launcher 等插件打开链接
          },
          child: Text('Create Affiliate Link'),
        ),
      ),
    );
  }
}
4. 跟踪点击和转化
insert_affiliate_flutter_sdk 会自动跟踪用户的点击和转化。你可以通过后台管理界面查看相关的统计数据。
5. 处理回调(可选)
你可以设置回调函数来处理用户的点击和转化事件。
InsertAffiliateFlutterSdk.setClickCallback((clickData) {
  print('User clicked on affiliate link: $clickData');
});
InsertAffiliateFlutterSdk.setConversionCallback((conversionData) {
  print('User converted: $conversionData');
}); 
        
       
             
             
            

