@classmethod
def from_dict(cls, id, name, owner, version, config):
    """Parse the config dict and return a new R2Experiment object.

        :param int id: The id of the experiment from the base config.
        :param str name: The name of the experiment from the base config.
        :param str owner: The owner of the experiment from the base config.
        :param dict config: The "experiment" config dict from the base config.
        :rtype: :py:class:`baseplate.experiments.providers.r2.R2Experiment`
        """
    return cls(id=id, name=name, owner=owner, version=version, variants=
        config['variants'], targeting=config.get('targeting'), overrides=
        config.get('overrides'), seed=config.get('seed'), bucket_val=config
        .get('bucket_val', 'user_id'), newer_than=config.get('newer_than'))
