Quick Start

Real Estate Objects & Events

A Brytelytics Real Estate package is a set of events, objects, and rules that set boundaries on the framework used by the Brytelytics algorithms to parse lead behavior and predict their engagement and timing thresholds. The tracked events are also used to generate reports for admins and agents in the Brytelytics dashboard and the Lead Voyager product.

The real estate package contains all user events that may be performed on a real estate website.

Packages are stored as JSON files and are accessible from the Brytecore CDN. You can also view the open source project for this package on GitHub.

Package Dependencies

This package depends on many events defined in the Core package and objects defined in the default schemas.

The Brytelytics API library automatically loads the Core package and default schemas. However, you may need to reference the object and event structure when using this package.

Namespace

Every event in this package must use the realestate namespace. Whenever you log an event, the event name should be preceded with realestate..

Example of using the realestate namespace when calling a real estate event.

brytescore( "realestate.viewedListing", listingObject );

Example of using the realestate namespace when calling a real estate event.

_apiManager.brytescore(property: "realestate.viewedListing", data: listingObject);

Example of using the realestate namespace when calling a real estate event.

brytescore.brytescore("realestate.viewedListing", listingObject);

Object Schemas

This package includes some default object schemas that can be used inside your event data parameter object. These define optional JavaScript standard objects that can be created to simplify repeated calls to the Brytescore API. For example, if you log viewedListing, calcMortgagePayment, and likedListing on the same page, you may wish to create a listing object to pass with these events, instead of manually adding each listing property to the data object.

The real estate package contains five object schemas, listing, neighborhood, pointOfInterest, realEstateForm and search.

listing Object

The listing object is a single property for sale or rent. It can be passed to any of the listing events supported by this package.

address
address
required
The listing address
bedrooms
number
The number of bedrooms
features
array of string
The MLS features on this property
fullBaths
number
The number of full baths
geoLocation
geo
The geoLocation (latitude/longitude) of this property
halfBaths
number
The number of half baths
isAcreage
boolean
This property contains acreage
isCondo
boolean
This property is a condominium
isForeclosure
boolean
This property is distressed
isLot
boolean
This property is land or a lot
isMultiFamily
boolean
This property is a multi-family residence
isRental
boolean
This property is for lease
isSingleFamily
boolean
This property is a single-family residence
listingURL
uri
The link to the page containing details about this property
mlsId
string
required
The unique ID of this property from the Multiple Listing Service
neighborhood
neighborhood
The neighborhood (not subdivision) the property is within
photoURL
uri
The primary photo of the property
price
number
required
The offered value of the property for sale or rent
schoolElementary
string
The elementary school district in which this property resides
schoolHigh
string
The high school district in which this property resides
schoolMiddle
string
The middle school district in which this property resides
squareFeet
number
The square footage of the property
subdivision
string
The subdivision of which this property is a part
/* Example use of the listing object */

// Create a variable to store the address
var address = {
	"streetAddress": "196 Humperdink Lane",
	"city": "Florin City",
	"stateProvince": "Florin",
	"postalCode": "00990"
};

// Create a variable to store the geoLocation
var geo = {
	"latitude": 33.859821,
	"longitude": -84.168221
};

// Create a variable storing the listing object
var listing = {
	"address": address,
	"features": [
		"Interior: Master on main",
		"Interior: Hardwood floors",
		"Interior: Fireplace",
		"Exterior: Level lot",
		"Exterior: Deck/Patio",
		"Exterior: Fenced yard",
		"Garage/Parking: 3 car or more",
		"Garage/Parking: Attached"
	],
	"fullBaths": 3,
	"geoLocation": geo,
	"halfBaths": 1,
	"isSingleFamily": true,
	"price": 349000,
	"listingURL": "http://www.yoursite.com/listings/2983599/",
	"mlsId": "2983599",
	"photoURL": "http://images.yoursite.com/2983599_1.jpg"
};

// Build a data object
var data = {
	"listing": listing
};

// Attach the save event to the saveButton click
document.getElementById('saveButton').addEventListener('click', function () {
	brytescore( "realestate.savedListing", data );
});

// Log the viewedListing event on document load
document.addEventListener('DOMContentLoaded', function() {
	brytescore( "realestate.viewedListing", data );
});
/* Example use of the listing object */

// Build a data object with listing information
let data = [
	"listing": [
		"address": [
			"streetAddress": "196 Humperdink Lane",
			"city": "Florin City",
			"stateProvince": "Florin",
			"postalCode": "00990"
		],
		"features": [
			"Interior: Master on main",
			"Interior: Hardwood floors",
			"Interior: Fireplace",
			"Exterior: Level lot",
			"Exterior: Deck/Patio",
			"Exterior: Fenced yard",
			"Garage/Parking: 3 car or more",
			"Garage/Parking: Attached"
		],
		"fullBaths": 3,
		"geoLocation": [
			"latitude": 33.859821,
			"longitude": -84.168221
		],
		"halfBaths": 1,
		"isSingleFamily": true,
		"price": 349000,
		"listingURL": "http://www.yoursite.com/listings/2983599/",
		"mlsId": "2983599",
		"photoURL": "http://images.yoursite.com/2983599_1.jpg"
	]
] as [String : AnyObject]

// Attach the save event to the saveButton click
@IBAction func saveButton(_ sender: UIButton) {
	_apiManager.brytescore(property: "realestate.savedListing", data: data);
}

// Log the viewedListing event in viewDidAppear
_apiManager.brytescore(property: "realestate.viewedListing", data: data);
/* Example use of the listing object */

// Create a variable to store the address
HashMap<String, Object> address = new HashMap<String, Object>() {{
	put("street_address", "196 Humperdink Lane");
	put("city", "Florin City");
	put("state_province", "Florin");
	put("postal_code", "00990");
}};

// Create a variable to store the geoLocation
HashMap<String, Float> geoLocation = new HashMap<String, Float>() {{
	put("latitude", 33.859821);
	put("longitude", -84.168221);
}};

// Create a variable storing the features list
List<String> features = new ArrayList<String>() {{
	add("Interior: Master on main");
	add("Interior: Hardwood floors");
	add("Interior: Fireplace");
	add("Exterior: Level lot");
	add("Exterior: Deck/Patio");
	add("Exterior: Fenced yard");
	add("Garage/Parking: 3 car or more");
	add("Garage/Parking: Attached");
}};

