Using custom php file for ajax url inside plugin

Read more about AJAX in Plugins.

How to use Ajax in WP:
1. Register file contain functions, event of javascript or jquery. All data will be submit by events js

add_action( 'wp_enqueue_scripts', 'ajax_scripts' );
function ajax_scripts() {
    wp_register_script( 'main-ajax', get_template_directory_uri() . '/assets/js/main-ajax.js', array(), '', true );
    $arr = array(
        'ajaxurl' => admin_url('admin-ajax.php')
    );
    wp_localize_script('main-ajax','obj',$arr );
    wp_enqueue_script('main-ajax');
}

inside main-ajax.js (data will be process through by admin-ajax.php) :

$.ajax({ 
    url:  obj.ajaxurl,
}).done(function(data) {
    console.log(data);
});

2. File PHP to process functions (insertproducts.php) after submit data by ajax. Use below action for your function.

add_action('wp_ajax_my_action', 'my_action');
add_action('wp_ajax_nopriv_my_action', 'my_action');