Java UTM is a lightweight Java/Kotlin/Spring library for parsing, intercepting and persisting UTM (Urchin Tracking Module) parameters.
It helps ensure consistent campaign tagging across applications and integrations while providing a clean, type-safe API.
- Parse existing URLs and extract UTM parameters from:
- Raw String
HttpServletRequest
- Immutable and type-safe API
- Framework-agnostic core module
- Optional Spring Boot integration
- Java 17+
<dependency>
<groupId>io.github.javautm</groupId>
<artifactId>javautm-core</artifactId>
<version>1.0.1</version>
</dependency>
<!-- Or optional Spring Boot starter -->
<dependency>
<groupId>io.github.javautm</groupId>
<artifactId>spring-boot-starter-javautm</artifactId>
<version>1.0.1</version>
</dependency>implementation("io.github.javautm:javautm-core:1.0.1")
// Or optional Spring Boot starter
implementation("io.github.javautm:spring-boot-starter-javautm:1.0.1")dependencies {
implementation("io.github.javautm:spring-boot-starter-javautm:1.0.1")
}import io.github.javautm.core.persistence.UtmPersistenceHandler;
import io.github.javautm.core.model.UtmParameters;
@Component // Register as a component so the interceptor can use it
public class UtmPersistenceHandlerImpl implements UtmPersistenceHandler {
@Override
public handle(UtmParameters parameters) {
// Persistence logic...
}
}| Parameter | Description |
|---|---|
| utm_source | Traffic source |
| utm_medium | Marketing medium |
| utm_campaign | Campaign name |
| utm_term | Paid keyword |
| utm_content | Ad/content variation |
Core library containing:
- UTM parameters model
- Parser
- Interceptor
- Holder
- Persistence handler
- Enabling/disabling by property
javautm.enabled UtmParserbean- Interceptor automatically registered
| Version | Java | Spring |
|---|---|---|
| 1.x | 17+ | 4.0+ |
Contributions, bug reports, and feature requests are welcome.
- Fork the repository
- Create a feature branch
- Submit a pull request