// Create a variable storing the listing object
HashMap<String, Object> listing = new HashMap<String, Object>() {{
	put("price", 349000);
	put("mls_id", "2983599");
	put("address", address);
	put("geoLocation", geoLocation);
	put("photoURL", "http://images.yoursite.com/2983599_1.jpg");
	put("listingURL", "http://www.yoursite.com/listings/2983599/");
	put("fullBaths", 3);
	put("halfBaths", 1);
	put("bedrooms", 4);
	put("isSingleFamily", true);
	put("subdivision", "Buttercup Rise");
	put("features", features);
}};

// Build a data object
HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

// Attach the save event to the saveButton click
Button saveButton = findViewById(R.id.saveButton);
saveButton.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {
		brytescore.brytescore("realestate.savedListing", data);
	}
});

// Log the viewedListing event in onResume
brytescore.brytescore("realestate.viewedListing", data);

neighborhood Object

Neighborhoods are geographic communities within a town, suburb, city or rural area. Generally considered more social than legal, neighborhood boundaries may not be agreed upon by its residents.

Neighborhoods are not the same as MLS-defined subdivisions, which are comprised of legally subdivided lots of land.

name
string
required
The name of the neighborhood.
boundaries
array of geo
The geographic boundaries of the neighborhood.
/* neighborhood example */

var bounds = [
	{"latitude": -84.49941, "longitude": 33.593284},
	{"latitude": -84.497209, "longitude": 33.593146},
	{"latitude": -84.499428, "longitude": 33.590944},
	{"latitude": -84.50412, "longitude": 33.589757},
	...
	{"latitude": -84.584384, "longitude": 33.629605}
];

var hood = {
	"name": "Hill Valley",
	"boundaries": bounds
}
/* neighborhood example */

let hood = [
	"name": "Hill Valley",
	"boundaries": bounds = [
		["latitude": -84.49941, "longitude": 33.593284],
		["latitude": -84.497209, "longitude": 33.593146],
		["latitude": -84.499428, "longitude": 33.590944],
		["latitude": -84.50412, "longitude": 33.589757],
		...
		["latitude": -84.584384, "longitude": 33.629605]
	]
] as [String : AnyObject]
/* neighborhood example */

HashMap<String, Object> location1 = new HashMap<String, Object>() {{
	put("latitude", -84.49941);
	put("longitude", 33.593284)
}};

HashMap<String, Object> location2 = new HashMap<String, Object>() {{
	put("latitude", -84.497209);
	put("longitude", 33.593146)
}};

HashMap<String, Object> location3 = new HashMap<String, Object>() {{
	put("latitude", -84.499428);
	put("longitude", 33.590944)
}};

HashMap<String, Object> location4 = new HashMap<String, Object>() {{
	put("latitude", -84.50412);
	put("longitude", 33.589757)
}};

HashMap<String, Object> location8 = new HashMap<String, Object>() {{
	put("latitude", -84.584384);
	put("longitude", 33.589757)
}};

List<<HashMap<String, Object>> bounds = new ArrayList<HashMap<String, Object>>() {{
	add(location1);
	add(location2);
	add(location3);
	add(location4);
	...
	add(location8);
}}

HashMap<String, Object> hood = new HashMap<String, Object>() {{
	"name": "Hill Valley",
	"boundaries": bounds
}};

pointOfInterest Object

A point of interest is a specific location that someone may find useful or interesting. Examples may include anything from landmarks to scenic views to rest areas.

name
string
required
The name of the point of interest.
address
address
The physical address of the point of interest.
/* pointOfInterest example */

var address = {
	"streetAddress": "Euston Road",
	"streetAddress2": "Platform 9¾",
	"city": "London",
	"stateProvince": "England",
	"postalCode": "N1 9AL",
	"country": "UK"
};

var poi = {
	"name": "Hogwarts School of Witchcraft and Wizardry",
	"address": address
};
/* pointOfInterest example */

let poi = [
	"name": "Hogwarts School of Witchcraft and Wizardry",
	"address": [
		"streetAddress": "Euston Road",
		"streetAddress2": "Platform 9¾",
		"city": "London",
		"stateProvince": "England",
		"postalCode": "N1 9AL",
		"country": "UK"
	]
]
/* pointOfInterest example */

HashMap<String, String> address = new HashMap<String, String>() {{
	"streetAddress": "Euston Road",
	"streetAddress2": "Platform 9¾",
	"city": "London",
	"stateProvince": "England",
	"postalCode": "N1 9AL",
	"country": "UK"
}};

HashMap<String, Object> poi = new HashMap<String, Object>() {{
	"name": "Hogwarts School of Witchcraft and Wizardry",
	"address": address
};

realEstateForm Object

A user-submitted data entry form. Contains properties for common real estate form fields.

agentName
string
The name of the sender's agent
fromEmail
email
The email address of the sender
fromName
string
The name of the sender
fromTelephonetelephone
The telephone number(s) of the sender
isPrequalified
boolean
The sender is prequalified for a mortgage
isWorkingWithAgent
boolean
The sender is working with an agent
message
string
The contents of the message provided by the sender
name
string
The name of the form (ex: contact, about, etc)
relatedListing
listing
The listing related to this form submission
subject
string
The subject of the form or email
toEmail
email
The email address of the person to which the form was sent
toName
string
The name of the person to which the form was sent
/* realEstateForm example */

var listing = {
	"price": 349000,
	"mlsId": "2983599"
	...
};

var form = {
	"fromEmail": "frank@fllngwtr.com",
	"fromName": "Frank Wright",
	"fromTelephone": {
		"mobile": "555.867.5309"
	},
	"isPreQualified": false,
	"isWorkingWithAgent": false,
	"message": "Hi, I need an agent to sell my historic home in Pennsylvania.",
	"name": "agent-contact-form",
	"subject": "Looking for an agent",
	"toEmail": "agent@yourcompany.com",
	"toName": "Suzie Agent",
	"relatedListing": listing
};
/* realEstateForm example */

let form = [
	"fromEmail": "frank@fllngwtr.com",
	"fromName": "Frank Wright",
	"fromTelephone": {
		"mobile": "555.867.5309"
	},
	"isPreQualified": false,
	"isWorkingWithAgent": false,
	"message": "Hi, I need an agent to sell my historic home in Pennsylvania.",
	"name": "agent-contact-form",
	"subject": "Looking for an agent",
	"toEmail": "agent@yourcompany.com",
	"toName": "Suzie Agent",
	"relatedListing": [
		"price": 349000,
		"mlsId": "2983599"
		...
	]
]
/* realEstateForm example */

HashMap<String, Object> fromTelephone = new HashMap<String, Object>() {{
	put("mobile", "555.867.5309");
}};

HashMap<String, Object> listing = new HashMap<String, Object>() {{
	put("price", 349000);
	put("mlsId", "2983599");
	...
}};

HashMap<String, Object> form = new HashMap<String, Object>() {{
	put("fromEmail": "frank@fllngwtr.com");
	put("fromName": "Frank Wright");
	put("fromTelephone": fromTelephone);
	put("isPreQualified": false);
	put("isWorkingWithAgent": false);
	put("message": "Hi, I need an agent to sell my historic home in Pennsylvania.");
	put("name": "agent-contact-form");
	put("subject": "Looking for an agent");
	put("toEmail": "agent@yourcompany.com");
	put("toName": "Suzie Agent");
	put("relatedListing": listing);
};

search Object

The object containing details about a specific real estate property search the user performed.

address
address
The address a user entered into the search
bedroomsMax
number
The maximum number of bedrooms used in this search
bedroomsMin
number
The minimum number of bedrooms used in this search
cities
array of string
The cities the user searched within
counties
array of string
The counties the user searched within
description
string
A human-readable text description of this search
driveTimeStartAddress
address
Start location for the drive in a drive time search
driveTimeStartTime
string
Time of day of the drive in a drive time search
features
array of string
The features the user selected for this search
fullBathsMax
number
The maximum number of full bathrooms used in this search
fullBathsMin
number
The minimum number of full bathrooms used in this search
halfBathsMax
number
The maximum number of half bathrooms used in this search
halfBathsMin
number
The minimum number of half bathrooms used in this search
id
string
The website's internal unique identifier for this search
isAcreage
boolean
This search was for acreage
isCondo
boolean
This search was for condominiums
isDriveTimeSearch
boolean
This search contains "drive time" criteria
isForeclosureAcreage
boolean
This search was for distressed properties
isLot
boolean
This search was for land or lots
isMultiFamily
boolean
This search was for multi-family residences
isPointOfInterestSearch
boolean
This search returned results near a point of interest
isRadiusSearch
boolean
This search was for a specific radius
isRental
boolean
This search was for leases
isSingleFamily
boolean
This search was for single-family residences
isWalkTimeSearch
boolean
This search contains "walk time" criteria
mlsIds
array of string
The list of MLS IDs used in the search
neighborhood
neighborhood
The neighborhood the results are within
pointOfInterest
pointOfInterest
The pointOfInterest used in a point of interest search
postalCodes
array of string
The postal or zip codes passed to the search
priceMax
number
The maximum price of the search
priceMin
number
The minimum price of the search
radiusGeoLocation
geo
The geoLocation used as the center of the radius search
radiusInMiles
number
The radius of the radius search
radiusSearchAddress
address
The address used as the center of a radius search
resultsCount
number
The total number of results returned by the search
schoolElementary
string
The elementary school district the user searched within
schoolHigh
string
The high school district the user searched within
schoolMiddle
string
The middle school district the user searched within
searchURL
uri
The hyperlink to this search
similarTo
listing
Searched for homes similar to provided listing
sortedBy
array of accepted values†
An array of items the results are sorted by
subdivision
string
The name of the subdivision used in the search
walkTimeStartAddress
address
Start location for the walk in a walk time search
walkTimeStartTime
string
Time of day of the walk in a walk time search
yearBuiltMax
number
The latest year homes in this search were built
yearBuiltMin
number
The earliest year homes in this search were built


† Accepted Values for realestate.search.sortBy

ValueDescription
priceHighestSorted by price, highest to lowest
priceLowestSorted by price, lowest to highest
addressSorted by street address
distanceClosestSorted by proximity to radius or point of interest
distanceFurthestSorted by distance from radius of point of interest, furthest to closest
photoCountHighestSorted by number of photos, most to least
photoCountLowestSorted by number of photos, least to most
bedroomsHighestSorted by bathrooms, most to least
bedroomsLowestSorted by bedrooms, least to most
bathroomsHighestSorted by bathrooms, most to least
bathroomsLowestSorted by bathrooms, least to most
squareFeetHighestSorted by square feet, highest to lowest
squareFeetLowestSorted by square feet, lowest to highest
yearBuiltNewestSorted by year built, newest to oldest
yearBuiltOldestSorted by year built, oldest to newest
dateListedNewestSorted by listing date, newest to oldest
dateListedOldestSorted by listing date, oldest to newest
featuredListingsSorted by featured listings
otherAny unlisted field
/* Example use of the search object */

// Create the search object
var search = {
	"bedroomsMin": 4,
	"fullBathsMin": 2,
	"isCondo": true,
	"isSingeFamily": true,
	"priceMax": 450000,
	"searchURL": "http://www.yourwebsite.com/listings?beds=4&baths=2&condo=1&single=1&minprice=450000"
};

var data = {
	"search": search
};

// Attach the save event to the saveButton click
document.getElementById('saveButton').addEventListener('click', function () {
	brytescore( "realestate.savedSearch", data );
});

// Log the viewedListing event on document load
document.addEventListener('DOMContentLoaded', function() {
	brytescore( "realestate.searchedListings", data );
});
/* Example use of the search object */

// Create the data object

let data = [
	"search": [
		"bedroomsMin": 4,
		"fullBathsMin": 2,
		"isCondo": true,
		"isSingeFamily": true,
		"priceMax": 450000,
		"searchURL": "http://www.yourwebsite.com/listings?beds=4&baths=2&condo=1&single=1&minprice=450000"
	]
]

// Attach the save event to the saveButton click
@IBAction func saveButton(_ sender: UIButton) {
	_apiManager.brytescore(property: "realestate.savedSearch", data: data)
}

// Log the searchedListings event in viewDidAppear
_apiManager.brytescore(property: "realestate.searchedListings", data: data)
/* Example use of the search object */

// Create the search object
HashMap<String, Object> search = new HashMap<String, Object>() {{
	put("bedroomsMin", 4);
	put("fullBathsMin", 2);
	put("isCondo", true);
	put("isSingeFamily", true);
	put("priceMax", 450000);
	put("searchURL", "http://www.yourwebsite.com/listings?beds=4&baths=2&condo=1&single=1&minprice=450000");
}};

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("search", search);
}};

// Attach the save event to the saveButton click
Button saveButton = findViewById(R.id.saveButton);
saveButton.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {
		brytescore.brytescore("realestate.savedSearch", data);
	}
});

// Log the searchedListings event in onResume
brytescore.brytescore("realestate.searchedListings", data);

Changes to Authentication Events

The core Authentication Events are slightly modified for real estate. The userClassification property is an enum, changed from a string.

Valid values for userClassification are agent, staff, and lead.

Listing Events

deletedSavedListing

The user deleted one of his/her saved listings.

See also: savedListing

listing
listing
required
The saved listing data
/* deletedSavedListing example */

brytescore( "realestate.deletedSavedListing", { "listing": listing } );
/* deletedSavedListing example */

let data = [
	"listing": listing
]

_apiManager.brytescore(property: "realestate.deletedSavedListing", data: data);
/* deletedSavedListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.deletedSavedListing", data);

dislikedListing

The user 'disliked' a listing.

See also: likedListing

listing
listing
required
The listing that was disliked
reason
string
The reason for disliking the listing
/* dislikedListing example */

var data = {
	"listing": listing,
	"reason": "Bedrooms look too small. No double ovens."
};

brytescore( "realestate.dislikedListing", data );
/* dislikedListing example */

let data = [
	"listing": listing,
	"reason": "Bedrooms look too small. No double ovens."
]

_apiManager.brytescore(property: "realestate.dislikedListing", data: data);
/* dislikedListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing": listing);
	put("reason": "Bedrooms look too small. No double ovens.");
}};

brytescore.brytescore("realestate.dislikedListing", data);

hidListing

The user hid a listing from search results. This listing will no longer display when future searches are performed.

See also: unhidListing

listing
listing
required
The listing that was hidden
/* hidListing example */

brytescore( "realestate.hidListing", { "listing": listing } );
/* hidListing example */

let data = [
	"listing": listing
]

_apiManager.brytescore(property: "realestate.hidListing", data: data);
/* hidListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.hidListing", data);

likedListing

The user 'liked' a listing.

See also: dislikedListing

listing
listing
required
The listing that was liked
reason
string
The reason for liking the listing
/* likedListing example */

var data = {
	"listing": listing,
	"reason": "Big bedrooms. Double ovens."
}

brytescore( "realestate.likedListing", data );
/* likedListing example */

let data = [
	"listing": listing,
	"reason": "Big bedrooms. Double ovens."
]

_apiManager.brytescore(property: "realestate.likedListing", data: data);
/* likedListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing": listing);
	put("reason": "Big bedrooms. Double ovens.");
}};

brytescore.brytescore("realestate.likedListing", data);

listingImpression

The listing was displayed in a page of search results. This should only be logged if the listing was actually on the user's screen. It is not unusual to log this event many times per searchedListings event, depending on your website's search results pagination rules.

See also: viewedListing

listing
listing
required
The listing
/* listingImpression example */

brytescore( "realestate.listingImpression", { "listing": listing } );
/* listingImpression example */
let data = [
	"listing": listing
]

_apiManager.brytescore(property: "realestate.listingImpression", data: data);
/* listingImpression example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.listingImpression", data);

playedListingVideo

The user played a video about a listing.

listing
listing
The listing to which this video is related.
videoUrl
uri
The URL of the video
/* playedListingVideo example */

var data = {
	"listing": listing,
	"videoUrl": "https://www.youtube.com/watch?v=KnB4FOCgfKs"
};

brytescore( "realestate.playedListingVideo", data );
/* playedListingVideo example */

let data = [
	"listing": listing,
	"videoUrl": "https://www.youtube.com/watch?v=KnB4FOCgfKs"
]

_apiManager.brytescore(property: "realestate.playedListingVideo", data: data);
/* playedListingVideo example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	"listing": listing,
	"videoUrl": "https://www.youtube.com/watch?v=KnB4FOCgfKs"
}};

brytescore.brytescore("realestate.playedListingVideo", data);

printedDrivingDirections

The user printed driving directions to a listing.

See also: viewedDrivingDirections

listing
listing
required
The listing the user was viewing when the directions were printed
startAddress
address
required
The starting address for the directions
/* printedDrivingDirections example */

var data = {
	"listing": listing,
	"startAddress": address
};

brytescore( "realestate.printedDrivingDirections", data );
/* printedDrivingDirections example */

let data = [
	"listing": listing,
	"startAddress": address
]

_apiManager.brytescore(property: "realestate.printedDrivingDirections", data: data);
/* printedDrivingDirections example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
	put("startAddress", address);
}};

brytescore.brytescore("realestate.printedDrivingDirections", data);

printedListing

The user printed the details of a listing.

See also: printedListingFlyer

listing
listing
required
The listing that was printed
/* printedListing example */

brytescore( "realestate.printedListing", { "listing": listing } );
/* printedListing example */

let data = [
	"listing": listing
]

_apiManager.brytescore(property: "realestate.printedListing", data: data);
/* printedListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.printedListing", data);

printedListingFlyer

The user printed an online flyer for the listing.

See also: printedListing, viewedListingFlyer

listing
listing
required
The listing that was printed
/* printedListingFlyer example */

brytescore( "realestate.printedListingFlyer", { "listing": listing } );
/* printedListingFlyer example */

let data = [
	"listing": listing
]

_apiManager.brytescore(property: "realestate.printedListingFlyer", data: data);
/* printedListingFlyer example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.printedListingFlyer", data);

ratedListing

The user rated a listing.

listing
listing
required
The listing that was rated
rating
string
required
The rating provided by the user
/* ratedListing example */

var data = {
	"listing": listing,
	"rating": "4 Stars"
};

brytescore( "realestate.ratedListing", data );
/* ratedListing example */

let data = [
	"listing": listing,
	"rating": "4 Stars"
]

_apiManager.brytescore(property: "realestate.ratedListing", data: data);
/* ratedListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
	put("rating", "4 Stars");
}};

brytescore.brytescore("realestate.ratedListing", data);

requestedInfo

The user submitted a request for more information about a listing.

form
realEstateForm
required
The form data the user submitted
/* requestedInfo example */

brytescore( "realestate.requestedInfo", { "form": form } );
/* requestedInfo example */

let data = [
	"form": form,
]

