Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 36 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,29 @@
# OpenAttribution Android SDK

🏗️Under construction.🏗️ If you'd like to help feel free to send a PR or join the Dicsord. More info on [OpenAttribution.dev](https://openattribution.dev).
🏗️Under construction.🏗️
If you'd like to help feel free to send a PR or join the [OpenAttribution Discord](https://discord.gg/Z5ueYE3Ct3).


More info on [OpenAttribution.dev](https://openattribution.dev).


## MVP Goal

To have a fully functional SDK which can be used to track and attribute installs, events and revenue for iOS back to an OpenAttribution server.
### Event tracking and details


## MVP feature roadmap
## MVP feature road map

- Library installable via Cocoapods (? is this the right approach?) or other dependency manager for mac/ios
- user input server endpoint ie `https://demo.openattribution.dev`
- event tracking with params
- documentation for how to use and next steps
- [x] Library installable via Maven
- [x] user input server endpoint ie `https://demo.openattribution.dev`
- [ ] Events:
- [x] app_open tracking and attributing
- [ ] Basic event tracking
- [ ] Basic revenue tracking
- [ ] Documentation for how to use and next steps

## Usage
## Install

You can get the latest version of OpenAttribution's (Android SDK from Maven Central)[https://central.sonatype.com/artifact/dev.openattribution/open-attribution-sdk]

Expand All @@ -26,6 +35,8 @@ dependencies {
}
```

## Tracking App Open

`MyApplication.kts`
```kotlin

Expand All @@ -49,28 +60,27 @@ class MyApplication : Application() {
```


### Event tracking and params details
Events:
- Basic app_open tracking and attributing
- Basic event tracking
- Basic revenue tracking

### ExistingOpenAttribution Params:

These are very loosely defined in:
## Local Development:

If you're interested in contributing to OpenAttribution Android SDK please don't hesitate to reach out [on Discord](https://discord.gg/Z5ueYE3Ct3) or with a PR.

The OpenAttribution postback API will expect or allow the values as defined here:
https://github.com/OpenAttribution/Open-Attribution/blob/main/apps/postback-api/config/dimensions.py

```python
# In App key values
APP_EVENT_UID = "event_uid" # UUID4, unique per tracking call
APP_EVENT_ID = "event_id" # app_open, event_name
APP_EVENT_TIME = "event_time" # epoch timestamp in ms
APP_EVENT_REV = "revenue" # not sure if this is float or string
APP_OA_USER_ID = "oa_uid" # UUID4, unique per user
```
#### Sample post back payload
This is a sample of the minimum required postback by the OpenAttribution server. The empty IFA.

#### Sample postback payload
```
https://demo.openattribution.dev/collect/events/com.example.app?ifa=00000000-0000-0000-0000-000000000000&event_time=1732003510046&event_uid=5730a99e-b009-41da-9d52-1315e26941c1&event_id=app_open&oa_uid=3bd9e091-fa6e-4b91-8dd1-503f8d4fe8f2
```
```http
POST https://demo.openattribution.dev/collect/events/com.example.app HTTP/1.1
Content-Type: application/json

{
"ifa": "00000000-0000-0000-0000-000000000000",
"event_time": 1732003510046,
"event_uid": "5730a99e-b009-41da-9d52-1315e26941c1",
"event_id": "app_open",
"oa_uid": "3bd9e091-fa6e-4b91-8dd1-503f8d4fe8f2"
}