add campaign implementation

use friendly region code instead of objectId