Skip to content

Commit

Permalink
Merge pull request #6444 from segmentio/develop
Browse files Browse the repository at this point in the history
Release 24.17.2
  • Loading branch information
cmastr authored Apr 25, 2024
2 parents 0dc5fbf + 1661d54 commit 6b466f9
Show file tree
Hide file tree
Showing 8 changed files with 159 additions and 11 deletions.
2 changes: 1 addition & 1 deletion src/_data/catalog/destination_categories.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
# destination categories last updated 2024-04-23
# destination categories last updated 2024-04-25
items:
- display_name: A/B Testing
slug: a-b-testing
Expand Down
4 changes: 2 additions & 2 deletions src/_data/catalog/destinations.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
# destination data last updated 2024-04-23
# destination data last updated 2024-04-25
items:
- id: 637e8d185e2dec264895ea89
display_name: 1Flow
Expand Down Expand Up @@ -81623,7 +81623,7 @@ items:
mobile: false
server: false
warehouse: true
cloudAppObject: false
cloudAppObject: true
components: []
browserUnbundlingSupported: false
browserUnbundlingPublic: false
Expand Down
2 changes: 1 addition & 1 deletion src/_data/catalog/destinations_private.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
# destination data last updated 2024-04-23
# destination data last updated 2024-04-25
items:
- id: 54521fd925e721e32a72eee1
display_name: Pardot
Expand Down
2 changes: 1 addition & 1 deletion src/_data/catalog/source_categories.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
# source categories last updated 2024-04-23
# source categories last updated 2024-04-25
items:
- display_name: A/B Testing
slug: a-b-testing
Expand Down
2 changes: 1 addition & 1 deletion src/_data/catalog/sources.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AUTOGENERATED FROM PUBLIC API. DO NOT EDIT
# sources last updated 2024-04-23
# sources last updated 2024-04-25
items:
- id: 8HWbgPTt3k
display_name: .NET
Expand Down
144 changes: 144 additions & 0 deletions src/connections/destinations/catalog/actions-moloco-rmp/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
---
title: Moloco Commerce Media Destination
id: 65f05e455b125cddd886b793
beta: true
private: true
---

