Skip to main content

API Reference

Documentação da API pública do GoAB Survey SDK Android.


SurveySdkFactory

Factory para criar instâncias do SDK.

create

import io.goab.survey.platform.SurveyPlatformContext

fun create(
context: SurveyPlatformContext,
accountId: Int,
apiToken: String,
timeoutMillis: Long = 30_000L
): SurveySdk
ParâmetroTipoDescrição
contextSurveyPlatformContextContexto da plataforma — em Android, envolva com SurveyPlatformContext(context)
accountIdIntID da conta GoAB
apiTokenStringToken de API
timeoutMillisLongTimeout HTTP (milissegundos; padrão: 30 000)

Retorna: instância de SurveySdk (não inicializada até initialize).

Exemplo:

import io.goab.survey.platform.SurveyPlatformContext

val surveySdk = SurveySdkFactory.create(
context = SurveyPlatformContext(this),
accountId = 2,
apiToken = "your-api-token",
timeoutMillis = 30_000L
)

SurveyUiHost

Contexto mínimo que a app host fornece para apresentar surveys.

data class SurveyUiHost(
val fragmentManager: FragmentManager,
val context: Context
)
PropriedadeTipoDescrição
fragmentManagerFragmentManagerGerencia fragments de survey (tipicamente supportFragmentManager)
contextContextContexto da Activity para inflar layouts e temas

Exemplo:

surveySdk.setPresentationHost(
SurveyUiHost(supportFragmentManager, this@MainActivity)
)

OnSurveyEventListener

Callback quando algo acontece na survey — impressão, resposta, envio, fecho, etc.

fun interface OnSurveyEventListener {
fun onSurveyEvent(event: SurveyAnalyticsEvent)
}
MétodoDescrição
onSurveyEventChamado quando a survey emite um evento relevante

Exemplo:

val listener = OnSurveyEventListener { event ->
Log.d("Survey", "event=${event.eventType}")
}

surveySdk.addOnSurveyEventListener(listener)

// ao destruir Activity / logout:
surveySdk.removeOnSurveyEventListener(listener)

SurveySdk

Classe principal do SDK.

initialize

suspend fun initialize()

Prepara o SDK para uso. Chame uma vez antes de sendEvent.

Exemplo:

lifecycleScope.launch {
surveySdk.initialize()
}

isInitialized

fun isInitialized(): Boolean

Retorna: true se initialize concluiu.


sendEvent

fun sendEvent(
eventName: String,
props: Map<String, Any> = emptyMap()
)

Informa ao SDK que algo aconteceu na app (ex.: o usuário abriu uma tela ou concluiu uma ação). O SDK avalia se deve exibir uma pesquisa.

ParâmetroTipoDescrição
eventNameStringNome do evento (ex.: "screen_view", "purchase")
propsMapPropriedades do evento. Para telas: screen_name, screen_class

Comportamento:

  • Ignorado se o SDK não estiver inicializado
  • Ignorado se já houver uma pesquisa aberta na tela

Exemplo:

surveySdk.sendEvent("screen_view", mapOf(
"screen_name" to "ProductDetail",
"screen_class" to "ProductDetailActivity"
))

surveySdk.sendEvent(
eventName = "checkout_started",
props = mapOf("cart_value" to 150.0)
)

setPresentationHost

fun setPresentationHost(host: SurveyUiHost?)

Define onde o SDK pode apresentar pesquisas na tela. Passe null para remover.


setUserId

fun setUserId(userId: String?)

Define o ID do usuário logado.

  • null ou string em branco remove o usuário
  • Ao mudar o ID, pesquisas abertas são fechadas

setUserAttributes

fun setUserAttributes(attributes: Map<String, String>?)

Define atributos do usuário (ex.: plano, segmento, país).

surveySdk.setUserAttributes(mapOf(
"plan" to "enterprise",
"locale" to "pt-BR"
))

surveySdk.setUserAttributes(null) // limpar

disposeSurvey

fun disposeSurvey()

Fecha qualquer pesquisa visível na tela.

Pode ser chamado mesmo antes de initialize.

surveySdk.disposeSurvey()

setInspectEnabled

fun setInspectEnabled(enabled: Boolean)

Habilita ou desabilita Chrome DevTools inspect para WebViews do SDK.

Recomendação: use apenas em builds de desenvolvimento ou homologação.

if (BuildConfig.DEBUG) {
surveySdk.setInspectEnabled(true)
}

addOnSurveyEventListener

fun addOnSurveyEventListener(listener: OnSurveyEventListener)

Regista um observador de eventos da survey.

  • Vários listeners podem coexistir
  • O mesmo listener não é registado duas vezes

removeOnSurveyEventListener

fun removeOnSurveyEventListener(listener: OnSurveyEventListener)

Remove um listener previamente registado com addOnSurveyEventListener.


Exemplo completo

class MainActivity : AppCompatActivity() {
private lateinit var surveySdk: SurveySdk

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

surveySdk = SurveySdkFactory.create(
context = this,
accountId = 2,
apiToken = "your-api-token",
timeoutMillis = 30_000L
)

lifecycleScope.launch {
if (BuildConfig.DEBUG) {
surveySdk.setInspectEnabled(true)
}
surveySdk.setPresentationHost(
SurveyUiHost(supportFragmentManager, this@MainActivity)
)
surveySdk.setUserId(getLoggedInUserId())
surveySdk.initialize()
}
}

override fun onResume() {
super.onResume()
surveySdk.setPresentationHost(
SurveyUiHost(supportFragmentManager, this)
)
}

fun onCheckoutOpened() {
surveySdk.sendEvent("screen_view", mapOf(
"screen_name" to "Checkout"
))
}

fun onLogout() {
surveySdk.disposeSurvey()
surveySdk.setUserId(null)
surveySdk.setUserAttributes(null)
}
}

Próximos passos