For a long long time, Google search optimization relied on a limited set of tools like auto crawl, search console or supported schema types. The things, however, started changing in 2015 when Google finally decided to give ld+json a green signal, opening doors for a variety of rich cards which have strictly been limited till that point.
The @id keyword allows you to give a node a URI. This URI identifies the node.See in the JSON-LD spec.(The equivalent in Microdata is the itemid attribute, and the equivalent in RDFa Lite is the resource attribute.) Why are identifiers useful?.
You can reference a node instead of repeating it. Other authors can do the same (on external sites): when they use the URI you specified, it’s clear that they are talking about the same thing. Consumers can learn that different nodes are about the same thing.It’s also one of the core concepts of Linked Data and the Semantic Web. If you care about this, you might want to use URIs that differentiate between the actual thing and the page about that thing.This is what Apple is doing in the example. The URI represents the actual organization, not a page (and not a part on that page) about the organization.
This is a, and it’s a popular way to make the distinction between the thing and the page about the thing. If you want to say in your JSON-LD that you like Apple, you could use to identify Apple. If you would use instead, it would be Apple’s homepage you like.