KeyHole is a social media data reporting platform that measures realtime and historical data in an easy to use format using graphs, tables and various forms of aggregation. Features of KeyHole include:
The key use-cases of KeyHole are:
Learn more in this video:
The owner of the KeyHole account is the MarketingOps team, the team manages subscription while adding administrators from the different teams that use the account.
There are 2 types of user representation on KeyHole, a user and a profile:
The KeyHole platform is currently used by the Developer Evangelism, Education and All-Remote teams.
Access is provisioned by Marketing Ops. If you need access, please open an access request and assign to the tool owner. See more details on how to do so here.
KeyHole gathers impressions & engagements data from your account. It also analyses your posts to give the following reports among others:
Once a tracker is created for a profile or a campaign, Keyhole can backfill data for up to a year. Also, KeyHole only keeps 1 year worth of data at a time.
Account owner and administrators on a KeyHole account can add new users as follows:
There are 2 ways to add a tracker, as a profile under profile analytics or an influencer on Influencer management.
A Profile can be a social media account of a user or an external account like a competitor. However, only publicly available data are available for external accounts. Here is a video showing how to add a profile:
An influencer in this case is an authenticated profile i.e. a social media account that was added but also authenticated by the owner so data that are not publicly available like impressions can be accessed by KeyHole. This is the preferred way to add GitLab team members. You can add influencers as shown in the video below from KeyHole.
To make it easier for Sisense and other reporting tools to access the data collected by KeyHole, the Developer Evangelism team has created some instrumentation to pull, aggregate, store and make easily available the data from KeyHole. KeyHole only keeps 1 year worth of historical data, to avoid loss of data in the long term, monthly data is aggregated and stored in a Firebase collection located in the
group-community project on Google Cloud.
The DE-Bot collects data from Keyhole everyday, aggregates it into monthly impressions and engagements for each profile tracker created on KeyHole. This data is stored in Google Cloud Data Store using Firebase. A cloud function has also been created using Firebase to make this data available as a JSON resource or a Chart Image for display directly on the handbook.
As shown above, the DE-Bot stores data in the
keyhole_social_metrics collection with the KeyHole tracker ID used as the document ID for each profile. The data for each profile is organized by the DE-Bot automatically in the format:
engagements/impressions > year > monthly data. The fields
user, group and social_network will need to be filled by the DE-Bot DRI, who at the moment is Abubakar Ango, or any other member of the Developer Evangelism team. The
group fields are necessary to access the data using the cloud functions API.
The CloudFunction API for integrating the data with Sisense of displaying charts anywhere is accessible at
https://europe-west1-group-community-a29572.cloudfunctions.net/getKeyHoleData with the following fields as URL parameters:
||This tells the API whose data you need to access, when a group is selected is adds up the data of each user in teh group|
||This is the value in the group or user fields as specified in the Data store collections|
||This specifies if you want to the impressions or engagaement data|
||This is the year you want data for|
||This is the month your want data for. All single digital months should start with a
|network||Only Twitter is supported at the moment, but if we ever collect data from other platforms, then we specify as defined in the database.|
||You can specify if you want a JSON response or a Chart image|
||You can specify what type of chart you want, this is only used is
An example full URL is
https://europe-west1-group-community-a29572.cloudfunctions.net/getKeyHoleData?grouping=group&grouping_data=de&datatype=impressions&year=2020&month=all&network=twitter&response_type=chart&chart_type=bar which displays the image below:
json is requested, the following data is returned:
No personal data is returned in the response of the API, user Twitter handle is displayed at the top of charts when a specific user data is requested. Also, as mentioned earlier Team members who consent to use KeyHole understand, after they have been duly informed that these metrics are used only to measure team results and they can opt out at any time.