Kurulum

Android projenize Hardal’ı başlatmak ve event’leri göndermeye başlamak için bu kodu ekleyin:

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

// 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:

  1. Android Studio’da Logcat’i izleyin
  2. İstekleri incelemek için Network Profiler’ı kullanın
  3. Başarılı HTTP yanıtlarını kontrol edin (200 durum kodu)
  4. 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.