Program ID is an identification number that software developers can assign to differentiate the protected applications (and the Keys) among their products. Each copy of ElecKey is provided with a number of Program IDs, which can be upgraded if more Program IDs are needed. Program ID starts from zero, one, two, three, and so on.
Basically, you should assign a Program ID to a product (or software title). However, there is no restriction. You may assign the same Program ID to two different products. But, doing so can cause a security breach to the protected applications. Consider a scenario where you assign the same Program ID: 1 to both applications A and B. An end-user may obtain the application A legally, in which his computer will have the Key with Program ID: 1. If this end-user obtains an unregistered version of the application B, he will not need to register or pay for it. This is because his computer already has the Key with Program ID: 1, which can unlock both applications A and B.
When you issue an upgrade or bug fix of the protected application, it is recommended to lock the application with the same Program ID as the previous version. Since the existing end-users of the application already have the Key, the upgrade can be transparent and there is no need for a new registration. On the contrary, if you wish to issue a new software version that requires a new license, you should lock the new version with a different Program ID from the previous version. In this case, end-users who wish to upgrade to the new version must register or pay for the new license.