Introduction
MatchPing is a new request type that happens before the lead submission and allows us to obtain a list of potentially eligible brands and their indicative bids.
It is similar to Ping or CallPing:
- MatchPing should contain as much lead data as possible
- Lead data is then analyzed by PX and run against potential buyers’ filters in order to find the best-matching buyers
- As an output, PX provides the list of unique Brands, any available supplemental brand info, and an indicative bid for each brand
- Publisher can show the Brands to the lead on his branded page, collect consent, and send it as a part of the lead data to PX
Publisher setup
Match Ping integration could be done under an existing publisher account if its type is one of the following:
- Direct Post
- Branded
- Common
Posting URL
Match Ping URL: https://leadapi.px.com/api/lead/matchpingHeader Fields Table
Key | Required | Value |
Content-Type | Yes | Application/json for JSON requests Application/xml for XML requests |
Accept | No | Application/json for JSON response Application/xml for XML response |
Examples
Lead data structure is defined by Vertical integration and should maintain the same structure, though number of required fields is significantly lower.
Minimal configuration of Match Ping request is shown below:
However, it is strongly encouraged to send in as much lead data as possible in order to get more precise results. While selecting potential brands, the most important step is running lead data across campaign filters – so the more information is analysed, the higher the conversion rates are.
Fields Table
Success
Success response will provide a list of potential brands with brand details, indicative bids for those brands (where available) plus MatchPingID.
MatchPingID must then be returned by the publisher along with the Lead data submit in the BrandConsent section in order for PX to know which MatchPing belongs to which lead.
{
"TransactionId": "809674f5-9ba9-4945-ae99-e62315c908f5",
"MatchPingId": "809674f5-9ba9-4945-ae99-e62315c908f5",
"Success": true,
"Payout": null,
"Message": null,
"Errors": null,
"Sold": null,
"RedirectUrl": null,
"BuyerRawResponse": null,
"BuyerGuid": null,
"Environment": "Testing",
"Legs": null,
"Brands": [
{
"PxId": "94aa53a4-6652-4499-9882-44de0dbbd354",
"Name": "Brand 1",
"Description": "Description of Brand 1",
"Uid": null,
"Link": "https://px.com",
"LogoUrl": "https://www.px.com/wp-content/uploads/2022/02/px-site-icon.png",
"PhoneNumber": "123456789",
"TCPA": "TCPA text for Brand 1",
"Bid": 12.34
},
{
"PxId": "0311617f-9e4b-4627-9734-559a2a252c35",
"Name": "Brand 2",
"Description": "Description of Brand 2",
"Uid": "Brand 2 External Id",
"Link": "https://px.com",
"LogoUrl": "https://www.px.com/wp-content/uploads/2022/02/px-site-icon.png",
"PhoneNumber": "123456789",
"TCPA": "TCPA text for Brand 2",
"Bid": 23.45
}
]
}}
<?xml version="1.0" encoding="UTF-8"?>
<Result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<TransactionId>0b156a37-fe10-48c2-b38f-7e7b59497e7a</TransactionId>
<MatchPingId>0b156a37-fe10-48c2-b38f-7e7b59497e7a</MatchPingId>
<Success>true</Success>
<Payout xsi:nil="true" />
<Sold xsi:nil="true" />
<BuyerGuid xsi:nil="true" />
<Environment>Testing</Environment>
<Brands>
<BrandMatch>
<PxId>e4759b65-d688-4af4-9651-1949e6bd5cde</PxId>
<Name>Brand 1</Name>
<Description>Description of Brand 1</Description>
<Link>https://px.com</Link>
<LogoUrl>https://www.px.com/wp-content/uploads/2022/02/px-site-icon.png</LogoUrl>
<PhoneNumber>123456789</PhoneNumber>
<TCPA>TCPA text for Brand 1</TCPA>
<Bid>12.34</Bid>
</BrandMatch>
<BrandMatch>
<PxId>0c9b2083-63ed-44fb-a677-626460c70184</PxId>
<Name>Brand 2</Name>
<Description>Description of Brand 2</Description>
<Uid>Brand 2 External Id</Uid>
<Link>https://px.com</Link>
<LogoUrl>https://www.px.com/wp-content/uploads/2022/02/px-site-icon.png</LogoUrl>
<PhoneNumber>123456789</PhoneNumber>
<TCPA>TCPA text for Brand 2</TCPA>
<Bid>23.45</Bid>
</BrandMatch>
</Brands>
</Result>
Failure
“No matched brands found” is returned to the publisher if PX couldn’t match any brands.
{
"TransactionId": "21CD8A6D-B562-4755-B893-E22B32ED398B",
"MatchPingId": null,
"Success": false,
"Payout": null,
"Message": "No matched brands found",
"Errors": [],
"Sold": null,
"RedirectUrl": null,
"BuyerRawResponse": null,
"BuyerGuid": null,
"Environment": "Production",
"Legs": null,
"Brands": null
}
<?xml version="1.0" encoding="UTF-8"?>
<Result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<TransactionId>1F7E25F3-9C11-4AA6-AD47-83BC075E8130</TransactionId>
<Success>false</Success>
<Payout xsi:nil="true" />
<Message>No matched brands found</Message>
<Errors />
<Sold xsi:nil="true" />
<BuyerGuid xsi:nil="true" />
<Environment>Production</Environment>
</Result>
Next steps
After Match Ping is implemented, it is required to update existing Direct Post and Ping Post integrations with “BrandConsent” section in lead data. Please follow this instructions depending on your integration type: