linklytics_flutter 1.2.4
linklytics_flutter: ^1.2.4 copied to clipboard
A Flutter plugin for integrating Linklytics analytics into your Flutter applications.
Linklytics Flutter Plugin #
A comprehensive Flutter plugin for integrating Linklytics analytics, deep linking, and community features into your application.
Features #
- 📊 Analytics: Track custom events, user interactions, and app performance.
- 🔗 Deep Linking: Handle deferred deep links (attribution) and universal links.
- 🛠 Dynamic Links: Generate short tracking links programmatically.
- 💬 Community & Blog: Built-in UI for community forums and blogs (powered by Linklytics).
Installation #
Add this to your package's pubspec.yaml file:
dependencies:
linklytics_flutter: ^1.2.4
Then run:
flutter pub get
Usage #
1. Initialization #
Initialize the SDK early in your app's lifecycle (e.g., in main.dart).
import 'package:linklytics_flutter/linklytics_flutter.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// Create an instance
final linklytics = LinklyticsFlutter();
// Initialize with your API Key
await linklytics.initialize(
apiKey: 'YOUR_API_KEY',
isDebug: true, // Enable logs for debugging
);
runApp(MyApp());
}
2. Tracking Events #
Send custom events to track user actions.
final linklytics = LinklyticsFlutter();
await linklytics.sendEvent(
'purchase_completed',
{
'item_id': 'sku_123',
'value': 99.99,
'currency': 'USD'
}
);
3. Handling Deep Links #
Listen for deep links (including deferred links from installs).
// Check for links on app start or when resumed
final linklytics = LinklyticsFlutter();
await linklytics.getLink((DeepLinkRoute route) {
print("Deep Link Received: ${route.route}");
print("Parameters: ${route.parameters}");
// Navigate based on route
if (route.route.contains('/product')) {
// navigatorKey.currentState?.pushNamed(...)
}
});
4. Generating Dynamic Links #
Create short tracking links programmatically to share content.
final linklytics = LinklyticsFlutter();
String? shortUrl = await linklytics.generateLink(
route: 'product/123',
params: {
'referrer': 'user_456',
'source': 'share_button'
},
shortLink: true // Set to false for long URL
);
print("Share this link: $shortUrl");
5. Community & Blogs (UI) #
Linklytics comes with pre-built Community and Blog pages.
Required Setup:
Ensure GetX and Dio are initialized in your app.
void main() {
Get.put(Dio()); // Required for network calls
LinklyticsNavigator.initializeControllers(); // Initialize controllers
runApp(MyApp());
}
Open Community:
ElevatedButton(
onPressed: () {
LinklyticsNavigator.openCommunities();
},
child: Text("Open Community"),
)
Open Blogs:
ElevatedButton(
onPressed: () {
LinklyticsNavigator.openBlogs();
},
child: Text("Read Blog"),
)
6. Promo Codes (New) #
Validate and redeem promo codes for premium access. The SDK handles local persistence of the premium status.
// Check "Active" status (persisted locally)
if (await LinklyticsFlutter.instance.isPromoActive()) {
print("Premium Active until: ${await LinklyticsFlutter.instance.getPromoExpiration()}");
}
// Redeem Code
final result = await LinklyticsFlutter.instance.validatePromoCode('CODE123');
if (result?['valid'] == true) {
final redeem = await LinklyticsFlutter.instance.redeemPromoCode('CODE123');
if (redeem?['success'] == true) {
print("Premium unlocked!");
}
}
7. In-App Purchase Verification #
Verify Apple and Google Play purchases using your backend credentials.
Verify Apple Purchase:
bool isValid = await LinklyticsFlutter().verifyApplePurchase(
receipt: "MIIT...", // Base64 receipt data
);
Verify Google Purchase:
bool isValid = await LinklyticsFlutter().verifyGooglePurchase(
purchaseToken: "token...",
);
8. Affiliate Attribution #
The SDK automatically handles linking purchases to the originating deep link (affiliate link).
- Automatic Tracking: When a user opens the app via a Deep Link, the SDK captures the
attribution_id. - User Identification: An anonymous
app_user_idis generated and persisted. - Purchase Verification: When you call
verifyApplePurchaseorverifyGooglePurchase, these IDs are automatically attached to the request.
No extra code is needed beyond calling the verify methods!
Platform Support #
| Platform | Support | Min Version |
|---|---|---|
| Android | ✅ | API 21+ |
| iOS | ✅ | iOS 11.0+ |
License #
This project is licensed under the MIT License - see the LICENSE file for details.