StubAttribution.getAttributionData = function()

in media/js/base/stub-attribution/stub-attribution.js [504:548]


    StubAttribution.getAttributionData = function (
        ref,
        omitNonEssentialFields
    ) {
        var params = new window._SearchParams();
        var utms = params.utmParams();
        var experiment = omitNonEssentialFields
            ? null
            : params.get('experiment') || StubAttribution.experimentName;
        var variation = omitNonEssentialFields
            ? null
            : params.get('variation') || StubAttribution.experimentVariation;
        var referrer = typeof ref === 'string' ? ref : document.referrer;
        var ua = omitNonEssentialFields
            ? 'other'
            : StubAttribution.getUserAgent();
        var clientIDGA4 = omitNonEssentialFields
            ? null
            : StubAttribution.getGtagClientID();

        var data = {
            utm_source: utms.utm_source,
            utm_medium: utms.utm_medium,
            utm_campaign: utms.utm_campaign,
            utm_content: utms.utm_content,
            referrer: referrer,
            ua: ua,
            experiment: experiment,
            variation: variation,
            client_id_ga4: clientIDGA4,
            session_id: clientIDGA4 ? StubAttribution.createSessionID() : null,
            dlsource: StubAttribution.DLSOURCE
        };

        // Remove any undefined values.
        for (var key in data) {
            if (Object.prototype.hasOwnProperty.call(data, key)) {
                if (typeof data[key] === 'undefined' || data[key] === null) {
                    delete data[key];
                }
            }
        }

        return data;
    };