The conversion feature enables you to measure user interactions with beacons and campaigns. With this feature you can track the following informations:

  • How many campaigns were delivered to the app
  • How many campaign actions were performed by users
  • Did the user see the notification and tapped it afterwards

The following static method have been added to ProxiCloudSdk class.

/**
 * * Call this to let SDK know the Action conversion status changed
 *
 * @param context            the callers context
 * @param actionInstanceUuid instance Uuid of the {@link cloud.proxicloud.sdk.action.Action} to update the status
 * @param conversion         the new conversion status
 */
public static void notifyConversionStatus(Context context,
                                          String actionInstanceUuid,
                                          Conversion conversion);

The host app is responsible for calling this method on the appropriate moments.

And that’s all!

Context is available from BroadcastReceiver and Activity, the UUID comes from Action.getInstanceUuid() and Conversion is a simple enum with 4 states:

  • NOTIFICATION_DISABLED - The host app wanted to show a notification, but the user disabled them.
  • ACTION_SUPPRESSED - The host app received the Action but decided not to act on it. This is useful case the action intention is to simply trigger some background sync on the app.
  • NOTIFICATION_SHOWN - The host app received the Action and shown a notification to the user.
  • SUCCESS - The user tapped on the notification. This status is usually updated from inside the host app activity.

Typical implementation

Add to the app BroadcastReceiver calls to notifyConversionStatus and add Action meta-data to the notification intent:


public class MyActionPresenter extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {

    Action action = intent.getExtras().getParcelable(Action.INTENT_KEY);

    if (NotificationManagerCompat.from(context).areNotificationsEnabled()) {

      // Parse the Action and show notification
      ... create notification

      // add conversion meta-data to the intent
      intent.putExtra("conversion", action.getInstanceUuid());

      ... create PendingIntent and show notification

      // Notify the SDK
      ProxiCloudSdk.notifyConversionStatus(context, action.getInstanceUuid(), Conversion.NOTIFICATION_SHOWN);
  } else {
      ProxiCloudSdk.notifyConversionStatus(context, action.getInstanceUuid(), Conversion.NOTIFICATION_DISABLED);
  }
}

Handle the action meta-data in the activity code:

  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      ... normal activity initialization

      handleActionConversion(getIntent());
  }

  @Override
  protected void onNewIntent(Intent intent) {
      super.onNewIntent(intent);
      handleActionConversion(intent);
  }

  private void handleActionConversion(Intent intent) {
    String conversion = getIntent().getStringExtra("conversion");
    if (conversion != null) {
        ProxiCloudSdk.notifyConversionStatus(this, conversion, Conversion.SUCCESS);
    }    
  }

Panel interface

Observe conversion results in the “Conversions” section of the panel. If you have problems finding it drop us a line at [email protected] and we will enable it for you