Batch 1.5 introduces a new User module. In addition of overriding the language/region or setting a custom user ID, you can now assign tags and attributes to your users, allowing you to improve your Push targeting.
- User IDs (email address, username, etc) must be managed using our custom user ID implementation.
- Region/language data must be managed using our custom region/language implementation.
- Never use an existing tagging plan. Read our guide on custom data before tagging your app.
- Newly tracked attributes and tags are hidden by default. You will need to manually display them from the dashboard settings > "Custom data" tab.
Before we get started on how to implement attributes, here are some rules you should know.
Attribute names are strings. They should be made of letters, numbers or underscores ([a-z0-9_]) and can't be longer than 30 characters (e.g. has_premium).
Values must be any of the following types:
java.util.Date. Since timezones are not supported, this will typically represent UTC dates.
The custom attribute API is simple, and has only three methods:
Batch.User.editor() .setAttribute("age", 26) // Set an attribute .removeAttribute("age") // Remove it .clearAttributes() // Removes all attributes .save(); // Don't forget to save the changes!
Changes made to an editor happen transactionally and won't be persisted until you call
Note that this MUST be called when Batch is started.
On Android, it means that any Batch.User.editor() call must happen between
Calling it anywhere else will fail, and an error will be printed to your logcat.
Please test your implementation using our debug tool before releasing your app on the store.
You can attach multiple tags to different collections.
Tags have some limitations:
Collection names have the same limitations as attribute names.
Here are the available methods:
Batch.User.editor() .addTag("actions", "has_bought") // Add a tag to the "actions" collection .removeTag("actions", "has_bought") // Remove it .clearTagCollection("actions") // Removes all tags from that collection .save(); // Don't forget to save the changes!