public static JSONObject checkOrSetChannelCallbackEvent(String eventName, JSONObject properties, Context context) {
        if (properties == null) {
            properties = new JSONObject();
        }
        try {
            boolean isFirst = isFirstChannelEvent(eventName);
            properties.put("$is_channel_callback_event", isFirst);
            if (context != null && !ChannelUtils.hasUtmProperties(properties)) {
                ChannelUtils.mergeUtmByMetaData(context, properties);
            }
            properties.put("$channel_device_info", "1");
        } catch (JSONException e) {
            SALog.printStackTrace(e);
        }
        return properties;
    }
@Test
    public void checkOrSetChannelCallbackEvent() {
        final String eventName = "eventName";
        JSONObject property = new JSONObject();
        try {
            property.put("a", "a");
            property.put("b", "b");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        try {
            ChannelUtils.checkOrSetChannelCallbackEvent(eventName, property, mApplication);
        } catch (Exception e) {
            e.printStackTrace();
        }
        Assert.assertTrue(property.optBoolean("$is_channel_callback_event"));
    }