diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index d5fbd28..de18226 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -24,7 +24,7 @@ jobs: - name: Get release notes run: | echo "RELEASE_NOTES<> $GITHUB_ENV - echo "$(awk "/^## $version/{flag=1;next}/^## /{flag=0}flag" CHANGELOG.md)" >> $GITHUB_ENV + echo "$(awk '/^## [^ ]/{if (found) exit; found=1} found' CHANGELOG.md)" >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV - name: Set version for tag diff --git a/CHANGELOG.md b/CHANGELOG.md index 0775cae..955f172 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Change Log +## 0.0.9 *(2025-02-13)* + +### THIS SDK IS NOT YET STABLE +Please feel free to try but note that this is a work in progress. Feel free to join Open Attribution for questions or contributing. + +### Changes +- Send data vis JSON + ## 0.0.8 *(2025-01-21)* ### THIS SDK IS NOT YET STABLE diff --git a/OpenAttribution/src/main/java/dev/openattribution/sdk/OAWorker.kt b/OpenAttribution/src/main/java/dev/openattribution/sdk/OAWorker.kt index 5e80e49..5fa69ea 100644 --- a/OpenAttribution/src/main/java/dev/openattribution/sdk/OAWorker.kt +++ b/OpenAttribution/src/main/java/dev/openattribution/sdk/OAWorker.kt @@ -8,11 +8,24 @@ import androidx.work.WorkerParameters import kotlinx.coroutines.Dispatchers import com.google.android.gms.ads.identifier.AdvertisingIdClient import kotlinx.coroutines.withContext +import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient import okhttp3.Request +import okhttp3.RequestBody.Companion.toRequestBody +import org.json.JSONObject import java.util.UUID import java.util.concurrent.TimeUnit + +data class TrackingEvent( + val oaUid: String, + val ifa: String?, + val androidId: String, + val eventId: String, + val eventUid: String, + val eventTime: Long, +) + class TrackAppOpenWorker( private val appContext: Context, workerParams: WorkerParameters @@ -47,7 +60,7 @@ class TrackAppOpenWorker( } } - val url = constructTrackingUrl( + val (url, trackingEvent) = constructTrackingRequest( baseUrl, appendedPackageName, myOaUid, @@ -64,8 +77,22 @@ class TrackAppOpenWorker( .writeTimeout(10, TimeUnit.SECONDS) .build() + val jsonBody = JSONObject().apply { + put("oa_uid", trackingEvent.oaUid) + put("ifa", trackingEvent.ifa) + put("android_id", trackingEvent.androidId) + put("event_id", trackingEvent.eventId) + put("event_uid", trackingEvent.eventUid) + put("event_time", trackingEvent.eventTime) + } + + val request = Request.Builder() + .url(url) + .post(jsonBody.toString().toRequestBody("application/json".toMediaType())) + .build() + withContext(Dispatchers.IO) { - client.newCall(Request.Builder().url(url).build()).execute() + client.newCall(request).execute() }.use { response -> return if (response.isSuccessful) { Log.i("OpenAttribution", "Tracking request successful: ${response.code}") @@ -79,11 +106,9 @@ class TrackAppOpenWorker( Log.e("OpenAttribution", "Error in TrackAppOpenWorker: ${e.message}") return Result.retry() } - - } - private fun constructTrackingUrl( + private fun constructTrackingRequest( baseUrl: String, packageName: String, oauid: String, @@ -92,9 +117,19 @@ class TrackAppOpenWorker( eventId: String, eventUid: String, eventTime: Long - ): String { - val url = "$baseUrl/collect/events/$packageName?oa_uid=$oauid&ifa=$gaid&android_id=$androidId&event_id=$eventId&event_uid=$eventUid&event_time=$eventTime&b=A" + ): Pair { + val url = "$baseUrl/collect/events/$packageName" + + val trackingEvent = TrackingEvent( + oaUid = oauid, + ifa = gaid, + androidId = androidId, + eventId = eventId, + eventUid = eventUid, + eventTime = eventTime + ) + Log.i("OpenAttribution", "Constructing tracking URL $url") - return url + return Pair(url, trackingEvent) } } diff --git a/RELEASING.md b/RELEASING.md index 94a728b..ec9ed27 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -5,7 +5,7 @@ Prerequisites check `git remote -v` that `OpenAttribution/oa-android-sdk` is there. If you do not see it, add it: `git remote add upstream https://github.com/OpenAttribution/oa-android-sdk.git` -1. Make sure `CHANGELOG.md` is up-to-date on `main` for the impeding release. Info under `X.Y.Z` will be used on the GitHub release page. +1. Make sure `CHANGELOG.md` is up-to-date on `main` for the impending release. Info under `X.Y.Z` will be used on the GitHub release page. 2. Update `libs.versions.toml` to use `X.Y.Z` 3. Create pull request from your repo to OpenAttribution 4. Make a new tag: `git tag X.Y.Z` diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b9d412c..7cda1ca 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -oaReleaseVersion = "0.0.8" +oaReleaseVersion = "0.0.9" agp = "8.7.2" kotlin = "1.9.24" coreKtx = "1.15.0"