Search packages, repositories and app categories

Package detailsv3.1.0

flutter_facebook_app_links

A Flutter plugin to catch deferred deep links from Facebbok ads with FB App Links SDK.

AndroidiOS
30-day downloads
2.9K
Likes
41
Pub points
140

Install package

flutter pub add flutter_facebook_app_links

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

A Flutter plugin that enables apps to receive and handle deferred deep links from Facebook ads using the Facebook App Links SDK. It allows developers to track user interactions from Facebook campaigns and direct users to specific content within the app, even if the app wasn't previously installed. The plugin works on both Android and iOS platforms, ensuring seamless integration with Facebook's attribution and deep linking infrastructure.

Use cases

  • Handling Facebook ad click redirects
  • Tracking campaign performance via deep links
  • Enabling post-install deep linking
  • Supporting re-engagement through targeted ads
  • Facilitating personalized user experiences

Key features

  • Deferred deep link support
  • Facebook App Links SDK integration
  • Cross-platform (Android & iOS)
  • Simple API for link handling
  • Automatic link capture on app launch

Suitable for

  • Marketing teams using Facebook ads
  • Apps requiring campaign attribution
  • Developers building referral or onboarding flows
  • Products with dynamic content targeting
  • Mobile apps focused on user acquisition

Considerations

  • Requires Facebook App Links setup in Facebook Developer Console
  • Needs proper URL scheme and app linking configuration
  • May require additional permissions on some devices
  • Limited to Facebook ad sources only
  • Dependent on Facebook SDK version compatibility

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

Flutter Facebook App Links

Flutter plugin for Facebook App Links SDK. This plugin must be used to catch deferred deeplinks sent from Facebook after your app has been installed from a FB ADS.

Getting Started

First of all, if you don't have one already, you must first create an app at Facebook developers: https://developers.facebook.com/

Get your app id (referred to as [APP_ID] below)

Configure Android

For Android configuration, you can follow the same instructions of the Flutter Facebook App Events plugin: Read through the "Getting Started with App Events for Android" tutuorial and in particular, follow step 2 by adding the following into /app/res/values/strings.xml (or into respective debug or release build flavor)

configure inside android/app/main/res/values/strings.xml the above values (without square brackets):

<string name="facebook_app_id">[your_app_id]</string>
<string name="facebook_client_token">[your_client_token]</string>

then, add that string resource reference to your main AndroidManifest.xml file, within ...

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

For iOS configuration, you can follow the same instructions of the Flutter Facebook App Events plugin: Read through the "Getting Started with App Events for iOS" tutuorial and in particular, follow step 4 by opening info.plist "As Source Code" and add the following

  • If your code does not have CFBundleURLTypes, add the following just before the final </dict> element:
<key>CFBundleURLTypes</key>
<array>
  <dict>
  <key>CFBundleURLSchemes</key>
  <array>
    <string>fb[APP_ID]</string>
  </array>
  </dict>
</array>
<key>FacebookAppID</key>
<string>[APP_ID]</string>
<key>FacebookDisplayName</key>
<string>[APP_NAME]</string>
  • If your code already contains CFBundleURLTypes, insert the following:
<array>
 <dict>
 <key>CFBundleURLSchemes</key>
 <array>
   <string>fb[APP_ID]</string>
 </array>
 </dict>
</array>
<key>FacebookAppID</key>
<string>[APP_ID]</string>
<key>FacebookDisplayName</key>
<string>[APP_NAME]</string>

## How to use

import 'dart:io' show Platform;
...
...
/// FB Deferred Deeplinks
void initFBDeferredDeeplinks() async {

  String deepLinkUrl;
  // Platform messages may fail, so we use a try/catch PlatformException.
  try {

    deepLinkUrl = await FlutterFacebookAppLinks.initFBLinks();
    if(Platform.isIOS)
      deepLinkUrl = await FlutterFacebookAppLinks.getDeepLink();

    /// do what you need with the deeplink...
    /// ...
  }catche(e){
    /// in case of error...
  }
}

About Facebook App Links

Please refer to the official SDK documentation for Android and iOS.

IMPORTANT NOTES

User privacy [DO NOT IGNORE]

How documented on Facebook docs, starting from v5.0.0 of the SDK, they introduce a flag for disabling automatic SDK initialization to be GDPR compliant. It means that you should collect user consent before you use call the method initFBLinks() of this plugin and save the user choice. Moreover, you should give the user a chance to revoke their consent in the future. Please keep in mind that this plugin uses FacebookSDK.setAutoInitEnabled(true) in Android and Settings.isAutoInitEnabled = true in iOS by default, so the consent must be granted in your Dart code before you call FlutterFacebookAppLinks.initFBLinks().

Testing deferred deep links

To correctly test deferred deeplinks, DO NOT use the preview of your FB ADS campaign. Instead, use this tool APP ADS HELPER

At the end of the page you will find a "Test deep link" button, click on it and type your custom url scheme (deeplink), for example: myawesomeapp://screen/login

Select the second checkbox (or both). Remember that to make it works, you'll need the Facebook app installed on your device (Android or iPhone) and you must be logged in with the same account you're using in the Facebook Developers console.

Your app doesn't need to be published on the store, simply uninstall it and re-install using Android Studio/VSCode or XCode after you've sent the deferred deep link.

Categories

Source repository

Projects using this package

No data available yet.