Repro - Mobile Analytics for growth
English
アカウント登録 管理画面に戻る
  • 動作環境
  • 管理画面ガイド
  • 開発ガイド
    • アカウント作成
    • iOS/Android SDK
    • Web
    • オーディエンスAPI
    • オーディエンスインポート(β)
    • プッシュAPI
    • ユーザープロフィールAPI
    • ユーザープロフィールバルクインポート
    • ニュースフィードAPI
      • はじめに
        • Repro Client トークンの取得
        • 単位時間あたりのアクセス上限
      • ニュースフィードAPI
        • ニュースフィードの取得
        • エンドポイント
        • リクエストヘッダー
        • クエリパラメーター
        • レスポンスヘッダー
        • 正常系レスポンス
        • 正常系レスポンスボディ例
        • エラーレスポンス
        • 400 Bad Request
        • 401 Unauthorized
        • 403 Forbidden
        • 404 Not Found
        • 429 Too Many Requests
        • ニュースフィードの更新
        • エンドポイント
        • リクエストヘッダー
        • クエリパラメータ
        • レスポンスヘッダー
        • 正常系レスポンス
        • 正常系レスポンスボディ例
        • エラーレスポンス
        • 400 Bad Request
        • 401 Unauthorized
        • 403 Forbidden
        • 404 Not Found
        • 429 Too Many Requests
    • 削除ユーザー登録API
    • Booster導入ガイド
    • メール(β)
  • リリースノート
  • FAQ

ニュースフィードAPI¶

ニュースフィードAPIを使うと、ニュースフィード をAPI経由で取得出来ます。

例えば、お知らせ画面を実装するためにニュースフィードの機能を利用することを例に取ります。 この場合、Repro SDK経由してニュースフィードを取得する方法では、アプリ側でお知らせ画面を全て実装して頂く必要がございますが、APIを利用する方法では例えば HTMLアプリ内メッセージ の機能と組み合わせることで、お知らせ画面のUI及びニュースフィードの取得処理をRepro上で実装し、ニュースフィード機能の導入を楽にするといったことが可能になります。

注釈

ニュースフィードAPIと HTMLアプリ内メッセージ を組み合わせて用いた場合でも、ニュースフィード機能を導入する上で必要な実装が完全になくなるわけではございませんので、ご注意ください。

警告

アプリ内メッセージおよびWebメッセージをニュースフィードとして利用する際には、仕様上下記のようなユースケースでは意図した挙動とならないことがございますのでご注意ください。

例) 購入イベントをトリガーにして、作成されたキャンペーンをニュースフィードとして利用する場合

  • ニュースフィードはキャンペーンとは別に独立して作成されるため、キャンペーンが表示されていなくてもニュースフィードとしては取得が可能になります。

はじめに¶

ニュースフィードAPIを使うには、Repro Client トークンを利用する必要があります。

Repro Client トークンの取得¶

  1. 設定 > プロジェクト設定 に行き、 認証情報 > Repro Client トークン を確認します。
Repro Client Token

単位時間あたりのアクセス上限¶

ニュースフィードAPIには単位時間当たりのアクセス上限があります。

  • アクセス上限設定値は、1プロジェクトごとに1分あたり3000件です。
  • リクエストが正常に完了すると、レスポンスの X-RateLimit-Limit ヘッダーに単位時間あたりのリクエスト上限回数が記載されます。
  • リクエスト数がアクセス上限数を超えると、 HTTP Status 429 (Too Many Requests) が返ります。

レスポンスヘッダーの詳細 レスポンスヘッダー をご覧ください。

警告

  • アクセス上限設定値は予告なく変動する場合があります。

  • アクセス上限設定値は、機能単位でのAPIトークンごととなります。
    例えば、プッシュAPIとユーザープロフィールAPIは同じAPIトークンを利用していますが、別機能のため同時にリクエストしたとしても、それぞれ1件づつのカウントとなります。

ニュースフィードAPI¶

現在、ニュースフィードAPIでは下記の機能を提供しています。

機能 HTTPメソッド エンドポイント
取得 GET https://api.reproio.com/v3/newsfeeds?device_id={device_id}&campaign_type={campaign_type}&limit={limit}&offset_newsfeed_id={offset_newsfeed_id}
更新 PATCH https://api.reproio.com/v3/newsfeeds/{newsfeed_id}?device_id={device_id}&shown={shown}&read={read}

