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âmetro | Tipo | Descrição |
|---|---|---|
context | SurveyPlatformContext | Contexto da plataforma — em Android, envolva com SurveyPlatformContext(context) |
accountId | Int | ID da conta GoAB |
apiToken | String | Token de API |
timeoutMillis | Long | Timeout 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
)
| Propriedade | Tipo | Descrição |
|---|---|---|
fragmentManager | FragmentManager | Gerencia fragments de survey (tipicamente supportFragmentManager) |
context | Context | Contexto 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étodo | Descrição |
|---|---|
onSurveyEvent | Chamado 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âmetro | Tipo | Descrição |
|---|---|---|
eventName | String | Nome do evento (ex.: "screen_view", "purchase") |
props | Map | Propriedades 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.
nullou 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
- Guia de Início Rápido — setup básico
- Inicialização — ciclo de vida e setup