_apiManager.brytescore(property: "realestate.requestedInfo", data: data);
/* requestedInfo example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("form", form);
}};

brytescore.brytescore("realestate.requestedInfo", data);

requestedShowing

The user requested a showing for a listing.

form
realEstateForm
required
The form data the user submitted
requestedDateTime
timestamp
required
The date and time the user wishes to visit the listing (ISO 8601 String)
/* requestedShowing example */

// Note that Date.toISOString returns a UTC time, so if the below code
// is run in the Eastern time zone, you will get "2015-12-10T21:30:00.000Z"

var requestedDate = new Date("12/10/2015 16:30");
requestedDate = requestedData.toISOString();

var data = {
	"form": form,
	"requestedDateTime": requestedDate
};

brytescore( "realestate.requestedShowing", data );
/* requestedShowing example */

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMdd'T'HHmmssZ"

let requestedDate = dateFormatter.date(from: "12/10/2015 16:30")

let data = [
	"form": form,
	"requestedDateTime": requestedDate
]

_apiManager.brytescore(property: "realestate.requestedShowing", data: data);
/* requestedShowing example */

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmssZ");
Date requestedDate = new Date();
try {
	requestedDate = dateFormat.parse("12/10/2015 16:30");
} catch (ParseException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("form", form);
	put("requestedDateTime", requestedDate)
}};

brytescore.brytescore("realestate.requestedShowing", data);

savedListing

The user saved a listing.

See also: deletedSavedListing

listing
listing
required
The listing that was saved
/* savedListing example */

brytescore( "realestate.savedListing", { "listing": listing } );
/* savedListing example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.savedListing", data: data);
/* savedListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.savedListing", data);

sharedListingEmail

The user shared a listing via an email form

form
realEstateForm
required
The form data submitted by the user
/* sharedListingEmail example */

brytescore( "realestate.sharedListingEmail", { "form": form } );
/* sharedListingEmail example */

let data = [
	"form": form,
]

_apiManager.brytescore(property: "realestate.sharedListingEmail", data: data);
/* sharedListingEmail example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("form", form);
}};

brytescore.brytescore("realestate.sharedListingEmail", data);

sharedListingFacebook

The user shared a listing via Facebook

listing
listing
required
The listing that was shared
/* sharedListingFacebook example */

brytescore( "realestate.sharedListingFacebook", { "listing": listing } );
/* sharedListingFacebook example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.sharedListingFacebook", data: data);
/* sharedListingFacebook example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.sharedListingFacebook", data);

sharedListingTwitter

The user shared a listing via Twitter

listing
listing
required
The listing that was shared
/* sharedListingTwitter example */

brytescore( "realestate.sharedListingTwitter", { "listing": listing } );
/* sharedListingTwitter example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.sharedListingTwitter", data: data);
/* sharedListingTwitter example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.sharedListingTwitter", data);

subscribedListingUpdates

The user requested to receive email updates whenever this listing data is updated.

See also: unsubscribedListingUpdates

email
email
required
The user's email account that will receive updates
listing
listing
required
The listing being tracked
frequency
string
How frequently the user gets updates
/* subscribedListingUpdates example */

var data = {
	"email": "freddie@atlantafalcons.com",
	"listing": listing,
	"frequency": "semi-weekly"
};

brytescore( "realestate.subscribedListingUpdates", data );
/* subscribedListingUpdates example */

let data = [
	"email": "freddie@atlantafalcons.com",
	"listing": listing,
	"frequency": "semi-weekly"
]

_apiManager.brytescore(property: "realestate.subscribedListingUpdates", data: data);
/* subscribedListingUpdates example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("email", "freddie@atlantafalcons.com");
	put("listing", listing);
	put("frequency", "semi-weekly);
}};

brytescore.brytescore("realestate.subscribedListingUpdates", data);

unhidListing

The user unhid a listing that was previously hidden from future search results.

See also: hidListing

listing
listing
required
The listing that was unhidden
/* unhidListing example */

brytescore( "realestate.unhidListing", { "listing": listing } );
/* unhidListing example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.unhidListing", data: data);
/* unhidListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.unhidListing", data);

unsubscribedListingUpdates

The user unsubscribed from email updates about this listing.

See also: subscribedListingUpdates

listing
listing
required
The listing
/* unsubscribedListingUpdates example */

brytescore( "realestate.unsubscribedListingUpdates", { "listing": listing } );
/* unsubscribedListingUpdates example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.unsubscribedListingUpdates", data: data);
/* unsubscribedListingUpdates example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.unsubscribedListingUpdates", data);

viewedDrivingDirections

The user viewed driving directions to a listing.

See also: printedDrivingDirections]See also: viewedDriveTime]

listing
listing
required
The listing the user is driving to
startAddress
address
required
The starting address for the directions
/* viewedDrivingDirections example */

var data = {
	"listing": listing,
	"startAddress": address
};

brytescore( "realestate.viewedDrivingDirections", data );
/* viewedDrivingDirections example */

let data = [
	"listing": listing,
	"startAddress": address
]

_apiManager.brytescore(property: "realestate.viewedDrivingDirections", data: data);
/* viewedDrivingDirections example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
	put("startAddress", address);
}};

brytescore.brytescore("realestate.viewedDrivingDirections", data);

viewedListing

A user viewed the details on a listing.

See also: listingImpression, viewedSavedListing

listing
listing
required
The listing that was viewed
/* viewedListing example */

brytescore( "realestate.viewedListing", { "listing": listing } );
/* viewedListing example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.viewedListing", data: data);
/* viewedListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.viewedListing", data);

viewedListing3DTour

A user viewed an interactive 3D tour of a listing.

See also: viewedListingVirtualTour

listing
listing
required
The listing for which the 3D tour was viewed
/* viewedListing3DTour example */

brytescore( "realestate.viewedListing3DTour", { "listing": listing } );
/* viewedListing3DTour example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.viewedListing3DTour", data: data);
/* viewedListing3DTour example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.viewedListing3DTour", data);

viewedListingFlyer

Viewed an online flyer for a listing.

See also: printedListingFlyer

listing
listing
required
The listing for which the flyer was viewed
/* viewedListingFlyer example */

brytescore( "realestate.viewedListingFlyer", { "listing": listing } );
/* viewedListingFlyer example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.viewedListingFlyer", data: data);
/* viewedListingFlyer example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.viewedListingFlyer", data);

viewedListingMap

The user viewed a map showing the position of a specific listing.

listing
listing
The listing plotted on the map
/* viewedListingMap example */

