Hvornår er det bedste tidspunkt at streame på Facebook Live? Jeg analyserede 5.000 Facebook-indlæg for at finde ud af det.

Streaming på Facebook Live kan være en stærk markedsføringsstrategi for startups og virksomheder. De kan dele viden, give værdi, få eksponering og samle kundeemner i høj kvalitet.

Forbered din Facebook Live-session på forhånd. Undersøg om din målgruppe og opbyg en detaljeret dagsorden. Sessionen kan øge din forretning dramatisk.

Jeg var chef for produkt og teknologi i min tidligere opstart, der beskæftiger mig med afsløring af svig. Jeg besluttede at prøve Facebook Live som en ny marketingstrategi.

Det var stadig ret nyt på det tidspunkt. Når en Facebook Live-session var op, fik relevante personer Facebook-underretninger for at deltage i sessionen. Dette øgede eksponeringen endnu mere.

Der er mange indlæg, der taler om, hvordan man bedre bygger din Facebook live-session. De diskuterer hvilke emner der skal dækkes, opbygning af en dagsorden, kameravinkler, sessionens varighed og mere.

Men der er et stykke af puslespillet, som virksomhedsejere og marketingfolk ofte har en tendens til at glemme eller ikke er opmærksomme på: Hvornår er det bedste tidspunkt at streame din Facebook Live-session?

Du kan besvare dette spørgsmål ved hjælp af et veluddannet gæt baseret på din fortrolighed med målgruppen.

For eksempel:

  • Gravide mødre er klar til at forbruge din Live-session mandag eftermiddag.
  • Teenagere i alderen 18-22 er i den rette tankegang lørdag morgen.

Men der er så mange data omkring os, som vi kan bruge med et par klik på en knap. Du bliver faktisk bagud, hvis du ikke bruger en ordentlig brug af nogle af de tilgængelige data.

Næsten alle marketingplatforme eller sociale netværk åbner API-tjenester. Du som teknologisk iværksætter kan nemt forbruge disse. Disse data kan give værdifulde konklusioner, der kan føre dine forretningsmål ud over dine konkurrenter.

Denne tilgang kaldes ofte datadrevne beslutninger .

Når du begynder at retfærdiggøre en eller i det mindste de fleste af dine forretningsbeslutninger ved hjælp af data, du ejer, eller data, du kan indsamle fra forskellige ressourcer, kan du stoppe med at gætte og begynde at tage datadrevne beslutninger.

Jeg kan godt lide at tænke på datadrevne beslutninger som crowd-sourcing. Lior Zoref var på denne TED-tale. Han inviterede en okse til scenen og bad publikum om at gætte dens vægt. Hvis du så dette, blev du sandsynligvis overvældet af, hvor nøjagtigt publikumets gennemsnit var sammenlignet med oksens reelle vægt: 1792 pund eller 1795 pund!

Når du gætter på dine forretningsmål som enkeltpersoner, er du ikke anderledes end nogen person, der sidder i mængden og prøver at evaluere oksens vægt. Du kan endda være den, der gættede 300 pund eller 8000 pund, hvilket kan koste din virksomhed en masse unødvendige udgifter.

Men hvis du bruger mængden af ​​visdom til at træffe datadrevne beslutninger, vil du sandsynligvis være foran alle andre. Forretningsmæssigt ligger du foran dine konkurrenter.

Jeg er ikke en ren marketingmedarbejder. Men med grundlæggende dataanalysefærdigheder kan jeg skubbe min virksomhed fremad i alle aspekter, herunder marketing.

Jeg leder dig gennem en praktisk trin-for-trin vejledning om, hvordan du får adgang til Facebook-data. Derefter hvordan man analyserer det ud fra vores behov om den optimerede tid til transmission på Facebook Live.

For at følge denne vejledning har du brug for:

  • En Facebook-konto
  • En Facebook-gruppe, du gerne vil analysere

    Hvis det er en privat gruppe, skal du være gruppemedlem

  • Python 2.7 installeret
  • Jupyter notesbog installeret
  • Facebook-graf API Python-bibliotek installeret

En Jupyter-notesbog er et anbefalet værktøj til dataanalyse i Python. Det har mange højdepunkter. Det giver dig mulighed for at køre kodestykker og gemme resultaterne i hukommelsen. Så du kører ikke alle dine scripts igen og igen hver gang du implementerer en mindre ændring. Dette er afgørende, når du foretager dataanalyse, fordi nogle opgaver kan tage meget udførelsestid.

Selvom det ikke er vigtigt, anbefaler jeg at arbejde i et virtuelt Python-miljø. Her er et indlæg, jeg skrev om fordelene ved et virtuelt miljø, når jeg bruger Python.

Jeg anbefaler at arbejde i et Ubuntu-miljø, når jeg foretager dataanalyse ved hjælp af Jupyter-notesbøger.

Trin 1 - Sådan får du Facebook-gruppe-id'et

For at få data fra Facebook API skal vi specificere id'et for den enhed, vi vil hente data fra, i vores tilfælde en Facebook-gruppe.

Lookup-id.com er et godt værktøj, du kan bruge til at finde id'et for en gruppe baseret på dens URL. Kopier URL-adressen til din gruppe, og indsæt den i søgefeltet.

I denne artikel bruger vi gruppen: Webdesign og udvikling.

ID: 319479604815804

Trin 2 - Lær Graph API Explorer at kende

For at få mest muligt ud af Facebook API ud over dokumentation har Facebook udviklet en legeplads til udviklere kaldet Graph API Explorer.

Graph API Explorer giver os mulighed for at få et midlertidigt adgangstoken og begynde at undersøge de muligheder, som Facebook API har at tilbyde.

Klik på Get Token. Vælg ikke nogen tilladelse. Klik på Få adgangstoken .

Facebook API har mange slutpunkter, du kan bruge. I denne vejledning skal vi bruge to hovedendepunkter:

  • Gruppens slutpunkt
  • Reaktionernes slutpunkt

For at finde ud af strukturen på det svar, du forventer at få, skal du angive slutpunktets URL og klikke på Send .

Lad os undersøge URL-slutpunktet for at få fat i de sidste indlæg fra gruppens feed. Skriv denne URL i Graph API Explorer:

319479604815804/feed

og tryk på Send .

Du skal nu se de sidste indlæg fra gruppens feed i en JSON-struktur. Det indeholder indlægets indhold, dets id og den opdaterede tid. Ved at klikke på et af id'erne og tilføje til slutningen af ​​URL:

319479604815804_1468216989942054/reactions?summary=total_count

Du bør se en liste over reaktionerne for det specifikke indlæg og et resumé af det samlede antal reaktioner.

På denne måde kan du lege med alle de funktioner, Facebook API har at tilbyde.

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.

Du kan finde Github-arkivet her.

Jeg offentliggjorde oprindeligt dette på CodingStartups.