こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- Python環境でInstagram Graph APIを活用する方法が知りたい
- Instagram Graph APIで「ユーザーインサイト・メディアインサイトを確認する方法」が知りたい
Instagramの運用自動化とは|何ができるの?
Instagramの運用自動化とは、これまで手作業で行なってきたインスタ操作をシステムで自動化することを指します。
Instagramの運用自動化は、Meta(旧Facebook)が提供するInstagram Graph APIを活用すると実現でき、具体的に上記の操作が自動化できるようになります。
インスタアプリ上での操作は全て自動化できることが分かりますね。Instagram APIの機能を組み合わせると、インスタデータの自動収集、グラフ作成や結果考察という一連作業もまとめて効率化できるようになります。
Instagram運用の自動化|APIの利用
Instagramの自動操作を実現するには、Meta(旧Facebook)が提供するInstagram Graph APIを活用します。
InstagramグラフAPIとは、Meta開発者向けに提供されるInstagram運用の効率化ツールになります。
Instagramの運用自動化を検討する場合、Meta For Developersにて以下の認証情報を取得しておく必要があります。
- アクセストークン
- アプリID
- アプリシークレット
- インスタグラムビジネスアカウントID
上記の具体的な取得方法についてはこちらの記事で解説しています。
Instagram Graph APIの認証・利用手順|アクセストークン・アプリ・インスタビジネスアカウントID取得
Instagram Graph APIを活用したインスタ自動運用に興味がある方向けに、API利用に至るまでの準備事項・手順を詳しく解説します。
Python活用によるInstagram自動操作|本記事での解説内容
本記事ではPythonを活用して「インスタグラムのユーザーインサイトおよびメディアインサイトを獲得する方法」について解説します。
具体的に次のような指標が確認できるようになります。
- インプレッション数
- リーチ数
- エンゲージメント数
- 保存数
- プロフィール訪問者数
- メール・電話番号・地図・Webサイトクリック数
【Python】Instagram Graph API呼出関数を作成
Instagram Graph APIを活用してユーザー・メディアインサイトを獲得するには、事前にAPIを呼び出すための関数を作成しておく必要があります。以下、PythonコードとしてAPIの認証用関数と呼出関数をそれぞれ準備しましょう。
【事前準備】Instagram Graph APIの認証用関数を作成
はじめに、Instagram Graph APIを使用するための、API認証用関数を作成します。
認証には以下のコードを用い、XXXX
部分を必要な認証情報に書き換えて利用しましょう。
endpont_baseにはgraph_domain(https://graph....com/
)と最新のバージョンvxx.0/
を指定しています。
config_dict = {
"access_token": '<アクセストークン>',
"app_id":'<アプリID>',
"app_secret":'<アプリシークレット>',
"instagram_account_id":'<インスタビジネスのアカウントID>',
"endpoint_base":'https://graph.facebook.com/v21.0/',
}
【事前準備】Instagram Graph API呼出関数を作成
続いて、インスタグラム Graph APIを呼び出す関数を作成します。
以下のコードをそのままコピー&ペーストしましょう。
import requests
import json
import datetime
from pprint import pprint
# API Request Func
def InstaApiCall(url, params, request_type):
# Request
if request_type == 'POST':
req = requests.post(url,params)
else :
req = requests.get(url,params)
# Response
res = dict()
res["url"] = url
res["endpoint_params"] = params
res["endpoint_params_pretty"] = json.dumps(params, indent=4)
res["json_data"] = json.loads(req.content)
res["json_data_pretty"] = json.dumps(res["json_data"], indent=4)
return res
上記関数のエラー対応のために、Instagram Graph APIの呼出関数の動作チェックをしたい場合、以下の記事をご覧下さい。
【Python】Instagram Graph APIの動作チェック
Python環境でInstagram Graph APIを活用したい Instagram Graph APIを正常に呼出できているのか動作確認したい
【Python】インスタグラムのユーザーインサイトを確認
インスタグラムのユーザーインサイトを確認するためのコードをご紹介します。
コード(関数)
ユーザーインサイトを確認するAPI呼出関数を以下に示します。そのままコピー&ペーストして利用しましょう。
# インスタグラム運用アカウントのインサイトを確認
def UserInsights(params, period='day') :
"""
***********************************************************************************
【APIエンドポイント】
https://graph.facebook.com/{graph-api-version}/{ig-user-id}/insights?metric={metric}&period={period}
***********************************************************************************
"""
# エンドポイントに渡すパラメータ
Params = dict()
Params['metric'] = 'follower_count,impressions,profile_views,reach, get_directions_clicks, text_message_clicks, website_clicks, email_contacts, phone_call_clicks' # インサイト指標
Params['period'] = period # 集計期間
Params['access_token'] = params['access_token'] # アクセストークン
# エンドポイントURL
url = params['endpoint_base'] + params['instagram_account_id'] + '/insights' # endpoint url
# 出力
return InstaApiCall(url, Params, 'GET')
コード(実行用)
前述の関数を活用してユーザーインサイト指標を出力するコードを以下に示します。
# メディア期間
period = 'day'
# API呼出
params = basic_info()
response = UserInsights(params, period)["json_data"]["data"]
# 結果出力
for insight in response:
print (insight['title'] + "(" + insight['description'] + ")" + " (" + insight['period'] + ")")
for value in insight['values'] : # loop over each value
print ("\t" + value['end_time'] + ": " + str( value['value'] )) # print out counts for the date
出力結果イメージ
# フォロワー数(このプロフィールをフォロー中のユニークアカウントの合計数です) (day)
# 2022-07-16: 100
# 2022-07-17: 200
# インプレッション(ビジネスアカウントのメディアオブジェクトの合計ビュー数です) (day)
# 2022-07-16: 100
# 2022-07-17: 200
# プロフィールビュー(指定された期間にビジネスアカウントのプロフィールを見た合計ユーザー数です) (day)
# 2022-07-16: 100
# 2022-07-17: 200
# リーチ(ビジネスアカウントのメディアオブジェクトの合計ユニークビュー数です) (day)
# 2022-07-16: 100
# 2022-07-17: 200
# [道順を表示]のクリック(このプロフィールの道順の表示リンクの合計タップ数です) (day)
# 2022-07-16: 100
# 2022-07-17: 200
# SMS送信のクリック(このプロフィールのSMSリンクの合計タップ数です) (day)
# 2022-07-16: 100
# 2022-07-17: 200
# ウェブサイトクリック(このプロフィールのウェブサイトリンクの合計タップ数です) (day)
# 2022-07-16: 100
# 2022-07-17: 200
# メールアドレス(このプロフィールのメールリンクの合計タップ数です) (day)
# 2022-07-16: 100
# 2022-07-17: 200
# 電話発信のクリック(このプロフィールの通話発信リンクの合計タップ数です) (day)
# 2022-07-16: 100
# 2022-07-17: 200
【Python】インスタグラムのメディアインサイトを確認
インスタグラムのメディアインサイトを確認するためのコードをご紹介します。
メディアインサイトを確認する場合、後述するコードにメディアIDを指定する必要があります。インスタグラムのメディアIDを指定する方法は別途以下の記事で解説していますため、合わせてご覧下さい。
【Python】インスタグラムに投稿したメディア情報取得|Instagram Graph APIで運用自動化
Python環境でInstagram Graph APIを呼び出し、「インスタグラムに投稿したメディア(写真・動画)情報を取得する方法」について解説します。
コード(関数)
メディアインサイトを確認するAPI呼出関数を以下に示します。そのままコピー&ペーストして利用しましょう。
# 特定のメディアIDを指定しインサイトを確認
def MediaInsights(params, media_id, media_type) :
"""
***********************************************************************************
【APIエンドポイント】
https://graph.facebook.com/{graph-api-version}/{ig-media-id}/insights?metric={metric}
***********************************************************************************
"""
# エンドポイントに渡すパラメータ
Params = dict()
if media_type == 'VIDEO':
# 動画の場合
Params['metric'] = 'engagement,impressions,reach,saved,video_views' # 動画インサイト指標
elif media_type == "REEL":
# Reelの場合
Params['metric'] = 'comments,likes,reach,saved,plays,shares,total_interactions' # リールインサイト指標
elif media_type == 'STORY':
# ストーリーの場合
Params['metric'] = 'exits,impressions,reach,replies,taps_forward,taps_back' # ストーリーインサイト指標
else:
# 写真の場合
Params['metric'] = 'engagement,impressions,reach,saved' # 写真インサイト指標
Params['access_token'] = params['access_token'] # アクセストークン
# エンドポイントURL
url = params['endpoint_base'] + media_id + '/insights'
# 出力
return InstaApiCall(url, Params, 'GET')
コード(実行用)
前述の関数を活用してメディアインサイト指標を出力するコードを以下に示します。media_id
(メディアID)およびmedia_type
(メディア種別:IMAGE or VIDEO or STORY or REEL)を修正した上で、コードを実行しましょう。
# 【要修正】メディアID
media_id = 'XXXXX'
# 【要修正】メディア種別(IMAGE or VIDEO or STORY or REEL)
media_type = 'IMAGE'
# API呼出
params = basic_info()
response = MediaInsights(params, media_id, media_type)['json_data']['data']
# 結果出力
for insight in response:
print (insight['title'] + "(" + insight['description'] + ")")
print (">> " + str(insight["values"][0]["value"]))
出力イメージ
# エンゲージメント(メディアオブジェクトの「いいね!」とコメントの合計数です)
# >> 200
# インプレッション(メディアオブジェクトの合計ビュー数です)
# >> 300
# リーチ(メディアオブジェクトを見たユニークアカウントの合計数です)
# >> 70
# 保存(メディアオブジェクトを保存したユニークアカウントの合計数です)
# >> 30
【参考】インスタグラム・その他SNSの運用効率化
当サイトではSNS運用を効率化するための方法を多数解説しています。
Instagram Graph APIを活用したインスタ運用の自動化
カテゴリ | 記事名 |
---|---|
API利用手順 | Instagram Graph APIの使い方・認証手順・できること |
API利用手順 | Instagram Graph APIの動作チェック |
API利用手順 | 有効期限を長期化したアクセストークン取得 |
インスタ運用効率化 | Instagramユーザー情報取得 |
インスタ運用効率化 | Instagramに投稿したメディア情報取得 |
インスタ運用効率化 | Instagramハッシュタグの検索結果取得 |
インスタ運用効率化 | Instagramに写真や動画をアップロード |
インスタ運用効率化 | Instagramメディア・ユーザーインサイト取得 |
インスタグラム運用代行サービス
「面倒なSNS運用を全て代行してほしい」「質のいいフォロワーを獲得したい」「SNS経由での収益導線を強化したい」という方向けにこちらのサービスもおすすめします。
Twitter運用の効率化
Twitter運用を自動化する方法
- Twitter検索結果に基づくデータ収集・分析
- 定期的に自動ツイートする方法
- 自動でファボ(いいね)やリツイートする方法
- 自動でフォロー・ブロック・ミュートする方法
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら