Πότε είναι η καλύτερη στιγμή για ροή στο Facebook Live; Ανέλυσα 5.000 αναρτήσεις στο Facebook για να μάθω.

Η ροή στο Facebook Live μπορεί να είναι μια ισχυρή στρατηγική μάρκετινγκ για νεοσύστατες επιχειρήσεις και επιχειρήσεις. Μπορούν να μοιράζονται γνώσεις, να παρέχουν αξία, να λαμβάνουν έκθεση και να συλλέγουν δυνητικούς πελάτες υψηλής ποιότητας.

Προετοιμάστε τη συνεδρία σας στο Facebook Live εκ των προτέρων. Ερευνώντας για το κοινό-στόχο σας και δημιουργήστε μια λεπτομερή ατζέντα. Η συνεδρία μπορεί να ενισχύσει δραματικά την επιχείρησή σας.

Ήμουν επικεφαλής του προϊόντος και της τεχνολογίας της προηγούμενης μου εκκίνησης που ασχολήθηκε με τον εντοπισμό απάτης. Αποφάσισα να δοκιμάσω το Facebook Live ως μια νέα στρατηγική μάρκετινγκ.

Ήταν ακόμα αρκετά νέο εκείνη την εποχή. Μόλις τελείωσε μια συνεδρία στο Facebook Live, τα σχετικά άτομα έλαβαν ειδοποιήσεις στο Facebook για να συμμετάσχουν στη συνεδρία. Αυτό αύξησε την έκθεση ακόμη περισσότερο.

Υπάρχουν πολλές αναρτήσεις για το πώς να δημιουργήσετε καλύτερα τη ζωντανή σας συνεδρία στο Facebook. Συζητούν ποια θέματα θα καλύψουν, δημιουργώντας μια ατζέντα, γωνίες κάμερας, διάρκεια συνεδρίας και πολλά άλλα.

Αλλά υπάρχει ένα κομμάτι του παζλ στο οποίο οι ιδιοκτήτες επιχειρήσεων και οι έμποροι τείνουν συχνά να ξεχνούν ή να μην προσέχουν: Πότε είναι η καλύτερη στιγμή για ροή της συνεδρίας σας στο Facebook Live;

Μπορείτε να απαντήσετε σε αυτήν την ερώτηση χρησιμοποιώντας μια εικαστική εικασία βάσει της εξοικείωσής σας με το κοινό-στόχο.

Για παράδειγμα:

  • Οι έγκυες μητέρες είναι έτοιμες να καταναλώσουν τη ζωντανή συνεδρία σας το απόγευμα της Δευτέρας.
  • Οι έφηβοι σε ηλικίες 18–22 έχουν τη σωστή νοοτροπία το Σάββατο το πρωί.

Αλλά υπάρχουν τόσα πολλά δεδομένα γύρω μας που μπορούμε να χρησιμοποιήσουμε με μερικά κλικ ενός κουμπιού. Στην πραγματικότητα μένετε πίσω αν δεν κάνετε σωστή χρήση ορισμένων από τα διαθέσιμα δεδομένα.

Σχεδόν κάθε πλατφόρμα μάρκετινγκ ή κοινωνικό δίκτυο ανοίγει υπηρεσίες API. Εσείς, ως επιχειρηματίας τεχνολογίας, μπορείτε εύκολα να τα καταναλώσετε. Αυτά τα δεδομένα μπορούν να παρέχουν πολύτιμα συμπεράσματα που μπορούν να οδηγήσουν τους επιχειρηματικούς σας στόχους πέρα ​​από τους ανταγωνιστές σας.

Αυτή η προσέγγιση ονομάζεται συχνά αποφάσεις βάσει δεδομένων .

Μόλις αρχίσετε να αιτιολογείτε οποιαδήποτε ή τουλάχιστον τις περισσότερες από τις επιχειρηματικές σας αποφάσεις χρησιμοποιώντας δεδομένα που σας ανήκουν ή δεδομένα που μπορείτε να συλλέξετε από διαφορετικούς πόρους, μπορείτε να σταματήσετε να μαντεύετε και να αρχίσετε να λαμβάνετε αποφάσεις βάσει δεδομένων.

Μου αρέσει να σκέφτομαι τις αποφάσεις που βασίζονται σε δεδομένα ως προμήθεια πλήθους. Ο Lior Zoref συμμετείχε σε αυτήν τη συζήτηση TED. Κάλεσε ένα βόδι στη σκηνή και ζήτησε από το κοινό να μαντέψει το βάρος του. Αν το παρακολουθήσατε, πιθανότατα θα συγκλονιόσασταν από το πόσο ακριβής συγκρίθηκε ο μέσος όρος του πλήθους με το πραγματικό βάρος του βοδιού: 1.792 λίβρες ή 1795 λίβρες!

Όταν κάνετε εικασίες σχετικά με τους επιχειρηματικούς σας στόχους ως άτομα, δεν είστε διαφορετικοί από κάθε άτομο που κάθεται στο πλήθος και προσπαθείτε να αξιολογήσετε το βάρος του βοδιού. Μπορείτε ακόμη και να είστε αυτός που μαντέψατε 300 λίρες ή 8000 λίρες, κάτι που μπορεί να κοστίσει στην επιχείρησή σας πολλά περιττά έξοδα.

Αλλά, εάν χρησιμοποιείτε τη σοφία του πλήθους για να λαμβάνετε αποφάσεις βάσει δεδομένων, πιθανότατα θα είστε μπροστά από κάθε άλλο άτομο. Σε επιχειρηματικούς όρους, θα είστε μπροστά από τους ανταγωνιστές σας.

Δεν είμαι καθαρός έμπορος. Αλλά με βασικές δεξιότητες ανάλυσης δεδομένων μπορώ να προωθήσω την επιχείρησή μου σε όλες τις πτυχές, συμπεριλαμβανομένου του μάρκετινγκ.

Θα σας καθοδηγήσω σε έναν πρακτικό οδηγό βήμα προς βήμα σχετικά με τον τρόπο πρόσβασης στα δεδομένα του Facebook. Τότε πώς να το αναλύσουμε με βάση τις ανάγκες μας σχετικά με τον βελτιστοποιημένο χρόνο μετάδοσης στο Facebook Live.

Για να ακολουθήσετε αυτόν τον οδηγό χρειάζεστε:

  • Ένας λογαριασμός στο Facebook
  • Μια ομάδα Facebook που θα θέλατε να αναλύσετε

    Εάν είναι μια ιδιωτική ομάδα, τότε πρέπει να είστε μέλος της ομάδας

  • Εγκατεστημένο το Python 2.7
  • Εγκατεστημένο σημειωματάριο Jupyter
  • Εγκατεστημένη βιβλιοθήκη Python API γραφήματος Facebook

Ένα σημειωματάριο Jupyter είναι ένα προτεινόμενο εργαλείο για την ανάλυση δεδομένων στο Python. Έχει πολλές καλύτερες στιγμές. Σας επιτρέπει να εκτελείτε αποσπάσματα κώδικα και να αποθηκεύετε τα αποτελέσματα στη μνήμη. Επομένως, δεν θα εκτελείτε όλα τα σενάρια σας ξανά και ξανά κάθε φορά που εφαρμόζετε μια μικρή αλλαγή. Αυτό είναι ζωτικής σημασίας κατά την ανάλυση δεδομένων, επειδή ορισμένες εργασίες μπορεί να απαιτούν πολύ χρόνο εκτέλεσης.

Αν και δεν είναι απαραίτητο, προτείνω να εργάζεστε σε ένα εικονικό περιβάλλον Python. Εδώ είναι μια ανάρτηση που έγραψα για τα πλεονεκτήματα ενός εικονικού περιβάλλοντος κατά τη χρήση του Python.

Συνιστώ να εργάζεστε σε περιβάλλον Ubuntu όταν κάνετε ανάλυση δεδομένων χρησιμοποιώντας φορητούς υπολογιστές Jupyter.

Βήμα 1 - Λήψη του αναγνωριστικού ομάδας Facebook

Για να λάβουμε δεδομένα από το Facebook API, πρέπει να καθορίσουμε το αναγνωριστικό της οντότητας που θέλουμε να λάβουμε δεδομένα από, στην περίπτωσή μας, μια ομάδα Facebook.

Το Lookup-id.com είναι ένα ωραίο εργαλείο που μπορείτε να χρησιμοποιήσετε για να βρείτε το αναγνωριστικό μιας ομάδας με βάση τη διεύθυνση URL της. Αντιγράψτε τη διεύθυνση URL της ομάδας σας και επικολλήστε τη στη γραμμή αναζήτησης.

Σε αυτό το άρθρο, θα χρησιμοποιήσουμε την ομάδα: Web Design and Development.

Αναγνωριστικό: 319479604815804

Βήμα 2 - Γνωρίστε τον Graph API Explorer

Για να αξιοποιήσει στο έπακρο το Facebook API εκτός από την τεκμηρίωση, το Facebook έχει αναπτύξει μια παιδική χαρά για προγραμματιστές που ονομάζονται Graph API Explorer.

Ο Graph API Explorer μας δίνει τη δυνατότητα να αποκτήσουμε ένα προσωρινό διακριτικό πρόσβασης και να αρχίσουμε να εξετάζουμε τις δυνατότητες που προσφέρει το API του Facebook.

Κάντε κλικ στο Get Token. Μην επιλέξετε άδεια. Κάντε κλικ στο Λήψη διακριτικού πρόσβασης .

Facebook API has many endpoints you can use. In this guide, we are going to use two main endpoints:

  • The group endpoint
  • The reactions endpoint

To figure out the structure of the response you’re expecting to get, specify the endpoint URL and click Submit.

Let’s examine the URL endpoint for grabbing the last posts from the group’s feed. Type this URL in the Graph API Explorer:

319479604815804/feed

and hit Submit.

You should now see the last posts from the group’s feed in a JSON structure. It contains the post’s content, its id and the updated time. By clicking on one of the id’s and adding to the end of the URL:

319479604815804_1468216989942054/reactions?summary=total_count

You should see a list of the reactions for the specific post, and a summary of the total count of reactions.

This way you can play around with all the features the Facebook API has to offer.

Another tool for examining API endpoints of APIs which don’t offer a playground is Postman. You can read more about this tool and essential tools for web developers.

Step 3 — Our plan and assumptions

Our goal is to find the best time to have a Facebook Live session in the group that contains our target audience. To do that, we assume that the more activity there is in the group at a specific time, the most likely our Facebook Live session will gain more traction.

So our goal now is to figure out when there is a peak in the group’s activity over time. And by when I mean a specific weekday and time.

To do that, we are going to grab the last 5,000 posts from the group’s feed. Then we’ll plot the distribution of the times they were updated.

We assume that longer posts indicate more activity in the group because members spend more time in the group writing them. So, our next step will be to take into consideration the length of each post in the distribution.

Reaction on Facebook is probably a great indication of people engaging with a specific post. Thus, our last step will be to collect the total number of reactions for each post. Then take that into account in the distribution of activity over weekdays and hours.

Because reactions may come after the post, we should be cautious using this data analysis approach.

Step 4 — Let’s analyze some data!

To start a Jupyter notebook, you should execute:

ipython notebook

and then choose New → Python 2.

To analyze and plot the data, we are going to use the numpy and matplotlib libraries. These are very popular Python libraries you should use to better analyze your data.

Let’s import all the libraries we need:

import matplotlib.pyplot as pltimport numpy as npimport facebookimport urlparseimport datetimeimport requests

and specify our access token and group id:

ACCESS_TOKEN = 'INSERT_ACCESS_TOKEN_HERE'GROUP_ID = '319479604815804' # Web Design and Development group

Then, let’s initialize the API object with our access token:

graph = facebook.GraphAPI(ACCESS_TOKEN)

Now we want to grab the posts from the group’s feed. To avoid errors during the API calls, we will limit each API call to 50 posts and iterate over 100 API calls:

posts = []url = "{}/feed?limit=50".format(GROUP_ID)until = Nonefor i in xrange(100): if until is not None: url += "&until={}".format(until) response = graph.request(url) data = response.get('data') if not data: break posts = posts + data next_url = response.get("paging").get("next") parsed_url = urlparse.urlparse(next_url) until = urlparse.parse_qs(parsed_url.query)["until"][0]
In each API call, we specify the until parameter to get older posts.
Now, let’s organize the posts into weekdays and hours of the day:
weekdays = {i: 0 for i in xrange(7)}
hours_of_day = {i: 0 for i in xrange(24)}
hours_of_week = np.zeros((7,24), dtype=np.int)for post in posts: updated = datetime.datetime.strptime(post.get("updated_time"), "%Y-%m-%dT%H:%M:%S+0000") weekday = updated.weekday() hour_of_day = updated.hour weekdays[weekday] += 1 hours_of_day[hour_of_day] += 1 hours_of_week[weekday][hour_of_day] += 1

and then, plot the results using matplotlib bar charts:

plt.bar(weekdays.keys(), weekdays.values(),)plt.show()
plt.bar(hours_of_day.keys(), hours_of_day.values(),)plt.show()

With only this basic analysis, we can already learn a lot about better or worse time slots for broadcasting to this group. But it does not seem informative enough. Maybe because the data is divided into 2 graphs and missing some critical information.

Let’s try to present a heat map of the data, that enables us to see 3D information:

plt.imshow(hours_of_week, cmap="hot")plt.show()

Well, this is much better! We can see that the group is very active on Monday to Friday between 6:00 am and 10:00 am.

Now let’s take into consideration to post length and see how it affects the results:

weekdays_content = {i: 0 for i in xrange(7)}hours_of_day_content = {i: 0 for i in xrange(24)}hours_of_week_content = np.zeros((7,24), dtype=np.int)for post in posts: updated = datetime.datetime.strptime(post.get("updated_time"), "%Y-%m-%dT%H:%M:%S+0000") weekday = updated.weekday() hour_of_day = updated.hour content_length = len(post["message"]) if "message" in post else 1 weekdays_content[weekday] += content_length hours_of_day_content[hour_of_day] += content_length hours_of_week_content[weekday][hour_of_day] += content_length

The heatmap we get:

This is nice but should be treated with caution. On one hand, we can see a very specific time that is the optimized time slot to have our Facebook Live session. But, it might be an outlier of a super long post.

I’ll leave it to you to figure it out in your next data analysis project. Take a larger amount of posts or grab an older batch of 5000 posts from the group’s feed.

To take reactions into account when analyzing the data, we need to make another API call for each post.

This is because it’s a different API endpoint:

weekdays_reactions = {i: 0 for i in xrange(7)}hours_of_day_reactions = {i: 0 for i in xrange(24)}hours_of_week_reactions = np.zeros((7,24), dtype=np.int)for i, post in enumerate(posts): url = "//graph.facebook.com/v2.10/{id}/reactions?access_token={token}&summary=total_count".format( id=post["id"], token=ACCESS_TOKEN )
headers = { "Host": "graph.facebook.com" }
response = requests.get(url, headers=headers)
try: total_reactions = 1 + response.json().get("summary").get("total_count") except: total_reactions = 1
updated = datetime.datetime.strptime(post.get("updated_time"), "%Y-%m-%dT%H:%M:%S+0000") weekday = updated.weekday() hour_of_day = updated.hour weekdays_reactions[weekday] += total_reactions hours_of_day_reactions[hour_of_day] += total_reactions hours_of_week_reactions[weekday][hour_of_day] += total_reactions

We used a low-level approach by specifying the exact HTTP request and did not use the Facebook Python library. This is because that library doesn’t support the last version of the Facebook API required when querying the reactions endpoint.

The heat map generated from this data:

We can conclude that the three approaches we used agree on Monday and Wednesday, 6:00 am to 7:00 am.

Conclusions

Data analysis can be challenging and often requires creativity. But it also exciting and very rewarding.

After choosing our time to broadcast on Facebook Live based on the analysis presented here, we had a huge success and a lot of traction during our Live session.

I encourage you to try and use data analysis to make data-driven decisions in your next business move. And start thinking in terms of data-driven decisions.

Μπορείτε να βρείτε το αποθετήριο Github εδώ.

Το δημοσίευσα αρχικά στο CodingStartups.