以降では、リクエスト方法の詳細を記載していきます。

ニュースフィードの取得¶

GETリクエスト を実行することで、最新のニュースフィードの取得が可能です。

エンドポイント¶

機能 HTTPメソッド エンドポイント
取得 GET https://api.reproio.com/v3/newsfeeds?device_id={device_id}&campaign_type={campaign_type}&limit={limit}&offset_newsfeed_id={offset_newsfeed_id}

リクエストヘッダー¶

ヘッダー 説明 任意 / 必須
Content-Type application/jsonを指定します。 必須
X-Repro-Token Repro Client トークンの取得 で取得したトークンを指定します。 必須

クエリパラメーター¶

フィールド 説明 任意 / 必須
device_id 取得処理を実行する端末のデバイスID。デバイスIDの取得方法に関しては、デバイスID をご参照ください。 必須
campaign_type
取得したいキャンペーンの種類。指定可能な値は下記の通りです。何も指定しなかった場合は、プッシュ通知を取得します。
  • all : すべてのキャンペーン種別
  • push_notification : プッシュ通知
  • web_message : Webメッセージ
  • in_app_message : アプリ内メッセージ
任意
limit
取得するニュースフィードの件数を指定します。何も指定しなかった場合は、最新の20件 が取得されます。
  • limitに指定できる最大値は 200 です。それ以上の値が指定された場合にはエラーレスポンスが返ってくるのでご注意ください。
任意
offset_newsfeed_id オフセットID。詳細は ニュースフィード をご参照ください。 任意

注釈

ニュースフィードとして取得可能な期間はAPIのリクエスト日を起点にして、30日以内に実行されたキャンペーンです。ご注意ください。

レスポンスヘッダー¶

レスポンスのヘッダーには、以下の値が含まれます。

ステータス ヘッダー 説明
正常 X-RateLimit-Limit 単位時間あたりのアクセス上限
正常 X-RateLimit-Remaining アクセスできる残り回数
正常 X-RateLimit-Reset アクセス数がリセットされる時刻(unixtime)
正常 Link 後続のニュースフィードを取得するためのパラメータ
リクエスト制限 Retry-After 再実行可能になるまでの秒数

正常系レスポンス¶

リクエスト成功時、レスポンスボディはJSON形式で以下の内容が返ってきます。

フィールド 説明
newsfeed_id(string) ニュースフィードのID
campaign_type(string) キャンペーン種別。push_notification, web_message , in_app_message のいずれかの値を取る。
device_id(string) 端末にひもづくデバイスID。詳細は、デバイスID をご参照ください。
title(string) ニュースフィードのタイトル
summary(stinrg) キャンペーン作成時にニュースフィードの概要で指定された値
body(string) ニュースフィードの本文
shown(boolean) 表示されたかどうかの管理に利用する値
read(boolean) 既読かどうかの管理に利用する値
link_url(string) リンクのURL
image_url(string) 画像のURL
extras(object) カスタムペイロード
delivered_at(string) 送信日時

正常系レスポンスボディ例¶

[
    {
        "newsfeed_id": 1,
        "campaign_type": "push_notification",
        "device_id": "12e4dd50-810a-410a-b046-8ce88729f1a1",
        "title": "quae",
        "summary": "Quam rerum aut incidunt.",
        "body": "Quam rerum aut incidunt.",
        "shown": true,
        "read": true,
        "link_url": null,
        "image_url": null,
        "extras": null,
        "delivered_at": "2021-06-07T09:27:53Z"
    }
]

警告

値の存在しないレスポンスの値は null もしくは "" の両方があり得ます。ご注意ください。

エラーレスポンス¶

レスポンスに含まれるステータスコードとエラーメッセージの一覧は下記になります。

400 Bad Request¶

リクエストにエラーがあります。エラーメッセージを確認の上、対応してください。

device_id が指定されていません。

レスポンスボディ:

{
  "error": {
    "messages": [
      "device_id is missing"
    ]
  }
}

limit に不正な値が指定されています。

レスポンスボディ:

{
  "error": {
    "messages": [
      "limit must be less than or equal 200"
    ]
  }
}

campaign_type に不正な値が指定されています。

レスポンスボディ:

{
  "error": {
    "messages": [
      "unknown campaign_type. valid campaign_type:all,push_notification,in_app_message,web_message"
    ]
  }
}

401 Unauthorized¶

