I'm just embarking on familiarizing myself with the API and beginning Campaign Monitor integration with our systems. As such I already have a question:
What is the best way to gather opt-in and opt-out activity for a day?
To ease reporting once we've moved to using CM as the "home" system for email marketing, I'd like to sync opt-in status back to our system. My plan is that this would run as a nightly task, gathering all subscription/opt-out activity from CM and syncing with our system for email addresses that are in both. Looking at the API, it seems I need to use a combination of Subscribers.GetUnsubscribed and Subscribers.GetActive, pulling based on date. Is this correct? Would this get all the info I need? Or do I need to also utilize Subscribers.GetBounced to ensure I'm covering all my bases?
It's quite hard to get information about everyone who has been moved off your active list, as you have to account for unsubscribes, bounces (soft and hard), and spam complaints (which you can't see through the API).
I think the best way to do something like this is simply to use Subscribers.GetActive to get a list of all of your active subscribers and then compare that to the list of addresses in your system, and then anyone in your system whose address hasn't been returned by Subscribers.GetActive is obviously no longer active.
Does that make sense?
Another question related to this: What happens with spam complaints? They aren't directly available through the API, but do they get added to the suppression list so I could at least get them that way? My plan is to sync subscribes and unsubscribes to my system on a daily basis and process the entire suppression list on a weekly basis as a double-check measure.