brytescore( "realestate.viewedListingMap", listing );
/* viewedListingMap example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.viewedListingMap", data: data);
/* viewedListingMap example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.viewedListingMap", data);

viewedListingPhoto

A user clicked on and viewed a specific listing photo.

listing
listing
required
The listing that was viewed
viewedPhotoURL
uri
The URL of the photo viewed
/* viewedListingPhoto example */

var data = {
	"listing": listing,
	"viewedPhotoURL": "http://www.yoursite.com/listing/223445/images/1/medium"
};

brytescore( "realestate.viewedListingPhoto", data );
/* viewedListingPhoto example */

let data = [
	"listing": listing,
	"viewedPhotoURL": "http://www.yoursite.com/listing/223445/images/1/medium"
]

_apiManager.brytescore(property: "realestate.viewedListingPhoto", data: data);
/* viewedListingPhoto example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
	put("viewedPhotoURL", "http://www.yoursite.com/listing/223445/images/1/medium");
}};

brytescore.brytescore("realestate.viewedListingPhoto", data);

viewedListingVirtualTour

A user viewed a virtual tour for a listing.

See also: viewedListing3DTour

listing
listing
required
The listing for which the virtual tour was viewed
/* viewedListingVirtualTour example */

brytescore( "realestate.viewedListingVirtualTour", { "listing": listing } );
/* viewedListingVirtualTour example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.viewedListingVirtualTour", data: data);
/* viewedListingVirtualTour example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.viewedListingVirtualTour", data);

viewedSavedListing

A user clicked on and viewed one of his/her saved listings.

See also: savedListing, viewedListing

listing
listing
required
The listing that was viewed
/* viewedSavedListing example */

brytescore( "realestate.viewedSavedListing", { "listing": listing } );
/* viewedSavedListing example */

let data = [
	"listing": listing,
]

_apiManager.brytescore(property: "realestate.viewedSavedListing", data: data);
/* viewedSavedListing example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
}};

brytescore.brytescore("realestate.viewedSavedListing", data);

Search Events

These events all pertain to a specific search performed by the user.

deletedSavedSearch

A user deleted a search he/she had previously saved.

See also: savedSearch

search
search
required
The previously saved search that was deleted
/* deletedSavedSearch example */

brytescore( "realestate.deletedSavedSearch", { "search": search } );
/* deletedSavedSearch example */

let data = [
	"search": search
]

_apiManager.brytescore(property: "realestate.deletedSavedSearch", data: data);
/* deletedSavedSearch example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("search", search);
}};

brytescore.brytescore("realestate.deletedSavedSearch", data);

printedSearchResults

A user printed a list of search results.

search
search
required
The search that was printed
/* printedSearchResults example */

brytescore( "realestate.printedSearchResults", { "search": search } );
/* printedSearchResults example */

let data = [
	"search": search
]

_apiManager.brytescore(property: "realestate.printedSearchResults", data: data);
/* printedSearchResults example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("search", search);
}};

brytescore.brytescore("realestate.printedSearchResults", data);

quickSearchedListings

A user used a 'quick search' form to run a search.

See also: searchedListings

search
search
required
The search that was executed
/* quickSearchedListings example */

brytescore( "realestate.quickSearchedListings", { "search": search } );
/* quickSearchedListings example */

let data = [
	"search": search
]

_apiManager.brytescore(property: "realestate.quickSearchedListings", data: data);
/* quickSearchedListings example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("search", search);
}};

brytescore.brytescore("realestate.quickSearchedListings", data);

savedSearch

A user saved a search.

See also: deletedSavedSearch

search
search
required
The search that was saved
/* savedSearch example */

brytescore( "realestate.savedSearch", { "search": search } );
/* savedSearch example */

let data = [
	"search": search
]

_apiManager.brytescore(property: "realestate.savedSearch", data: data);
/* savedSearch example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("search", search);
}};

brytescore.brytescore("realestate.savedSearch", data);

searchedListings

A user executed a listing search.

See also: quickSearchedListings

search
search
required
The search that was executed
/* searchedListings example */

brytescore( "realestate.searchedListings", { "search": search } );
/* searchedListings example */

let data = [
	"search": search
]

_apiManager.brytescore(property: "realestate.searchedListings", data: data);
/* searchedListings example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("search", search);
}};

brytescore.brytescore("realestate.searchedListings", data);

subscribedSearch

A user subscribed to email alerts when updates to a search become available.

See also: unsubscribedSearch

email
email
required
The email address where the user will receive updates
frequency
string
How frequently the user will receive updates
search
search
required
The search for which the user will receive updates
/* subscribedSearch example */

var data = {
	"email": "mscott@dundermifflin.com",
	"frequency": "weekly",
	"search": search
};

brytescore( "realestate.subscribedSearch", data );
/* subscribedSearch example */

let data = [
	"email": "mscott@dundermifflin.com",
	"frequency": "weekly",
	"search": search
]

_apiManager.brytescore(property: "realestate.subscribedSearch", data: data);
/* subscribedSearch example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("email", "mscott@dundermifflin.com");
	put("frequency", "weekly");
	put("search", search);
}};

brytescore.brytescore("realestate.subscribedSearch", data);

unsubscribedSearch

A user unsubscribed from updates for a particular search.

See also: subscribedSearch

search
search
required
The search from which the user was unsubscribed
/* unsubscribedSearch example */

brytescore( "realestate.unsubscribedSearch", { "search": search } );
/* unsubscribedSearch example */

let data = [
	"search": search
]

_apiManager.brytescore(property: "realestate.unsubscribedSearch", data: data);
/* unsubscribedSearch example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("search", search);
}};

brytescore.brytescore("realestate.unsubscribedSearch", data);

updatedSavedSearch

A user updated the criteria for a saved search.

See also: savedSearch

search
search
required
The updated saved search
/* updatedSavedSearch example */

brytescore( "realestate.updatedSavedSearch", { "search": search } );
/* updatedSavedSearch example */

let data = [
	"search": search
]

_apiManager.brytescore(property: "realestate.updatedSavedSearch", data: data);
/* updatedSavedSearch example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("search", search);
}};

brytescore.brytescore("realestate.updatedSavedSearch", data);

viewedSavedSearch

A user executed a saved search.

See also: savedSearch

search
search
required
The saved search that was executed
/* viewedSavedSearch example */

brytescore( "realestate.viewedSavedSearch", { "search": search } );
/* viewedSavedSearch example */

let data = [
	"search": search
]

