From bdf0636081359db846f05c02c0b8060a4071a505 Mon Sep 17 00:00:00 2001 From: Matt Loar Date: Fri, 26 Jun 2020 09:43:06 -0500 Subject: [PATCH] Support Limited Data Use in Facebook Pixel --- integrations/facebook-pixel/lib/index.js | 4 ++++ integrations/facebook-pixel/test/index.test.js | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/integrations/facebook-pixel/lib/index.js b/integrations/facebook-pixel/lib/index.js index 2f8f19cff..da319459f 100644 --- a/integrations/facebook-pixel/lib/index.js +++ b/integrations/facebook-pixel/lib/index.js @@ -30,6 +30,7 @@ var FacebookPixel = (module.exports = integration('Facebook Pixel') .option('standardEventsCustomProperties', []) .option('keyForExternalId', '') .option('userIdAsExternalId', false) + .option('limitedDataUse', true) .mapping('standardEvents') .mapping('legacyEvents') .mapping('contentTypes') @@ -102,6 +103,9 @@ FacebookPixel.prototype.initialize = function() { if (!this.options.automaticConfiguration) { window.fbq('set', 'autoConfig', false, this.options.pixelId); } + if (this.options.limitedDataUse) { + window.fbq('dataProcessingOptions', ['LDU'], 0, 0); + } if (this.options.initWithExistingTraits) { var traits = this.formatTraits(this.analytics); window.fbq('init', this.options.pixelId, traits); diff --git a/integrations/facebook-pixel/test/index.test.js b/integrations/facebook-pixel/test/index.test.js index 687f9a1e4..9a87574aa 100644 --- a/integrations/facebook-pixel/test/index.test.js +++ b/integrations/facebook-pixel/test/index.test.js @@ -35,6 +35,7 @@ describe('Facebook Pixel', function() { pixelId: '123123123', agent: 'test', initWithExistingTraits: false, + limitedDataUse: true, whitelistPiiProperties: [], blacklistPiiProperties: [], standardEventsCustomProperties: [] @@ -147,6 +148,12 @@ describe('Facebook Pixel', function() { ); }); + it('should call dataProcessingOptions if limitedDataUse is enabled', function() { + analytics.stub(window, 'fbq'); + analytics.initialize(); + analytics.called(window.fbq, 'dataProcessingOptions', ['LDU'], 0, 0); + }); + before(function() { options.initWithExistingTraits = true; });