Kurulum
Android projenize Hardal’ı başlatmak ve event’leri göndermeye başlamak için bu kodu ekleyin:
Native (Android)
Flutter
React Native
Java (Android)
cURL
import android.util.Log
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import org.json.JSONObject
import java.net.HttpURLConnection
import java.net.URL
// Hardal event tracking implementation for Android (Kotlin)
class HardalTracker {
companion object {
private const val TAG = "HardalTracker"
fun sendEvent (
hardalCustomUrl: String ,
signalId: String ,
eventName: String ,
eventData: Map < String , Any > = emptyMap ()
) {
GlobalScope. launch (Dispatchers.IO) {
try {
// Create URL
val url = URL ( "https:// $hardalCustomUrl /push/hardal" )
// Open connection
val connection = url. openConnection () as HttpURLConnection
connection.requestMethod = "POST"
connection. setRequestProperty ( "Content-Type" , "application/json" )
connection.doOutput = true
// Create payload
val payloadJson = JSONObject (). apply {
put ( "name" , eventName)
put ( "website" , signalId)
put ( "data" , JSONObject (eventData))
}
// Create body
val bodyJson = JSONObject (). apply {
put ( "type" , "event" )
put ( "payload" , payloadJson)
}
// Write body to connection
connection.outputStream. use { os ->
os. write (bodyJson. toString (). toByteArray ())
}
// Get response
val responseCode = connection.responseCode
if (responseCode in 200 .. 299 ) {
Log. d (TAG, "Event sent successfully" )
} else {
Log. e (TAG, "Failed to send event: $responseCode " )
}
connection. disconnect ()
} catch (e: Exception ) {
Log. e (TAG, "Exception when sending event: ${ e.message } " , e)
}
}
}
}
}
Yapılandırma Seçenekleri
Android entegrasyonu için aşağıdakileri özelleştirebilirsiniz:
Custom event özellikleri
Event toplu işleme
Başarısız istekler için yeniden deneme mantığı
Arkaplan thread yönetimi
Kullanım Örneği
Native (Android)
Flutter
React Native
Java (Android)
// Example usage
HardalTracker. sendEvent (
hardalCustomUrl = "example.usehardal.com" ,
signalId = "cm5v9x9f80003tivvx7nr2bjh" ,
eventName = "purchase" ,
eventData = mapOf ( "productId" to "123" , "price" to 99.99 )
)
Sorun Giderme
Doğrulama
Android entegrasyonunuzu doğrulamak için:
Android Studio’da Logcat’i izleyin
İstekleri incelemek için Network Profiler’ı kullanın
Başarılı HTTP yanıtlarını kontrol edin (200 durum kodu)
Event’lerin Hardal dashboard’unuzda göründüğünü doğrulayın
Geliştirme için, uygulamanızın hata ayıklama yapılandırmasında log seviyesini VERBOSE olarak ayarlayarak detaylı günlük kaydını etkinleştirebilirsiniz.