# Taplytics Destination

## Destination Info

* Accepts [Page](/docs/segment/connections/spec/page), [Group](/docs/segment/connections/spec/group), [Identify](/docs/segment/connections/spec/identify), [Track](/docs/segment/connections/spec/track) calls.
* Refer to it as **Taplytics** in the [Integrations object.](/docs/segment/guides/filtering-data/#filtering-with-the-integrations-object)

### Components

* [Browser](https://github.com/segment-integrations/analytics.js-integration-taplytics)
* [iOS](https://github.com/segment-integrations/analytics-ios-integration-taplytics)
* [Android](https://github.com/segment-integrations/analytics-android-integration-taplytics)

## Connection Modes

[Learn more about connection modes.](/docs/segment/connections/destinations/#connection-modes)

### Device-Mode

* web: yes
* mobile: yes
* server: no

### Cloud-Mode

* web: no
* mobile: no
* server: no

Our Taplytics destination code is open sourced on GitHub. Feel free to check it out: [iOS](https://github.com/segment-integrations/analytics-ios-integration-taplytics), [Android](https://github.com/segment-integrations/analytics-android-integration-taplytics).

## Getting Started

Once the Segment library is integrated with your app, add your API key and select your settings then toggle Taplytics on in your Segment destinations. These new settings will take up to an hour to propagate to your existing users. For new users it'll be instantaneous!

Follow the below steps for destination

### iOS

To get started with Taplytics on iOS, first integrate your app with the Taplytics [iOS](/docs/segment/connections/sources/catalog/libraries/mobile/ios) library. To get the API key, [login](https://taplytics.com/) to your account, select the App on the top left then click into the Settings menu on the left side. If you want to set up Push Notifications click on the Push Notification tab in their UI and [follow the instructions](https://docs.taplytics.com/docs/guides-push-notifications). Finally, you want to ensure you have configured your app delegate to [enable push notifications](/docs/segment/connections/sources/catalog/libraries/mobile/ios/#how-do-i-use-push-notifications).

If you want to set up deep linking, just follow [this section of their docs](https://support.taplytics.com/hc/en-us/articles/360004176632-Deep-Linking-Guide-)!

For more information about setting up Taplytics on iOS, see their [docs](https://docs.taplytics.com/docs/ios-getting-started)

### Android

To get up and running with Taplytics on Android, there a couple of steps we will walk you through. You first want to ensure that you've integrated your mobile app with our [Android](/docs/segment/connections/sources/catalog/libraries/mobile/android) library.

To enable its full functionality (like Push Notifications, Deep linking), there are a couple of extra steps that you have to take care of in your Android app. [This document explains how to set up Push Notifications](https://docs.taplytics.com/docs/guides-push-notifications) and [ths one explains how to set up deep linking](https://support.taplytics.com/hc/en-us/articles/360004176632-Deep-Linking-Guide-).

## Identify

Use [Identify](/docs/segment/connections/sources/catalog/libraries/mobile/ios/#identify) to track user specific attributes. It equivalent to tracking [user attributes](https://docs.taplytics.com/docs/guides-user-insights) on Taplytics. Taplytics supports traits supported by Segment as well as custom traits. If you set traits.id, we set that as the Unique ID for that user.

## Track

Use [track](/docs/segment/connections/sources/catalog/libraries/mobile/ios/#track) to track events and user behaviour in your app.
This will send the event to Taplytics with the associated properties. If you include a `revenue` property on your Track call, we'll call `logRevenue` to pass a revenue amount into Taplytics associated with the action. If you include a `value` property, we'll map it to Taplytics amount property when we `logEvent`.

## Reset

If your app supports the ability for a user to logout and login with a new identity, then you'll need to call reset in your mobile app. Here we will call Taplytic's resetUser implementation to ensure the user information remains consistent.

## Settings

Segment lets you change these destination settings from the Segment app without having to touch any code.

| Field                        | Description                                                                                                                                                                              | Required | Type    |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------- |
| API Key                      | You can find your API Key under \*\*Project Settings\*\* in the upper-left of the \[Taplytics interface]\(https://taplytics.com).                                                        | Yes      | string  |
| Delay Load (iOS)             | Seconds to keep showing the splash screen until the experiments are loaded. Used for when running an experiment on the first page of the app.                                            | No       | number  |
| Enable Live Update (Android) | This will automatically flag this device as a dev device and make a socket connection to the server for testing experiments and variations live.                                         | No       | select  |
| Push Sandbox (iOS)           | Configures whether the push token for the device is a production token or if it is a development token.                                                                                  | No       | boolean |
| Background Session Time      | This will control the amount of time the app can be in background before a session is ended.                                                                                             | No       | number  |
| Enable Shake Menu (iOS)      | This will control whether the in-app Shake Menu is enabled or not.                                                                                                                       | No       | boolean |
| Enable Shake Menu (Android)  | This will control whether the in-app Shake Menu is enabled or not.                                                                                                                       | No       | select  |
| Enable Turn Menu (Android)   | This is an alternative method of accessing the shake menu, useful for emulators that do not have such a capability. When enabled, turning the device three times will bring up the menu. | No       | select  |
