A method comprising: receiving a first request to transmit a first message to a first recipient device; determining to allocate the first message for exploitation of an optimal routing provider that is determined to provide the best performance based on a conversion rate index including individual conversion rates for each routing provider in the set of routing providers , wherein the individual conversion rates each indicate a performance level of the corresponding routing provider; in response to determining to allocate the first message for exploitation: determining, based on a ranking of a set of routing providers , that a first routing provider is the optimal routing provider, the ranking having been determined based on the conversion rate index; and allocating the first message to the first routing provider for delivery to the first recipient device; receiving a second request to transmit a second message to a second recipient device; determining to allocate the second message for exploration of secondary routing providers that are determined to be providing lower performance than the optimal routing provider based on the conversion rate index; and in response to determining to allocate the second message for exploration: identifying, based on the ranking of the set of routing providers , a set of secondary routing providers, the set of secondary routing providers not including the first routing provider; and allocating the second message to a secondary routing provider from the set of secondary routing providers for delivery to the second recipient device. receiving a first request to transmit a first message to a first recipient device; determining to allocate the first message for exploitation of an optimal routing provider that is determined to provide the best performance based on a conversion rate index including individual conversion rates for each routing provider in the set of routing providers , wherein the individual conversion rates each indicate a performance level of the corresponding routing provider; in response to determining to allocate the first message for exploitation: determining, based on a ranking of a set of routing providers , that a first routing provider is the optimal routing provider, the ranking having been determined based on the conversion rate index; and allocating the first message to the first routing provider for delivery to the first recipient device; determining, based on a ranking of a set of routing providers , that a first routing provider is the optimal routing provider, the ranking having been determined based on the conversion rate index; and allocating the first message to the first routing provider for delivery to the first recipient device; receiving a second request to transmit a second message to a second recipient device; determining to allocate the second message for exploration of secondary routing providers that are determined to be providing lower performance than the optimal routing provider based on the conversion rate index; and in response to determining to allocate the second message for exploration: identifying, based on the ranking of the set of routing providers , a set of secondary routing providers, the set of secondary routing providers not including the first routing provider; and allocating the second message to a secondary routing provider from the set of secondary routing providers for delivery to the second recipient device. identifying, based on the ranking of the set of routing providers , a set of secondary routing providers, the set of secondary routing providers not including the first routing provider; and allocating the second message to a secondary routing provider from the set of secondary routing providers for delivery to the second recipient device. <EOS>