UPM package for Rally placements in Unity 2021.3+: configure, decide
(coroutine + UnityWebRequest), banner UI, and experience presenters.
In Unity Package Manager → Add package from git URL:
https://github.com/davidminin/rally-unity-sdk.git
Or pin a tag/branch:
https://github.com/davidminin/rally-unity-sdk.git#main
var sdk = RallySdk.EnsureInstance();
sdk.Configure("https://api.rallynetwork.io", "org_…");
sdk.Decide("home_banner", decision =>
{
if (decision == null || !decision.show || decision.config == null) return;
bannerView.Bind(decision.config, _ =>
{
IExperiencePresenter presenter = new ExternalBrowserPresenter();
// Or: new EmbeddedWebViewPresenter(); // stub / UniWebView hook
sdk.OpenExperience(decision, presenter);
});
}, err => Debug.LogWarning(err));| Type | Behavior |
|---|---|
ExternalBrowserPresenter |
Application.OpenURL |
EmbeddedWebViewPresenter |
Stub: logs + OnOpenRequested callback. Hook UniWebView (or similar) in your project. |
Default is coroutines (zero extra packages). UniTask is optional; wrap
DecideCoroutine yourself or enable a future #if UNITASK helper.
Package Manager → Rally Network SDK → Samples → Home Banner.
- Open the package (or a project that references it) in Unity 2021.3+.
- Window → General → Test Runner.
- EditMode tab → run
RallySDK.Tests.EditMode(PlacementConfig JSON round-trip). - PlayMode tab → run
RallySDK.Tests.PlayMode(externalopen_mode→ recorded URL; no UniWebView required).
PlayMode tests set ExternalBrowserPresenter.SuppressApplicationOpen so CI / local runs do not call Application.OpenURL.
Specs and agent skills live in the sibling rallynetwork monorepo. See CONTRIBUTING.md.