You could use the
CustomerSyncService to get the changes related to the campaigns on given date range. As you mentioned above, the keyword id changes when the keyword is changed. The AdGroup id does not change when we make changes in AdGroup. The
languages and
Locations has unique criteria id and get assigned these criteria id when you add location or language as criteria. Please check out our
GetAccountChanges example code of Java client library.
Umesh, AdWords API Team.