Shopper Insights (Beta)

If you do not decommission your app versions that include the older SDK versions or force upgrade your app with the updated certificates by the expiration date, 100% of your customer traffic will fail.

OverviewAnchorIcon

Use Shopper Insights to optimize your checkout experience by prioritizing the customer’s preferred payment methods in your UI. Customizing the checkout experience can improve conversion, increase repeat buys and boost user retention.

IntegrationAnchorIcon

The generateCustomerRecommendations method returns PayPal or Venmo as recommended payment using their email.

Before using this method, obtain consent from the customer to share this information with PayPal services.

Use the following code snippet to get the recommended payment methods and adjust your UI/UX accordingly.

Add the following in your app-level build.gradle:

  1. Kotlin
  2. Groovy
dependencies {
    implementation("com.braintreepayments.api:shopper-insights:5.8.0")
}
  1. Kotlin
val shopperInsightsClient = ShopperInsightsClientV2(context, "[CLIENT_TOKEN]")

val customerSessionRequest = CustomerSessionRequest(
    hashedEmail = emailText.sha256(),
    hashedPhoneNumber = nationalNumberText.sha256()
)

shopperInsightsClient.createCustomerSession(customerSessionRequest) { result ->
    when (result) {
        is CustomerSessionResult.Success -> {
            // handle success
        }
        is CustomerSessionResult.Failure -> {
             // handle error
        }
    }
}
  1. Kotlin
val shopperInsightsClient = ShopperInsightsClientV2(context, "[CLIENT_TOKEN]")

val customerSessionRequest = CustomerSessionRequest(
            hashedEmail = emailText.sha256(),
            hashedPhoneNumber = nationalNumberText.sha256()
)

val sessionId = "[SESSION-ID]"
shopperInsightsClient.updateCustomerSession(customerSessionRequest, sessionId) { result ->
    when (result) {
        is CustomerSessionResult.Success -> {
            // Handle Success 
        }
        is CustomerSessionResult.Failure -> {
            // Handle Error
        }
    }
}
  1. Kotlin
val shopperInsightsClient = ShopperInsightsClientV2(context, "[CLIENT_TOKEN]")

val sessionId = "[SESSION-ID]"

shopperInsightsClient.generateCustomerRecommendations(sessionId = sessionId) { result ->
    when (result) {
        is CustomerRecommendationsResult.Success -> {
            // handle success
        }
        is CustomerRecommendationsResult.Failure -> {
             // handle error
        }
    }
}
  1. Kotlin
// Send after presenting recommendations
var presenter = PresentmentDetails(ExperimentType.CONTROL, ButtonOrder.FIRST, PageType.CHECKOUT)
shopperInsightsClient.sendPresentedEvent(ButtonType.PAYPAL, presenter, [SESSION_ID])

// Send after the user has selected an option
shopperInsightsClient.sendSelectedEvent(
    ButtonType.PAYPAL,
    sessionId
)