There are two primary models for integration depending on your use case and circumstance. Reach out and discuss with the Joystick team any questions, we are here to assist with every step.
Joystick to Server
Your server will call Joystick, then process or use the configuration. The configuration content may be for server-only only use, or can also be passed on to the client.
Joystick to Client
Your client application can integrate directly with Joystick and get configurations quickly. This is useful for client-only configurations, or if you want to reduce the load on your server.
Regardless of how you integrate. it is recommended that you have a default for any configuration and graceful fallback in the case there is an issue attempting to retrieve the configuration from Joystick. How you handle this would depend on your use-case.
Platform / Language Support
|Web / Server-side
Need something else? Let us know on Discord
Here is an example high-level flow for integrating Joystick with your application. Depending on your use-case, the details will be different. Reach out and discuss with our team at any time.
It is a good practice to update the configuration content once per session, then cache it, so your users' experience remains consistent during a session, and you reduce your API call overhead.
When the user restarts the app, or comes back after a long break, you can then refresh the configuration content.
Integration with Analytics (For Segmentation and AB Testing)
Joystick can be setup to respond with different configuration content for either AB testing or segmentation purposes. On the response, Joystick will attach information regarding the AB test and/or segmentation. You should pass this information along to your analytics service to perform analysis correctly for users and segments.
See API Reference for details on request and responses.
On the response, the
"seg" attribute is what you'll need to pay attention to and send along to your analytics service and attach as a user property. Each variant has three items. Learn more details about AB test and segmentation in our Dynamic Content guide.
"seg" is an array of objects. It will either be empty
"seg":  or have at least one object with three parameters.
|seg object part
|Name of the segment that the response was included in.
|Variant Name. If you are running an AB Test using Joystick, this will the name or label of the variant that the response was included in.
|This is optional information you can to send to tag or identify a particular variant. This can be configured on the Dynamic Mapping.
You use the convention of adding
"abtest.TEST_NAME": "VARIANT_NAME", where TEST_NAME and VARIANT_NAME are substituted using the payload from Joystick. If integrated correctly, the data will show up in Amplitude.
When you receive a piece of content from Joystick, check if there is variant information. If so, using the Identify API and send it to Amplitude.
The Joystick team is here help you with your implementation! Just reach out to our team with any questions.