diff --git a/src/_data/catalog/destination_categories.yml b/src/_data/catalog/destination_categories.yml index 52098dd423..729ea41637 100644 --- a/src/_data/catalog/destination_categories.yml +++ b/src/_data/catalog/destination_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination categories last updated 2021-10-08 +# destination categories last updated 2021-10-11 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/destinations.yml b/src/_data/catalog/destinations.yml index c7ece1088d..3b3a3fb07e 100644 --- a/src/_data/catalog/destinations.yml +++ b/src/_data/catalog/destinations.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# destination data last updated 2021-10-08 +# destination data last updated 2021-10-11 items: - display_name: 2mee name: 2mee @@ -7812,7 +7812,7 @@ items: type: string defaultValue: '' description: >- - Your Pixel ID, from the snippet created on the [Facebook Pixel creation + Your Pixel ID from the snippet created on the [Facebook Pixel creation page](https://www.facebook.com/ads/manager/pixel/facebook_pixel/). required: true label: Pixel ID @@ -8014,20 +8014,22 @@ items: type: boolean defaultValue: false description: >- - If true, we will initialize Facebook Pixel with any user traits that's - been cached in the Segment cookies from your previous `.identify()` calls. + If enabled, we will initialize Facebook Pixel with any user traits that + have been cached in the Segment cookies from your previous `.identify()` + calls. required: false label: Enable Advanced Matching - name: keyForExternalId type: string defaultValue: '' description: >- - Please indicated a user trait key which you would like Segment to use to + Please indicate a user trait key which you would like Segment to use to send an `external_id` to Facebook Pixel using advanced matching. Segment will use the value of this trait to map it to Facebook Pixel's - `external_id`. + `external_id`. Note: **Enable Advanced Matching** must be enabled to use + this setting. required: false - label: 'Client-Side Only: Advanced Match Trait Key for External ID' + label: Advanced Match Trait Key for External ID - name: legacyEvents type: text-map defaultValue: {} @@ -8056,7 +8058,7 @@ items: type: string defaultValue: '' description: >- - Your Pixel ID, from the snippet created on the [Facebook Pixel creation + Your Pixel ID from the snippet created on the [Facebook Pixel creation page](https://www.facebook.com/ads/manager/pixel/facebook_pixel/). required: true label: Pixel ID @@ -8086,10 +8088,11 @@ items: type: boolean defaultValue: false description: >- - Enable this setting if you want to send, `userId` (or `anonymousId` if not - present) as external Id to Facebook. + Enable this setting if you want to send `userId` (or `anonymousId` if not + present) as `external_id` to Facebook when using advanced matching. Note: + **Enable Advanced Matching** must be enabled to use this setting. required: false - label: Use UserId or Anonymous Id as External Id + label: Use User ID or Anonymous ID as External ID - name: valueIdentifier type: select defaultValue: value @@ -14968,10 +14971,10 @@ items: - Personalization logo: url: >- - https://public-segment-devcenter-production.s3.amazonaws.com/de56ef24-11ea-4cc6-8df2-19db90ff5c1c.svg + https://public-segment-devcenter-production.s3.amazonaws.com/8bef9c9a-f29b-4019-8a93-687a77d538a9.svg mark: url: >- - https://public-segment-devcenter-production.s3.amazonaws.com/6aeb55d8-ffc0-468b-a5f7-21f8b2aa18e0.svg + https://public-segment-devcenter-production.s3.amazonaws.com/b77aa858-b09d-444a-94cc-39d6c7115283.svg methods: track: false identify: true diff --git a/src/_data/catalog/source_categories.yml b/src/_data/catalog/source_categories.yml index f971d8465d..3b1f6ea8bc 100644 --- a/src/_data/catalog/source_categories.yml +++ b/src/_data/catalog/source_categories.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# source cateogries last updated 2021-10-08 +# source cateogries last updated 2021-10-11 items: - display_name: A/B Testing slug: a-b-testing diff --git a/src/_data/catalog/sources.yml b/src/_data/catalog/sources.yml index 1499fda710..4ef907213b 100644 --- a/src/_data/catalog/sources.yml +++ b/src/_data/catalog/sources.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# sources last updated 2021-10-08 +# sources last updated 2021-10-11 items: - display_name: .NET slug: net diff --git a/src/_data/catalog/warehouse_papi.yml b/src/_data/catalog/warehouse_papi.yml index 4477a588b9..0b73679150 100644 --- a/src/_data/catalog/warehouse_papi.yml +++ b/src/_data/catalog/warehouse_papi.yml @@ -1,5 +1,5 @@ # AUTOGENERATED FROM PUBLIC API. DO NOT EDIT -# warehouse data last updated 2021-10-08 +# warehouse data last updated 2021-10-11 items: - display_name: Azure SQL Data Warehouse slug: azuresqldw diff --git a/src/connections/destinations/catalog/facebook-pixel-server-side/index.md b/src/connections/destinations/catalog/facebook-pixel-server-side/index.md index 6bf157d7cd..2c11c91628 100644 --- a/src/connections/destinations/catalog/facebook-pixel-server-side/index.md +++ b/src/connections/destinations/catalog/facebook-pixel-server-side/index.md @@ -76,8 +76,7 @@ This approach provides a redundancy that ensures maximum signal reliability. Eve #### Match rate considerations -For this option to work best, you must pass the same `external_id` from both the browser and the server sources. -To do this, go to your Facebook Pixel destination settings in Segment, and enable **Use UserId or Anonymous Id as External Id**. By default the Facebook Conversions API destination uses the `userId` (or `anonymousId` if not present) to set the External Id, so when you set up Facebook Pixel to use the same settings, Facebook can then match the users. +For this option to work best, pass the same `external_id` from the browser and the server. To achieve this, go to the Facebook Pixel destination settings in Segment and enable the **Enable Advanced Matching** and **Use User ID or Anonymous ID as External ID** settings. By default, the Facebook Conversions API destination uses the `userId` (or `anonymousId` if not present) to set the `external_id`, so when you configure Facebook Pixel to use the same settings, Facebook matches users by those IDs. You can also increase the match rate for events from a server source by sending [user traits in the context object of the track events](#default-mappings-to-facebook-properties). You can also collect other fields from the browser, such as `userAgent`, `ip` address, and [Facebook's parameters (fbp, fbc)](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc) and pass them to the server, and manually add them to the events. @@ -91,9 +90,9 @@ Use this approach if you want to separate tracking events completed on a user's #### Match rate considerations -For this option to work best, the same `external_id` needs to be passed from the browser and from the server. To easily achieve this go to your Segment destination settings for Facebook Pixel and toggle on the setting called **Use UserId or Anonymous Id as External Id**. The Facebook Conversions API destination uses the userId (or anonymousId if not present) to set the External Id by default. Therefore enabling this on Facebook Pixel will allow Facebook to match the users. +For this option to work best, the same `external_id` needs to be passed from the browser and the server. To achieve this, go to your Facebook Pixel destination settings in Segment and enable the **Enable Advanced Matching** and **Use User ID or Anonymous ID as External ID** settings. By default the Facebook Conversions API destination uses the `userId` (or `anonymousId` if not present) to set the `external_id`, so when you set up Facebook Pixel to use the same settings, Facebook can then match the users. -You can also increase the match rate for events from a server source by sending [user traits in the context object of the track events](#default-mappings-to-facebook-properties). You can also collect other fields from the browser, such as `userAgent`, `ip` address, and [Facebook's parameters (fbp, fbc)](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc) and pass them to the server, and manually add them to the events. +You can also send [user traits in the context object of the track events](#default-mappings-to-facebook-properties)to increase the match rate for events from a server source. Collect other fields from the browser, like `userAgent`, `ip` address, and [Facebook's parameters (fbp, fbc)](https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/fbp-and-fbc){:target="_blank"}, pass them to the server, and manually add them to the events. #### Deduplication considerations @@ -124,7 +123,7 @@ For more information about Track calls, see the [Track method](/docs/connections Beginning February 15th 2021, Facebook requires the `action_source` server event parameter for all events sent to the Conversions API. This parameter is used to specify where the conversions occurred. If `action_source` is set to 'website' then the `client_user_agent` and the `event_source_url` parameters are also required. Events sent to the Conversions API after February 15th that do not meet the requirements may not be available for optimization, targeting, or measurement. -| Server Event Parameter | Requirement | Implementation | +| Server Event Parameter | Requirement | Implementation p | | ---------------------- | ------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | `action_source` | Always required | It is set automatically but it can be set manually. | | `client_user_agent` | Only required if `action_source` = "website" | It must be set manually if using a server library. It is set automatically if using the Segment web library. | @@ -139,7 +138,7 @@ You can set `action_source` manually by passing it as a property of a Track even | Action Source Values | Description | | -------------------- | --------------------------------------------------------------------------------------------------------- | -| `chat` | Conversion was made via a messaging app, SMS, or online messaging feature. | +| `chat` | Conversion was made through a messaging app, SMS, or online messaging feature. | | `email` | Conversion happened over email. | | `other` | Conversion happened in a way that is not listed. | | `phone_call` | Conversion was made over the phone. | @@ -265,18 +264,18 @@ analytics.track("Clicked Email", { ``` ### Custom Mappings to Facebook Properties -Any properties you send that aren't listed above are sent in the 'Custom Data' part of the Segment payload to Facebook. +Any properties you send that aren't listed above are sent in the `custom_data` part of the Segment payload to Facebook. ### Alternative External IDs -By default, Segment sends the `userID` as `externalID`, and if `userID` is absent falls back to `anonymousID`. To use a different field in your payload as the External ID, use the "Alternative External ID Field". An example value for this setting would be `properties.externalId`. +By default, Segment sends the `userId` as `external_id`, and if `userId` is absent falls back to `anonymousId`. To use a different field in your payload as the `external_id`, use the **Alternative External ID Field** setting. An example value for this setting would be `properties.externalId`. -### Alternative "Value" Properties +### Alternative Value Properties For most events Segment sends revenue for the Pixel value field, but for -the pre-purchase events "Product Viewed" and "Product Added", Segment -uses the value of the "Value Field Identifier" setting to determine which -property to use for the "value" field. This field defaults to +the pre-purchase events `Product Viewed` and `Product Added`, Segment +uses the value of the **Value Field Identifier** setting to determine which +property to use for the `value` field. This field defaults to `price`. ## Limited Data Use @@ -313,7 +312,7 @@ minutes. You can confirm that Facebook received them: 1. Go to the Events Manager. 2. Click on the corresponding pixel. -3. In the **Overview** tab, look for events where the "Connection Mode" is `Server`. +3. In the **Overview** tab, look for events where the "Connection Method" is `Server`. > info "" > **Note**: It might take a few minutes before events appear in the Events Manager. diff --git a/src/connections/destinations/catalog/facebook-pixel/index.md b/src/connections/destinations/catalog/facebook-pixel/index.md index cd388833b0..981856e585 100644 --- a/src/connections/destinations/catalog/facebook-pixel/index.md +++ b/src/connections/destinations/catalog/facebook-pixel/index.md @@ -6,9 +6,10 @@ strat: facebook [Facebook Pixel](https://developers.facebook.com/docs/facebook-pixel) lets you measure and optimize the performance of your Facebook Ads. It makes conversion tracking, optimization and remarketing easier than ever. The Facebook Pixel Destination is open-source. You can browse the code [on GitHub](https://github.com/segment-integrations/analytics.js-integration-facebook-pixel). -_**NOTE:** Facebook has deprecated their modular "Ads For Websites" suite, which previously comprised Facebook Custom Audiences and Facebook Conversion Tracking. We've consolidated those two destinations into this new and improved "Facebook Pixel" destination._ +> warning "" +> Facebook has deprecated the modular "Ads For Websites" suite, which previously comprised Facebook Custom Audiences and Facebook Conversion Tracking. We've consolidated those two destinations into this new and improved "Facebook Pixel" destination. + -This document was last updated on 31st October, 2018. If you notice any gaps, out-dated information or simply want to leave some feedback to help us improve our documentation, [let us know](https://segment.com/help/contact)! **Use Cases** @@ -39,7 +40,7 @@ Segment automatically initializes Facebook's pixel with your `pixelId` upon load ## Page -If you're not familiar with the Segment Specs, take a look to understand what the [Page method](https://segment.com/docs/connections/spec/page/) does. An example call would look like: +If you're not familiar with the Segment Specs, take a look to understand what the [Page method](/docs/connections/spec/page/) does. An example call would look like: ```javascript analytics.page(); @@ -49,7 +50,7 @@ We've mapped `analytics.page()` to [Facebook's `fbq('track', "PageView")`](https ## Identify -If you're not familiar with the Segment Specs, take a look to understand what the [Identify method](https://segment.com/docs/connections/spec/identify/) does. An example call would look like: +If you're not familiar with the Segment Specs, take a look to understand what the [Identify method](/docs/connections/spec/identify/) does. An example call would look like: ```javascript analytics.identify('ze8rt1u89', { @@ -69,7 +70,7 @@ When you make an Identify call with Segment, it will update Facebook Pixel the n ## Track -If you're not familiar with the Segment Specs, take a look to understand what the [Track method](https://segment.com/docs/connections/spec/track/) does. An example call would look like: +If you're not familiar with the Segment Specs, take a look to understand what the [Track method](/docs/connections/spec/track/) does. An example call would look like: ```javascript analytics.track("My Custom Event", { @@ -159,9 +160,12 @@ Facebook accepts the following properties: - State - Zip code -If you follow Segment's [spec](/docs/connections/spec/identify/#traits), these would automatically be sent correctly. +If you follow Segment's [spec](/docs/connections/spec/identify/#traits), these properties send in the correct format. + +When you use Advanced Matching, Facebook also accepts an External ID. This can be any unique ID from the advertiser, like loyalty membership IDs, user IDs, and external cookie IDs. To send an `external_id` to Facebook you can either: -Facebook also accepts an External ID. This can be any unique ID from the advertiser, such as loyalty membership IDs, user IDs, and external cookie IDs. In order to send an `external_id` to Facebook you can indicate which user trait you would like Segment to map to `external_id` using the **Client-Side Only: Advanced Match Trait Key for External ID** setting. +- Send the Segment `userId` or `anonymousId` as `external_id` using the **Use User ID or Anonymous ID as External ID** setting +- Indicate which user trait you would like Segment to map to `external_id` using the **Advanced Match Trait Key for External ID** setting ## Limited Data Use @@ -174,7 +178,7 @@ Facebook also accepts an External ID. This can be any unique ID from the adverti Facebook uses the `context.ip` to determine the geolocation of the event. -You can manually change the Data Processing parameters by adding settings to the `integrations` object. For Facebook Pixel, you must store these settings in the [Load object](https://segment.com/docs/connections/sources/catalog/libraries/website/javascript/#load-options) so that Segment can set them *before* it calls `init`. The example below shows how you might set custom Data Processing parameters in Analytics.js. +You can manually change the Data Processing parameters by adding settings to the `integrations` object. For Facebook Pixel, you must store these settings in the [Load object](/docs/connections/sources/catalog/libraries/website/javascript/#load-options) so that Segment can set them *before* it calls `init`. The example below shows how you might set custom Data Processing parameters in Analytics.js. ```javascript analytics.load("replace_with_your_write_key", { @@ -213,7 +217,7 @@ Facebook enforces strict guidelines around sending Personally Identifiable Infor Any `track` events with properties containing those keys will be sent to Facebook with those properties omitted. -If you have events that use any of those keys for non-PII properties, you can manually whitelist them using the **Allowlist PII Properties** setting. You may also add to this list and/or optionally hash blocklisted properties with the **Blocklist PII Properties** setting. +If you have events that use any of those keys for non-PII properties, you can manually allowlist them using the **Allowlist PII Properties** setting. You may also add to this list and/or optionally hash blocklisted properties with the **Blocklist PII Properties** setting. ### Inconsistent or Missing Conversions