# Xamarin Forms Android >[!NOTE] >The following integration instructions are relevant for SDK 3.0 or higher.
Follow our migration instructions to [upgrade from SDK 2.x to 3.0](/migration-docs/README.md) or refer to our [2.x integration instruction](https://github.com/pendo-io/pendo-mobile-sdk/blob/2.22.5/README.md). >[!IMPORTANT] >Requirements: >- .NET 4 >- Xamarin.Forms version 5.0.0.2612 or higher >- Kotlin version 1.9.0 or higher ## Step 1. Install Pendo SDK 1. In **Visual Studio** Solution Explorer, right-click on your shared project, then select "Add" - > "Add NuGet Packages…". 2. Search for: **pendo-xamarin-forms** with latest version.
3. Press **Add Package**. 4. #### Using ProGuard / R8 - If you are using **ProGuard**, the rules that need to be added to ProGuard can be found here: [pendo-proguard.cfg](/android/pnddocs/pendo-proguard.cfg). - If you are using **ProGuard(D8/DX only)** to perform compile-time code optimization, and have `{Android SDK Location}/tools/proguard/proguard-android-optimize.txt`, add `!code/allocation/variable` to the `-optimizations` line in your `app/proguard-rules.pro` file. The optimizations line should look like this: `-optimizations *other optimizations*,!code/allocation/variable` ## Step 2. Integrate with the Pendo SDK >[!NOTE] >Find your API key in the Pendo UI under `Settings` > `Subscription settings` > select an app > `App Details`. 1. #### Open the shared project **App.xaml.cs** Add the following under 'using': ```c# using PendoSDKXamarin; namespace ExampleApp { public partial class App : Application { private static IPendoInterface pendo = DependencyService.Get(); ... } } ``` In the **protected override void OnStart()** method, add the following code: ```c# protected override void OnStart() { string apiKey = "YOUR_API_KEY_HERE"; pendo.Setup(apiKey); ... } ``` 2. #### Start the visitor's session in the Page where your visitor is being identified (e.g., login, register, etc.). ```c# using PendoSDKXamarin; namespace ExampleApp { class ExampleLoginClass { ... private static IPendoInterface Pendo = DependencyService.Get(); public void MethodExample() { ... var visitorId = "VISITOR-UNIQUE-ID"; var accountId = "ACCOUNT-UNIQUE-ID"; var visitorData = new Dictionary { { "age", 27 }, { "country", "USA" } }; var accountData = new Dictionary { { "Tier", 1 }, { "Size", "Enterprise" } }; pendo.StartSession(visitorId, accountId, visitorData, accountData); ... } ... } ``` **visitorId**: a user identifier (e.g., John Smith) **visitorData**: the user metadata (e.g., email, phone, country, etc.) **accountId**: an affiliation of the user to a specific company or group (e.g., Acme inc.) **accountData** : the account metadata (e.g., tier, level, ARR, etc.) This code ends the previous mobile session (if applicable), starts a new mobile session, and retrieves all guides based on the provided information. >[!TIP] >To begin a session for an anonymous visitor, pass ```null``` or an empty string ```""``` as the Visitor ID. You can call the `startSession` API more than once and transition from an anonymous session to an identified session (or even switch between multiple identified sessions). ## Step 3. Connect mobile device for tagging and testing >[!NOTE] >Find your scheme ID in the Pendo UI under `Settings` > `Subscription settings` > select an app > `App Details`. This step enables Page tagging and guide testing capabilities. Add the following **activity** to the application **AndroidManifest.xml** in the `` tag: ```xml ``` ## Step 4. Verify installation 1. Test using Visual Studio: Run the app. Review the Android Studio logcat and look for the following message: `Pendo SDK was successfully integrated and connected to the server.` 2. In the Pendo UI, go to `Settings` > `Subscription Settings`. 3. Select your application from the list. 4. Select the `Install Settings tab` and follow the instructions under `Verify Your Installation` to ensure you have successfully integrated the Pendo SDK. 5. Confirm that you can see your app as `Integrated` under subscription settings. ------------- ## Developer documentation - API documentation available [here](/api-documentation/xamarin-forms-apis.md). ## Troubleshooting - For technical issues, please [review open issues](https://github.com/pendo-io/pendo-mobile-sdk/issues) or [submit a new issue](https://github.com/pendo-io/pendo-mobile-sdk/issues). - See our [release notes](https://developers.pendo.io/category/mobile-sdk/). - For additional documentation, visit our [Help Center](https://support.pendo.io/hc/en-us/categories/23324531103771-Mobile-implementation).