Repro Client トークンが指定されていません。

レスポンスボディ:

{
  "status": "unauthorized",
  "error": {
    "messages": [
      "Please include your Repro Client Token as \"X-Repro-Token\" HTTP header."
    ]
  }
}

403 Forbidden¶

指定した Repro Client トークンが間違っています。

レスポンスボディ:

{
  "status": "forbidden",
  "error": {
    "messages": [
      "Please check your Repro Client Token as \"X-Repro-Token\" HTTP header."
    ]
  }
}

404 Not Found¶

取得項目が存在しません。

レスポンスボディ:

{
  "status": "not_found",
  "error": {
    "messages": [
      "Entity was not found."
    ]
  }
}

429 Too Many Requests¶

リクエスト数が多すぎます。 Retry-After ヘッダーに記載された秒数待った後、リクエストを再開してください。

レスポンスボディ:

{
  "status": "too_many_requests",
  "error": {
    "messages": [
      "Too many requests hit the API too quickly."
    ]
  }
}

ニュースフィードの更新¶

PATCHリクエスト を実行することで、ニュースフィードの既読や表示等の状態の更新が可能です。

エンドポイント¶

機能 HTTPメソッド エンドポイント
取得 PATCH https://api.reproio.com/v3/newsfeeds/{newsfeed_id}?device_id={device_id}&shown={shown}&read={read}

リクエストヘッダー¶

ヘッダー 説明 任意 / 必須
Content-Type application/jsonを指定します。 必須
X-Repro-Token Repro Client トークンの取得 で取得したトークンを指定します。 必須

クエリパラメータ¶

フィールド 説明 任意 / 必須
newsfeed_id(string) 更新処理を行う対象のニュースフィードのid。 必須
device_id(string) 更新処理を実行する端末のデバイスID。デバイスIDの取得方法に関しては、デバイスID をご参照ください。 必須
shown(boolean) 表示管理を行う値 任意( readを指定しない場合は必須 )
read (boolean) 既読管理を行う値 任意( shownを指定しない場合は必須 )

レスポンスヘッダー¶

レスポンスのヘッダーには、以下の値が含まれます。

ステータス ヘッダー 説明
正常 X-RateLimit-Limit 単位時間あたりのアクセス上限
正常 X-RateLimit-Remaining アクセスできる残り回数
正常 X-RateLimit-Reset アクセス数がリセットされる時刻(unixtime)
リクエスト制限 Retry-After 再実行可能になるまでの秒数

正常系レスポンス¶

リクエスト成功時、レスポンスボディはJSON形式で以下の内容が返ってきます

フィールド 説明
updated(boolean) 更新処理が成功したかどうかを表します。

正常系レスポンスボディ例¶

{
    "updated": true
}

エラーレスポンス¶

400 Bad Request¶

リクエストにエラーがあります。エラーメッセージを確認の上、対応してください。

device_id が指定されていません。

レスポンスボディ:

{
  "error": {
    "messages": [
      "device_id is missing"
    ]
  }
}

shownとread のいずれも指定されていません。

レスポンスボディ:

{
    "error": {
        "message": [
            "Either shown or read must be present"
        ]
    }
}

401 Unauthorized¶

Repro Client トークンが指定されていません。

レスポンスボディ:

{
  "status": "unauthorized",
  "error": {
    "messages": [
      "Please include your Repro Client Token as \"X-Repro-Token\" HTTP header."
    ]
  }
}

403 Forbidden¶

指定した Repro Client トークンが間違っています。

レスポンスボディ:

{
  "status": "forbidden",
  "error": {
    "messages": [
      "Please check your Repro Client Token as \"X-Repro-Token\" HTTP header."
    ]
  }
}

404 Not Found¶

更新対象項目が存在しません。

レスポンスボディ:

{
  "status": "not_found",
  "error": {
    "messages": [
      "Target newsfeed is not found"
    ]
  }
}

429 Too Many Requests¶

リクエスト数が多すぎます。 Retry-After ヘッダーに記載された秒数待った後、リクエストを再開してください。

レスポンスボディ:

{
  "status": "too_many_requests",
  "error": {
    "messages": [
      "Too many requests hit the API too quickly."
    ]
  }
}
  • « ユーザープロフィールバルクインポート
  • 削除ユーザー登録API »

About Us Careers Terms of Service Privacy Policy Cookie Policy

© 2022 Repro Inc.