Branch

Datafly Signal sends in-app events from the Datafly mobile SDKs to the Branch Events API v2 as Branch standard events (and custom events for leads), with the device identifiers, event data and content items.

Prerequisites

Find your Branch key

Your live Branch key (key_live_...) is under Account Settings > Profile in the Branch dashboard. The Events API authenticates with it in the request body.

Integrate the Branch SDK

Branch attributes S2S events to installs its SDK measured. Send the same user ID to Branch (setIdentity) and to Signal (identify) so developer_identity matches.

Configure in Signal

Configuration Fields

FieldRequiredDescription
branch_keyYesYour Branch live key. Found in Account Settings > Profile in the Branch dashboard.
branch_secretNoNot used by the Events API (it authenticates with the Branch key in the request body). Leave blank.

Management UI Setup

  1. Go to Integrations > Add Integration > Branch.
  2. Choose a preset: Default (default), Retail (ecommerce), Travel (travel), Media (media), Insurance (insurance).
  3. Fill in the fields above and click Save.

Request format

A purchase from an Android app:

POST https://api2.branch.io/v2/event/standard
{"branch_key":"key_live_abc","content_items":[{"$price":120,"$product_brand":"NorthEdge","$product_name":"Parka","$quantity":2,"$sku":"SKU_1"},{"$price":19.99,"$product_name":"Gloves","$quantity":1,"$sku":"SKU_2"}],"event_data":{"coupon":"SAVE10","currency":"GBP","revenue":259.99,"shipping":10,"tax":43.33,"transaction_id":"ORD-1001"},"name":"PURCHASE","user_data":{"aaid":"9c9a82fb-d5de-4cd1-90c3-527441c11828","brand":"Google","developer_identity":"crm-user-9","dma_ad_personalization":true,"dma_ad_user_data":true,"dma_eea":false,"environment":"FULL_APP","ip":"203.0.113.9","language":"en-GB","limit_ad_tracking":false,"model":"Pixel 8","os":"Android","os_version":"14","user_agent":"Dalvik/2.1.0 (Linux; U; Android 14; Pixel 8)"}}

Lead and quote events are custom events and go to /v2/event/custom.

Event Mapping

Signal eventVendor eventPresets
sign_upCOMPLETE_REGISTRATIONDefault, Retail, Travel, Media, Insurance
loginLOGINDefault, Retail, Travel, Media, Insurance
view_itemVIEW_ITEMDefault, Retail, Travel, Insurance
searchSEARCHDefault, Retail, Travel, Media
add_to_cartADD_TO_CARTDefault, Retail
begin_checkoutINITIATE_PURCHASEDefault, Retail, Travel, Insurance
purchasePURCHASEDefault, Retail, Travel, Insurance
generate_leadgenerate_leadDefault, Insurance
trial_startedSTART_TRIALDefault, Media
subscription_startedSUBSCRIBEDefault, Media
view_item_listVIEW_ITEMSRetail
add_to_wishlistADD_TO_WISHLISTRetail
view_cartVIEW_CARTRetail
add_payment_infoADD_PAYMENT_INFORetail
booking_completedPURCHASETravel
content_viewedVIEW_ITEMMedia
quote_completedquote_completedInsurance

Identity

Branch needs developer_identity, or os with idfa/idfv (iOS) or aaid (Android). Signal sends the advertising ID by platform, the IDFV on iOS and your user ID as developer_identity; app events with none of them, and every web event, are not sent. No personal data is sent (Branch documents no hashed identifier fields).

user_data.dma_eea is true for visitors in the EEA (from geo); dma_ad_personalization and dma_ad_user_data carry marketing consent, as Branch asks for EEA users. Assign a consent category to the integration in Signal to gate delivery altogether.

Troubleshooting

ProblemSolution
Events rejected with 400Check the Branch key, and that events carry a device identifier or user ID.
Late events missingBranch accepts events in real time only; it does not ingest back-dated events, so events delayed by retries may not count.

Blueprint

The Branch blueprint version is 0.3.0. It was last reviewed against the vendor’s documentation on 2026-09-23.

See also