This simulation provides a unified example of a number of different agent-based modeling techniques in the marketing and advertising domains. These different models and methods can be enabled and disabled, as well as tuned, through the global parameters in the globals.json file.
Uptake Model
Every consumer agent has both an awareness
and an opinion
of each firm's product in the model. The product of these two values, which are unique and dynamic for each agent in the model, is the likelihood of uptake for the given firm's product.
The buy.js behavior processes these properties to make a decision about whether an agent should make a purchase of one product or another, or neither at this time.
Advertising
Firms in this model can now balance their investments in different advertising channels: social media, television, and webpage ads. Advertising in this model consists of the interaction between advertising node agents, and consumer agents:
Nodes
Advertising nodes are randomly distributed throughout the network of agents, at a rate controlled by the "advertising_control_rate"
globals property. They send out messages to simulate advertising efforts by the two firms. The rates at which they send these messages along the different advertising channels correspond to the relative levels of investment for each firm, as specified in globals.json.
The advertise.js behavior is responsible for enabling this component in advertising agents.
Consumers
One of the strengths of agent-based modeling is its ability to capture heterogeneity in populations. In this model, every agent has different levels of TV viewership, social media usage, etc. This will affect how they are impacted by the different investments that firms make in the three advertising channels. When consumers receive advertising messages, they update their properties accordingly.
The view_advertising.js behavior is responsible for enabling this component in consumer agents.
Word of Mouth
As originally identified by Frank Bass in his model of product adoption, information carried through word of mouth is just as important as active advertising efforts by a firm. The higher a consumer's awareness is, the more likely it will transmit its opinions to other consumers in its netwok on a given timestep.
The behavior responsible for this is word_of_mouth.js. To enable this component of the model, set the "word_of_mouth"
globals property to true
.
Cars as Walking Advertisements
Similar to certain other products, the more cars of a certain make are driven, the more people see them as they pass by. By using HASH's neighbors functionality, we can enable consumer agents to "see" others as they drive around. The frequency at which consumers drive around is determined by a heterogeneously distributed agent property.
Agents will update their awareness
based on which firm's make they see the most. The behavior responsible for this is drive_and_see.js. To enable this component of the model, set the "drive_and_see"
globals property to true
.
Analysis
By switching to the Analysis tab in the viewer window, you can explore aggregated metrics of the simulation. The first two plots display how the average opinion and awareness of agents changes over time, for both firms a
and b
. The third plot shows the impacts of those changes on agents' purchasing behavior, by plotting the ownership of each firm's product.