_apiManager.brytescore(property: "realestate.viewedSavedSearch", data: data);
/* viewedSavedSearch example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("search", search);
}};

brytescore.brytescore("realestate.viewedSavedSearch", data);

Miscellaneous Real Estate Events

These events are not related to real estate searches or listings, but are common user action on real estate websites.

calculatedMortgagePayment

The user calculated a mortgage payment via an online calculator.

downPayment
number
The buyer's down payment amount
listing
listing
The listing the user was viewing when the calculation was performed
payment
number
The buyer's calculated (or preferred) monthly payment
price
number
The amount to be financed
rate
number
The interest rate
term
number
The number of months in the loan
/* calculatedMortgagePayment example */

var data = {
	"downPayment": 40000,
	"listing": listing,
	"price": 200000,
	"rate": 5.25,
	"term": 360
};

brytescore( "realestate.calculatedMortgagePayment", data );
/* calculatedMortgagePayment example */

let data = [
	"downPayment": 40000,
	"listing": listing,
	"price": 200000,
	"rate": 5.25,
	"term": 360
]

_apiManager.brytescore(property: "realestate.calculatedMortgagePayment", data: data);
/* calculatedMortgagePayment example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("downPayment", 40000);
	put("listing", listing);
	put("price", 200000);
	put("rate", 5.25);
	put("term", 360);
}};

brytescore.brytescore("realestate.calculatedMortgagePayment", data);

calculatedPropertyValuation

The user ran an automated property valuation.

address
address
required
The address of the property the valuation was given for
value
number
The properties valuation
valueRangeLow
number
The minimum range of the valuation
valueRangeHigh
number
The maximum range of the valuation
zestimate
number
The zestimate valuation
valuationURL
uri
The url of the property valuation report
valuationModel
string
The model used to provide the valuation
/* calculatedPropertyValuation example */

var data = {
	"address": address,
	"value": 284000,
	"valueRangeLow": 213000,
	"valueRangeHigh": 295000,
	"zestimate": 310000,
	"valuationURL": "www.MyUrl/propertyValuation/742_Evergreen_Terrace",
	"valuationModel": "RealAVM"
};

brytescore( "realestate.calculatedPropertyValuation", data );
/* calculatedPropertyValuation example */

let data = [
	"address": address,
	"value": 284000,
	"valueRangeLow": 213000,
	"valueRangeHigh": 295000,
	"zestimate": 310000,
	"valuationURL": "www.MyUrl/propertyValuation/742_Evergreen_Terrace",
	"valuationModel": "RealAVM"
]

_apiManager.brytescore(property: "realestate.calculatedPropertyValuation", data: data);
/* calculatedPropertyValuation example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("address", address);
	put("value", 284000);
	put("valueRangeLow", 213000);
	put("valueRangeHigh", 295000);
	put("zestimate", 310000);
	put("valuationURL", "www.MyUrl/propertyValuation/742_Evergreen_Terrace");
	put("valuationModel", "RealAVM");
}};

brytescore.brytescore("realestate.calculatedPropertyValuation", data);

playedNeighborhoodVideo

The user played a video about a neighborhood.

listing
listing
The listing to which this video is related.
videoUrl
uri
The URL of the video
neighborhood
neighborhood
required
The neighborhood the video is about
/* playedNeighborhoodVideo example */

var data = {
	"listing": listing,
	"videoUrl": "https://www.youtube.com/watch?v=GCdwKhTtNNw",
	"neighborhood": neighborhood
};

brytescore( "realestate.playedNeighborhoodVideo", data );
/* playedNeighborhoodVideo example */

let data = [
	"listing": listing,
	"videoUrl": "https://www.youtube.com/watch?v=GCdwKhTtNNw",
	"neighborhood": neighborhood
]

_apiManager.brytescore(property: "realestate.playedNeighborhoodVideo", data: data);
/* playedNeighborhoodVideo example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
	put("videoUrl", "https://www.youtube.com/watch?v=GCdwKhTtNNw");
	put("neighborhood", neighborhood);
}};

brytescore.brytescore("realestate.playedNeighborhoodVideo", data);

requestedCMA

A user requested a comparative market analysis on his/her home.

address
address
required
The address of the property the user wants a CMA for
form
realEstateForm
required
The form data submitted by the user
/* requestedCMA example */

var data = {
	"address": address,
	"form": form
};

brytescore( "realestate.requestedCMA", data );
/* requestedCMA example */

let data = [
	"address": address,
	"form": form
]

_apiManager.brytescore(property: "realestate.requestedCMA", data: data);
/* requestedCMA example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("address", address);
	put("form", form);
}};

brytescore.brytescore("realestate.requestedCMA", data);

requestedHomeAppraisal

A user requested an appraisal on his/her home.

address
address
required
The address of the property the user wishes appraised
form
realEstateForm
required
The form data submitted by the user
/* requestedHomeAppraisal example */

var data = {
	"address": address,
	"form": form
};

brytescore( "realestate.requestedHomeAppraisal", data );
/* requestedHomeAppraisal example */

let data = [
	"address": address,
	"form": form
]

_apiManager.brytescore(property: "realestate.requestedHomeAppraisal", data: data);
/* requestedHomeAppraisal example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("address", address);
	put("form", form);
}};

brytescore.brytescore("realestate.requestedHomeAppraisal", data);

searchedAgents

A user search for a real estate agent on the website.

See also: searchedOffices

expertise
string
The user is looking for agents with this area of expertise
language
string
The user is looking for agents who speak this language
officeName
string
The user is looking for agents domiciled in this office
searchURL
uri
The URL of the user's agent search results
serviceArea
string
The user is looking for agents in this service area
/* searchedAgents example */

var data = {
	"language": "Klingon",
	"serviceArea": "Kronos"
};

brytescore( "realestate.searchedAgents", data );
/* viewedSavedSearch example */

let data = [
	"language": "Klingon",
	"serviceArea": "Kronos"
]

_apiManager.brytescore(property: "realestate.viewedSavedSearch", data: data);
/* viewedSavedSearch example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("language", "Klingon");
	put("serviceArea", "Kronos");
}};

brytescore.brytescore("realestate.viewedSavedSearch", data);

searchedOffices

A user search for a real estate office on the website.

See also: searchedAgents

officeName
string
The user is searching for offices with this name
serviceArea
string
The user is looking for offices in this service area
/* searchedOffices example */

var data = {
	"serviceArea": "Kronos"
}

