1. 程式人生 > >CleverTap Destination Documentation

CleverTap Destination Documentation

Segment makes it easy to send your data to CleverTap (and lots of other destinations). Once you've tracked your data through our open source libraries we'll translate and route your data to CleverTap in the format they understand. Learn more about how to use CleverTap with Segment.

Getting Started

Once the Segment library is integrated, toggle CleverTap on in your Segment destinations, and add your CleverTap Account ID and CleverTap Account Token which you can find in the CleverTap Dashboard under Settings.

You can integrate CleverTap via a server-side or mobile destination (iOS or Andriod). If you are interested in using CleverTap’s push notifications or in-app notifications products, you should use the mobile destinations.

All server-side destination requests require either a Segment Anonymous ID or a userId in the payload.

CleverTap supports the identify, track, page (server-side only), and screen (iOS and server-side only) methods.

Identify

When you identify a user, we’ll pass that user’s information to CleverTap with userId as CleverTap’s Identity value. A number of Segment’s special traits map to CleverTap’s standard user profile fields. You’ll pass the key on the left into Segment and we will transform it to the key on the right before sending to CleverTap.

  • name maps to Name
  • birthday maps to DOB
  • avatar maps to Photo
  • gender maps to Gender
  • phone maps to Phone
  • email maps to Email

All other traits will be sent to CleverTap as custom attributes.

Track

When you track an event, we will send that event to CleverTap as a custom event. Note that CleverTap does not support arrays or nested objects for custom track event properties.

Order Completed

When you track an event via the server-side destination with the name Order Completed using the e-commerce tracking API, we will map that event to CleverTap’s Charged event.

Page

When you send a page event via the server-side destination, we will send that event to CleverTap as a Web Page Viewed event.

Screen

When you send a screen event via the server-side destination or the iOS bundled SDK, we will send that event to CleverTap as an App Screen Viewed event.

Android

Integrating

  1. Add the CleverTap Segment Destination dependency to your app build.gradle:

    compile 'com.clevertap.android:clevertap-segment-android:+'

    Note: Our group Id is com.clevertap.android, not com.segment.analytics.android.integrations.

  2. Next, declare CleverTap’s destination in your Analytics instance:

    Analytics analytics = new Analytics.Builder(context, "YOUR_WRITE_KEY_HERE")  
      .use(CleverTapIntegration.FACTORY)  
      ...  
      .build();
    

Integrating Push

  1. In your AndroidManifest.xml, register the following CleverTap services.

     <service
         android:name="com.clevertap.android.sdk.FcmTokenListenerService">
         <intent-filter>
             <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
         </intent-filter>
     </service>
    
     <service
         android:name="com.clevertap.android.sdk.FcmMessageListenerService">
         <intent-filter>
             <action android:name="com.google.firebase.MESSAGING_EVENT"/>
         </intent-filter>
     </service>
    

In-App Notifications

  1. In your AndroidManifest.xml, add the CleverTap InAppNotificationActivity.

     <activity  
             android:name="com.clevertap.android.sdk.InAppNotificationActivity"  
             android:configChanges="orientation|keyboardHidden"  
             android:theme="@android:style/Theme.Translucent.NoTitleBar" />
    

    No further action is required to integrate in-app notifications, which are registered for and requested by default by our CleverTap Segment integration.

Sample App

CleverTap has created a sample Android application that integrates CleverTap via Segment. Check it out at the Github repo.

iOS

Integrating

  1. Add the CleverTap Segment Pod to your Podfile:

    pod 'Segment-CleverTap'

    We recommend using the latest version on CocoaPods since it will contain the most up to date features and bug fixes.

  2. Next, declare CleverTap’s integration in your app delegate instance:

     SEGAnalyticsConfiguration *config = [SEGAnalyticsConfiguration configurationWithWriteKey:@"YOUR_WRITE_KEY_HERE"];
     [config use:[SEGCleverTapIntegrationFactory instance]];
     [SEGAnalytics setupWithConfiguration:config];
    

Integrating Push

  1. In your application’s application:didReceiveRemoteNotification: method, add the following:

    [[SEGAnalytics sharedAnalytics] receivedRemoteNotification:userInfo];

  2. If you integrated the application:didReceiveRemoteNotification:fetchCompletionHandler: in your app, add the following to that method:

    [[SEGAnalytics sharedAnalytics] receivedRemoteNotification:userInfo];

  3. If you implemented handleActionWithIdentifier:forRemoteNotification:, add the following to that method:

    [[SEGAnalytics sharedAnalytics] handleActionWithIdentifier:identifier forRemoteNotification:userInfo];

In-App Notifications

No further action is required to integrate in-app notifications, which are registered for and requested by default by our CleverTap Segment integration.

Sample App

CleverTap has created a sample iOS application that integrates CleverTap via Segment. Check it out at the Github repo.

Server-Side

Push Tokens

If you chose not to bundle the CleverTap Mobile SDK, then you will have to implement your own Push Message processors (and you won’t have access to CleverTap’s In-App feature).

If you decide to implement your own Push Message processors, then you can pass push tokens to CleverTap via the server-side destination. You can do this by sending it inside context.device.token.

Personas

You can send computed traits and audiences generated through Segment Personas to this destination as a user property. To learn more about Personas, reach out for a demo.

For user-property destinations, an identify call will be sent to the destination for each user being added and removed. The property name will be the snake_cased version of the audience name you provide with a true/false value. For example, when a user first completes an order in the last 30 days, we will send an identify call with the property order_completed_last_30days: true, and when this user no longer satisfies we will set that value to false.

When the audience is first created an identify call is sent for every user in the audience. Subsequent syncs will only send updates for those users which were added or removed since the last sync.

Supported Sources and Connection Modes

WebMobileServer