[Moloco Commerce Media](https://www.moloco.com/products/moloco-retail-media-platform){:target="_blank”} (MCM) is a technology solution that empowers marketplaces and online retailers to build and scale a retail media business (for example, sponsored ads). Moloco’s solution helps platforms leverage and activate their first-party data to deliver highly relevant and performant ads, automate ad decision-making, and scale their ads business.

The Moloco Commerce Media destination can send user events collected using the Segment SDK to Moloco’s platform for a simplified performance ads integration.

This allows you to run performance advertising without having to build your own backend system to ingest and send user events data in realtime to Moloco.

## Getting started

### Prerequisites
Before you configure the Moloco Commerce Media destination, add a source to Segment and use the [Source Debugger](/docs/connections/sources/debugger/) to verify Segment is receiving events.

Before you configure the Moloco Commerce Media destination, reach out to your Moloco representative about the following account information:
- Moloco Platform ID
- Moloco Event Service API key

After you obtain that account information, you can move on to the Segment app.

### Set up your Moloco destination
1. From the Segment web console, click **Catalog**.
2. On the Catalog page, search for “Moloco”, select it, and click **Add destination**.
3. Choose which of your sources to connect the destination to.
4. In the Moloco MCM destination settings page, fill the Platform ID and API key fields with your Moloco Platform ID and Event Service API key.
5. Select “APP" if your source endpoint is a mobile app, and "SITE" if it is a website.

## Identify

Moloco strongly recommends that you identify your logged-in users using Segment's [Identify method](/docs/connections/spec/identify/) and that you hash the user ID before sending it to Moloco.

Please find an example Identify call below:

```js
analytics.identify('361b1fdfbeaa9d64a13c033eb9f970dc6740f6bc', {
email: '[email protected]'
});
```

Once a user is identified, each call to Segment's [Track method](/docs/connections/spec/track/) automatically records the user ID.
Users that are not logged in can be tracked using an [anonymousID](/docs/connections/spec/identify/#anonymous-id). Moloco Commerce Media does not use anonymousIDs for users that are not logged in. Segment recommends formatting your anonymousID in UUID format.

> info" "
> If you hash the user ID before sending it to Moloco, ensure you reuse the same hashed ID when calling other Moloco APIs.

## Track

If you’re not familiar with the Segment Spec, take a look to understand what the [Track method](/docs/connections/spec/track/) does. The mappings in the Moloco Commerce Media destination are built based on the Segment [Ecommerce Spec](/docs/connections/spec/ecommerce/v2/).

Please find below an example call to track a product detail page (PDP) view event:

```js
analytics.track("Product Viewed", {
product_id: "1193",
name: "Newage Uplift Eye Care Cream",
price: 19.99
currency: "USD"
quantity: 1,
image_url: "https://www.example.com/image.png"
});
```

## Page

If you’re not familiar with the Segment Spec, take a look to understand what the [Page method](/docs/connections/spec/page/) does.

Please find below an example call to page:

```js
analytics.page();
```

If you use Segment’s Web SDK, this call automatically collects the page information. Here’s an example of page information automatically collected using Segment’s Web SDK.

```js
"page": {
"path": "/account",
"referrer": "",
"search": "",
"title": "Your Account",
"url": "https://www.example.com/account"
},
```

However for iOS and Android, it won’t collect page information.

Moloco Commercial Media requires the [page_id](https://mcm-docs.moloco.com/docs/51-user-event-data-specifications#page_view-event-type){:target="_blank”} attribute for a PAGE_VIEW event. Using the Web SDK, the page_id can be associated with the path attribute. However for iOS/Android, Moloco Commercial Media recommends using the Page Identifier Token field.

The Page Identifier Token field accepts key:value pairs of strings that can identify the page.
Stringification Logic is: {key}:{value}s concatenated by ";"

Moloco Commercial Media ignores the Page Identifier Token if page_id is passed, as page_id has a higher priority.

Here’s an example of a Page Identifier Token that could be tracked in a mobile app.

Say the input had the following schema:

```js
...
"event": "Product List Viewed",
"vertical": "fruit"
...
```

and user chose the following mapping:

```js
// "event" represents the name of the event
event: properties.event
// "vertical" represents which vertical the event happened on
vertical: properties.vertical

// The combination of those two tokens can repsent
// "Which action happened on which vertical"
```

The tokens are stringified into the following:

```js
"event:Product List Viewed;vertical:fruit"
```

The tokens are stringified in the format of the above example because they are key-value pairs concatenated by a semicolon (;).

> info " "
> if you decide to use the Page Identifier Token in your mobile app, reuse the same Page Identifier Token in place of page_id when calling Moloco’s APIs.
## Mappings

In the Mappings tab, some fields are chosen by default if some common fields map to Moloco Event’s fields. If the mapped key does not exist in the input data, it won’t trigger an error. Instead, the mapping will not pass any value.

If you are using **the default fields in a custom way**, please confirm that your mapping meets Moloco's requirements.

Default Mappings are not hard rules. They can be modified to your convenience.

{% include components/actions-fields.html %}
## Monitoring

Once the mappings are configured correctly, you can verify the flow of events from your source to Moloco’s destination in the [Delivery Overview](/docs/connections/delivery-overview/) tab of your Moloco destination. If you correctly configured your destination, you should see a growing **Successful delivery** count.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ rewrite: true
strat: facebook
id: 56fc7e4680412f644ff12fb9
---

> warning ""
> For new implementations, [Facebook no longer recommends using App Events]([url](https://developers.facebook.com/docs/marketing-api/app-event-api/)). Instead, they suggest switching to [Facebook Conversions API (Actions)](https://segment.com/docs/connections/destinations/catalog/actions-facebook-conversions-api/) for all server-side data tracking needs.
[Facebook App Events](https://developers.facebook.com/docs/app-events){:target="_blank"} collects required information from one of Segment's mobile SDKs ([iOS](/docs/connections/sources/catalog/libraries/mobile/ios/){:target="_blank"}, [Android](/docs/connections/sources/catalog/libraries/mobile/android/){:target="_blank"}, or [Swift](/docs/connections/sources/catalog/libraries/mobile/apple/){:target="_blank"}) and sends it from Segment's servers to Facebook App Events servers.

The iOS device-mode connection for the Facebook App Events destination is open source and [available on GitHub](https://github.com/segment-integrations/analytics-ios-integration-facebook-app-events){:target="_blank"}.
Expand All @@ -30,7 +34,7 @@ This page is about the **Facebook App Events**. For documentation on other Faceb
1. From the Segment web app, click **Catalog**.
2. Search for "Facebook App Events" in the Catalog, select it, and choose which of your sources to connect the destination to.
3. In the destination settings, enter your Facebook App ID which can be retrieved from your [Facebook Apps dashboard](https://developers.facebook.com/apps/){:target="_blank"}.
4. Once you turn on the Facebook App Events integration in your app's Segment project, we'll start sending `track` data to Facebook's App Events endpoints.
4. After you turn on the Facebook App Events integration in your app's Segment project, we'll start sending `track` data to Facebook's App Events endpoints.

## Screen

Expand All @@ -43,9 +47,9 @@ If you're not familiar with the Segment Specs, take a look to understand what th
Our integration also supports using Segment `screen` events as `track` events. For example, if you had a `screen` event named `Confirmation` you could map the invocation of this to a Facebook app event as you would with Segment `track` events.
To use this functionality you must opt into it using the integration setting named **Use Screen Events as Track Events**. Once enabled, you should start seeing `screen` events populate in Facebook App Events. The screen name you provide will be bookended with the words **Viewed** and **Screen**. So, if you have a `screen` event with the name property set to `Welcome`, it will show up in Facebook as an event called **Viewed Welcome Screen**.
To use this functionality you must opt into it using the integration setting named **Use Screen Events as Track Events**. After enabling, you should start seeing `screen` events populate in Facebook App Events. The screen name you provide will be bookended with the words **Viewed** and **Screen**. So, if you have a `screen` event with the name property set to `Welcome`, it will show up in Facebook as an event called **Viewed Welcome Screen**.
Note, the integration will not automatically translate `screen` events to spec'd Facebook events as our `track` method does. If you would like to map these events to specific Facebook events you can do this using the **Map your events to Standard FB App Events** setting. Be sure to specify the event as **Viewed** `name` **Screen** where `name` is the name property of the `screen` event.
Note: the integration will not automatically translate `screen` events to spec'd Facebook events as our `track` method does. If you would like to map these events to specific Facebook events you can do this using the **Map your events to Standard FB App Events** setting. Be sure to specify the event as **Viewed** `name` **Screen** where `name` is the name property of the `screen` event.
## Track
Expand Down Expand Up @@ -246,7 +250,7 @@ You will have to be sure that the [IDFA](/docs/connections/sources/catalog/libra

Similarly, on Android, you'll need to include the Play Services Ads library as [mentioned here](/docs/connections/sources/catalog/libraries/mobile/android/#how-do-you-handle-unique-identifiers-) in order for the `advertisingId` to populate.

Once you've added these, you will start to see the `context.device.advertisingId` populate and the `context.device.adTrackingEnabled` flag set to `true` unless the user has ad tracking limited or is using a mobile ad blocker.
After you've added these, you will start to see the `context.device.advertisingId` populate and the `context.device.adTrackingEnabled` flag set to `true` unless the user has ad tracking limited or is using a mobile ad blocker.


Facebook requires that payloads include the following:
Expand Down
2 changes: 1 addition & 1 deletion src/privacy/data-controls.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ blocked if you enable these controls.

If you block Segment data at the source level using these controls, the data
does not enter Segment and we can not Replay it. Additionally, if you have
[Privacy Controls](#privacy-controls) configured to change how you route Red and
Privacy Controls configured to change how you route Red and
Yellow data into or out of Segment, the standard controls respect the rules set
by those Controls. For example, if you have a Privacy Control set up to block
**Red** data at the Source-level, any new fields you classify in the Data Inventory as
Expand Down

0 comments on commit 6b466f9

Please sign in to comment.