brytescore( "realestate.searchedOffices", data );
/* searchedOffices example */

let data = [
	"serviceArea": "Kronos"
]

_apiManager.brytescore(property: "realestate.searchedOffices", data: data);
/* searchedOffices example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("serviceArea", "Kronos");
}};

brytescore.brytescore("realestate.searchedOffices", data);

submittedAgentContactForm

A user submitted a contact form to a specific agent.

agentId
string | number
Your internal ID for this agent
form
realEstateForm
required
The form data submitted by the user
/* submittedAgentContactForm example */

var data = {
	"agentId": "721",
	"form": form
};

brytescore( "realestate.submittedAgentContactForm", data );
/* submittedAgentContactForm example */

let data = [
	"agentId": "721",
	"form": form
]

_apiManager.brytescore(property: "realestate.submittedAgentContactForm", data: data);
/* submittedAgentContactForm example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("agentId", "721");
	put("form", form);
}};

brytescore.brytescore("realestate.submittedAgentContactForm", data);

viewedAgentProfile

A user viewed the online profile of an agent.

agentId
string | number
Your internal ID for this agent
email
email
The email address of the agent
/* viewedAgentProfile example */

var data = {
	"agentID": 2517,
	"email": "jules.winnfield@righteous-ezekiel.net"
};

brytescore( "realestate.viewedAgentProfile", data );
/* viewedAgentProfile example */

let data = [
	"agentID": 2517,
	"email": "jules.winnfield@righteous-ezekiel.net"
]

_apiManager.brytescore(property: "realestate.viewedAgentProfile", data: data);
/* viewedAgentProfile example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("agentID", 2517);
	put("email", "jules.winnfield@righteous-ezekiel.net");
}};

brytescore.brytescore("realestate.viewedAgentProfile", data);

viewedDriveTime

The user viewed the drive time from one address to another.

See also: viewedDrivingDirections, printedDrivingDirections

listing
listing
The listing to which this drive time is related.
address1
address
required
The first address, usually the listing's address.
address2
address
required
The second address, usually a work or point of interest address.
timeOfDay
string
The time of day selected by the user for the drive time.
address1ToAddress2Time
number
The number of minutes to travel from address1 to address2.
address2ToAddress1Time
number
The number of minutes to travel from address2 to address1.
/* viewedDriveTime example */

var data = {
	"listing": listing,
	"address1": address,
	"address2": address,
	"timeOfDay": "09:30am",
	"address1ToAddress2Time": 37,
	"address2ToAddress1Time": 17
};

brytescore( "realestate.viewedDriveTime", data );
/* viewedDriveTime example */

let data = [
	"listing": listing,
	"address1": address,
	"address2": address,
	"timeOfDay": "09:30am",
	"address1ToAddress2Time": 37,
	"address2ToAddress1Time": 17
]

_apiManager.brytescore(property: "realestate.viewedDriveTime", data: data);
/* viewedDriveTime example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
	put("address1", address);
	put("address2", address);
	put("timeOfDay", "09:30am");
	put("address1ToAddress2Time", 37);
	put("address2ToAddress1Time", 17);
}};

brytescore.brytescore("realestate.viewedDriveTime", data);

viewedNeighborhoodProfile

The user viewed a profile of a neighborhood.

See also: viewedSubdivisionProfile, neighborhood

listing
listing
The listing the user was on when the neighborhood profile was viewed
neighborhood
neighborhood
required
The details for the viewed neighborhood
/* viewedNeighborhoodProfile example */

var data = {
	"listing": listing,
	"neighborhood": neighborhood
};

brytescore( "realestate.viewedNeighborhoodProfile", data );
/* viewedNeighborhoodProfile example */

let data = [
	"listing": listing,
	"neighborhood": neighborhood
]

_apiManager.brytescore(property: "realestate.viewedNeighborhoodProfile", data: data);
/* viewedNeighborhoodProfile example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
	put("neighborhood", neighborhood);
}};

brytescore.brytescore("realestate.viewedNeighborhoodProfile", data);

viewedOfficeProfile

A user viewed the profile page for a brokerage office.

address
address
The address of the office
officeId
string
Your internal ID for this office
officeName
string
The name of the office
/* viewedOfficeProfile example */

var data = {
	"officeName": "Initech Corporate"
};

brytescore( "realestate.viewedOfficeProfile", data );
/* viewedOfficeProfile example */

let data = [
	"officeName": "Initech Corporate"
]

_apiManager.brytescore(property: "realestate.viewedOfficeProfile", data: data);
/* viewedOfficeProfile example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("officeName", "Initech Corporate");
}};

brytescore.brytescore("realestate.viewedOfficeProfile", data);

viewedSchoolProfile

A user viewed the profile of a school.

listing
listing
The listing to which this school is related.
name
string
required
The name of the school.
address
address
The address of the school.
isElementarySchool
boolean
This is an elementary school.
isMiddleSchool
boolean
This is a middle school.
isHighSchool
boolean
This is a high school.
/* viewedSchoolProfile example */

var data = {
	"listing": listing,
	"name": "Welton Academy for Boys",
	"isHighSchool": true
};

brytescore( "realestate.viewedSchoolProfile", data );
/* viewedSchoolProfile example */

let data = [
	"listing": listing,
	"name": "Welton Academy for Boys",
	"isHighSchool": true
]

_apiManager.brytescore(property: "realestate.viewedSchoolProfile", data: data);
/* viewedSchoolProfile example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
	put("name", "Welton Academy for Boys");
	put("isHighSchool", true);
}};

brytescore.brytescore("realestate.viewedSchoolProfile", data);

viewedSubdivisionProfile

A user viewed the profile of a subdivision.

See also: viewedNeighborhoodProfile, subdivision

listing
listing
The listing to which this subdivision is related
name
string
required
The name of the subdivision
/* viewedSubdivision example */

var data = {
	"listing": listing,
	"name": "Wilmington Park"
};

brytescore( "realestate.viewedSubdivisionProfile", data );
/* viewedSubdivisionProfile example */

let data = [
	"listing": listing,
	"name": "Wilmington Park"
]

_apiManager.brytescore(property: "realestate.viewedSubdivisionProfile", data: data);
/* viewedSubdivisionProfile example */

HashMap<String, Object> data = new HashMap<String, Object>() {{
	put("listing", listing);
	put("name", "Wilmington Park");
}};

brytescore.brytescore("realestate.viewedSubdivisionProfile", data);