「このアプリを評価/レビュー」するためのアプリストアリンク


192

アプリに「このアプリの評価/レビュー」機能を追加したい。

アプリをレビューするアプリストアの画面に直接リンクする方法はありますか?したがって、顧客はメインのアプリリンクをクリックする必要はありません。ありがとう。

編集:応答がないため、これに関する報奨金を開始します。それが非常に明確であることを確認するために:私はストア内の自分のアプリのページにリンクできることを認識しており、そこから「このアプリのレビュー」画面にクリックするようユーザーに要求します。問題は、「このアプリのレビュー」画面に直接リンクして、何もクリックする必要がないかどうかです。


1
ここに私の答えを参照してください:stackoverflow.com/questions/3011246/...
iwasrobbed

回答:


349

iOS 7より前のバージョンでは、古いバージョンを使用します。

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=YOUR_APP_ID

これは私の側で機能します(Xcode 5-iOS 7- デバイス!):

itms-apps://itunes.apple.com/app/idYOUR_APP_ID

iOS 8以降の場合:

itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

コードスニペット(コピーして貼り付けるだけです):

#define YOUR_APP_STORE_ID 545174222 //Change this one to your ID

static NSString *const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%d";
static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";

[NSURL URLWithString:[NSString stringWithFormat:([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f)? iOS7AppStoreURLFormat: iOSAppStoreURLFormat, YOUR_APP_STORE_ID]]; // Would contain the right link

165
注-「type = Purple + Software」存在している必要があり、文字通り「Purple Software」である必要があります。これは会社の名前ではなく、iPhoneアプリケーションのコードネームです。:)これを理解する前に1時間無駄にした...
クバSuder

16
これはシミュレータでは機能しませんが、実際のデバイスでは機能することに注意してください。
ジョセフ

1
ちなみに、これはiPadで動作するようですが、2回目のみで、初めて使用することはありません。(iTunesとApp Storeアプリを終了した後)
Michael

13
iOS 7ではストアページに移動しますが、レビュータブは選択されません。
devios1 2013年

40
iOS 10.3の一部として、URLに追加できる新しいクエリパラメータがありますaction=write-review。私はこれをiOS 10.2でテストしましたが動作しますが、どれくらい前に戻るのかわかりません。これにより、単にレビュータブが表示されるのではなく、[レビューを書く ] ダイアログが開きます。例:itunes.apple.com/gb/app/…–
Joseph Duffy

61

更新:

Swift 5.1、Xcode 11

Real Device iOS 13.0でテスト済み(動作保証)

import StoreKit

func rateApp() {

    if #available(iOS 10.3, *) {

        SKStoreReviewController.requestReview()

    } else {

        let appID = "Your App ID on App Store"
        let urlStr = "https://itunes.apple.com/app/id\(appID)" // (Option 1) Open App Page
        let urlStr = "https://itunes.apple.com/app/id\(appID)?action=write-review" // (Option 2) Open App Review Page

        guard let url = URL(string: urlStr), UIApplication.shared.canOpenURL(url) else { return }

        if #available(iOS 10.0, *) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        } else {
            UIApplication.shared.openURL(url) // openURL(_:) is deprecated from iOS 10.
        }
    }
}

iOS 10.3で動作
Vladimir Shutyuk 2017

appID文字列から角かっこを削除すると機能します
richc

7
これはもう機能していません。機能しているのは<product-url>?action = write-reviewです。より良いunderstaningために、このマニュアルを参照してください:developer.apple.com/documentation/storekit/...
カルティクKannan

38

上記のすべてが正しいです。アプリに挿入して、{YOUR APP ID}を実際のアプリIDに変更し、iTunesconnectから取得してレビューページを表示するためのサンプルです。上記でコメントしたように、シミュレータでは機能せず、デバイスのみであることに注意してください。
-iOS 7の変更による修正。

NSString * appId = @"{YOUR APP ID}";
NSString * theUrl = [NSString  stringWithFormat:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=%@&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software",appId];
if ([[UIDevice currentDevice].systemVersion integerValue] > 6) theUrl = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/app/id%@",appId];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:theUrl]];

空のApp Storeページが表示されているようです。実際のID自体の前に「id」を付加する必要があるようです
Ger

appIdの括弧は必要ですか?それらを含めるのを忘れてしまったため、レート関数はまだ正常に機能します。
Glenn

1
{YOUR APP ID}以外の数値を使用し、@ "5555555555"を意味します-角かっこはそれが値であることを示しているだけです
ETech

37

編集:iOS 11ソリューション

これは私の元の答えに対する解決策です(以下を参照)。iOS 11を使用する場合、次のリンク形式が機能します。

https://itunes.apple.com/us/app/appName/idAPP_ID?mt=8&action=write-review

APP_ID特定のアプリIDに置き換えるだけです。リンクを機能させるための鍵は国コードです。上記のリンクはusコードを使用していますが、実際にはどのコードを使用するかは問題ではありません。ユーザーは自動的に自分のストアにリダイレクトされます。

iOS 11アップデート:

他の回答で紹介されている、レビューページに直接アクセスするためのソリューションがiOS 11で機能しないようです。

問題は、ほとんどのiOS 11 App Storeのアプリでアプリのページがないこと、である、NOTもうレビューのタブがあります。代わりに、レビューは説明とスクリーンショットのすぐ下に配置されています。もちろん、このセクションに直接到達することはまだ可能です(たとえば、なんらかのアンカーを使用して)が、これはAppleによってサポート /意図されていないようです。

次のリンクのいずれかを使用しても機能しなくなります。ユーザーを引き続きApp Storeアプリに誘導しますが、空白のページにのみ移動します

itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review
itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?id=YOUR_APP_ID&onlyLatestVersion=true&pageNumber=0&sortOrdering=1&type=Purple+Software

まだこれらのリンクをどのように使用していても、アプリをできるだけ早く更新する必要があります。ユーザーに空白のApp Storeページを紹介することは、おそらく意図したものではないためです。

ただし、レビューページではなくアプリページを参照するリンクは引き続き機能します。

itms-apps://itunes.apple.com/app/idYOUR_APP_ID   (same as above, but without write-review parameter)

そのため、ユーザーを引き続きアプリのストアページに移動できますが、レビューセクションに直接移動することはできません。ユーザーはフィードバックを残すために、手動でレビューセクションまでスクロールする必要があります。

これは間違いなく「ユーザーエクスペリエンスにとってすばらしい素晴らしいメリットであり、開発者がユーザーを煩わせることなく高品質のレビューを残すように働きかけるのに役立ちます」。よくやったアップル...


SKStoreReviewController。requestReview()が機能しているかどうか。
dev_m 2017

1
SKStoreReviewControllerについて:「ユーザーにアプリのレビューを依頼するようにStoreKitにリクエストします。UIが表示される場合とされない場合があります」。したがって、SKStoreReviewControllerはソリューションではありません。私はそれを避けようとします。
Fallstreak 2017

26

上記のアプローチはすべて正しいですが、最近ではSKStoreProductViewControllerを使用すると、ユーザーエクスペリエンスが向上します。それを使用するには、次のことを行う必要があります。

  • アプリのデリゲートにSKStoreProductViewControllerDelegateプロトコルを実装する
  • 必要なproductViewControllerDidFinishメソッドを追加します。

    - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
      [viewController dismissViewControllerAnimated: YES completion: nil];
    }
  • SKStoreProductViewControllerクラスが使用可能かどうかを確認し、それを表示するか、App Storeに切り替えます。

    extern NSString* cAppleID; // must be defined somewhere...
    
    if ([SKStoreProductViewController class] != nil) {
      SKStoreProductViewController* skpvc = [[SKStoreProductViewController new] autorelease];
      skpvc.delegate = self;
      NSDictionary* dict = [NSDictionary dictionaryWithObject: cAppleID forKey: SKStoreProductParameterITunesItemIdentifier];
      [skpvc loadProductWithParameters: dict completionBlock: nil];
      [[self _viewController] presentViewController: skpvc animated: YES completion: nil];
    }
    else {
      static NSString* const iOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%@";
      static NSString* const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@";
      NSString* url = [[NSString alloc] initWithFormat: ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0f) ? iOS7AppStoreURLFormat : iOSAppStoreURLFormat, cAppleID];
      [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
    }

5
これは素晴らしいソリューションのように見えましたが、これを機能させることができませんでした。「レビューを書く」ボタンは無効になっています。私は最初、これは自分の開発バージョンを実行していたためだと考え、おそらくアプリストアバージョンをインストールする必要があると思いました。だから私は完全に新しいバンドルIDを作成し、それをApp Storeバージョンと一緒に実行しましたが、まだ運がありません。この投稿によると、iOS 7以降で[レビューを書く]ボタンが無効になっているようです。stackoverflow.com/ questions / 19058069 /
Matt R

@MattRそれはあなたがそのアプリを購入していないためかもしれません。「レビューを書く」ボタンが有効になりましたが、何もしていませんでした。アプリを購入した場合にのみ機能するかどうかをテストする必要があります。
Kamran Khan

3
この実装でデフォルトで「レビュー」タブを開く方法はありますか?Appleのドキュメントには3つのパラメーターしか表示されませんが、必要なものに関連しているようには見えません。SKStoreProductParameterITunesItemIdentifier、SKStoreProductParameterAffiliateToken&SKStoreProductParameterCampaignToken
Jovan

@KamranKhan、私は同じを見ています。これは開発版で無効にされているのでしょうか。出荷されたアプリ(署名済み)でこれを試し、機能するかどうか確認しましたか?
Shammi

@Shammiいいえ、チェックしていません。
Kamran Khan

15

iOS 11のソリューション

短いApp Store URLは、新しいiOS 11 App Storeの「レビューを書く」インターフェイスを正しく開きません。たとえば、これは機能しませ

https://itunes.apple.com/app/id333903271?mt=8&action=write-review

回避策は、次のように、URLに2文字の国コードとアプリ名を含めることです。

https://itunes.apple.com/ us / app / twitter / id333903271?mt = 8&action = write-review

または

itms-apps://itunes.apple.com/ us / app / twitter / id333903271?mt = 8&action = write-review

アプリの完全なURLは、https//linkmaker.itunes.apple.com/から取得できます。

これにより、iOS 11 App Storeの「レビューを書く」インターフェイスが正常に開きます。

編集: @Theoが以下で言及するように、国名コードをローカライズする必要はなく、アプリ名が変更されてもURLのアプリ名を更新する必要はありません。

うまくいけば、AppleはURLを短くするためにすぐにこれを修正するでしょう。rdar:// 34498138を参照してください


3
これは、WWDCセッション303で紹介されているiOS 11の正しい方法です。パラメータmt=8は必須ではないことに注意してください。さらに、明らかに国コードとURLのアプリ名が必要ですが、無視されます。したがって、アプリ名が変更されたときにURLをローカライズまたは更新する必要はありません。
Theo

あなたが正しい@Theo、唯一のIDを変更する必要があります:itms-apps://itunes.apple.com/xy/app/foo/id{your_app_id}?action=write-review
DaveAlden

4
マジ?このようなことを避けるために、WWDCの何時間を監視する必要がありますか?!?
ティバウトノア2017

1
他の人へのメモと同様に、新しいディープリンクは、WWDCセッション303で述べたように、iOS 10.3以降で利用可能です。
Kjuly

12

Swift 2バージョン

func jumpToAppStore(appId: String) {
    let url = "itms-apps://itunes.apple.com/app/id\(appId)"
    UIApplication.sharedApplication().openURL(NSURL(string: url)!)
}

11

以前のすべてのリンクは、[レビュー]タブに直接移動しなくなりました。

このリンクは、[レビュー]タブに直接移動します。

https://itunes.apple.com/app/viewContentsUserReviews?id=AppID

または

itms-apps://itunes.apple.com/app/viewContentsUserReviews?id = AppID


1
Apple Developer Libraryには、ユーザーに「レビュー」タブを表示する公式リンクはありません。ただし、ios4以降では、viewContentsUserReviewsやidなどの予約済みキーワードが見つかります。これは、Appleが引き続きURL取得パラメーターとして使用します。安全面を維持したい場合は、公式のリンクメーカーlinkmaker.itunes.apple.com/en-us
Satinos

1
@ Ms.Nehal、質問はリンクを要求します。それら実際の答えであり、答えへのポインタではありません。
Tobi Nary 2016年

9

iOS7では、評価とレビューのためにアプリをApp Storeに切り替えるURLが変更されました。

itms-apps://itunes.apple.com/app/idAPP_ID

APP_IDをアプリケーションIDに置き換える必要がある場合。

iOS 6以前の場合、以前の回答のURLは正常に機能しています。

出典:Appirater

コーディングをお楽しみください。


iPhoneで動作します。iPadではテストしていません。リンクはiPhoneで機能します。デバッグしてみてください!!
Sahil Mahajan

2
URLの番号の前に「id」を付加していることに気付かなかったので、白い四角が表示されました。「... / app / id123123123」ではなく、「... / app / 123123123」を試したところです。正しく読んでくれなかったのは恥です。これが誤ってそれをした人にも役立つことを願っています。
cclogg 2014

8

iOS 11以降(新しいアプリストア)でこれを行う新しい方法があります。「レビューを書く」ダイアログを直接開くことができます。

iOS 11の例:

itms-apps://itunes.apple.com/us/app/id1137397744?action=write-review

または

https://itunes.apple.com/us/app/id1137397744?action=write-review

ノート:

  • 国コードが必要です/us/)。どんな国コードでもかまいません。
  • アプリID(1137397744)をアプリIDに変更します(iTunesのURLから取得します)。
  • 古いiOSバージョン(11より前)をサポートする場合は、OSのバージョンが11以上の場合にのみ、このようにリンクする条件付きロジックが必要になります。

8

このURLを使用することは、私にとって完璧なソリューションでした。ユーザーをに直接移動しWrite a Review sectionます。@Joseph Duffyへのクレジット。しようとする必要があります

URL = YOUR_APP_ID_HEREを自分のAppIdにitms-apps://itunes.apple.com/gb/app/idYOUR_APP_ID_HERE?action=write-review&mt=8 置き換えます

サンプルコードについては、これを試してください:

Swift 3、Xcode 8.2.1:

 let openAppStoreForRating = "itms-apps://itunes.apple.com/gb/app/id1136613532?action=write-review&mt=8"
 if let url = URL(string: openAppStoreForRating), UIApplication.shared.canOpenURL(url) {
      UIApplication.shared.openURL(url)
 } else {
      showAlert(title: "Cannot open AppStore",message: "Please select our app from the AppStore and write a review for us. Thanks!!")
 }

ここで、showAlertはのカスタム関数ですUIAlertController


2
複数の質問に同じ回答を追加しないでください。最良のものに答え、残りを重複としてフラグを立てます。複数の質問に重複した回答を追加することは許容されますか?を
g00glen00b 2017年

1
わかりました、ありがとう。私はこれと学習に新しいです。ご案内ありがとうございます。
Ankit Kumar Gupta 2017

7

iOS 10.3以降では、action=write-reviewクエリ項目をhttps://itunes.apple.com/...およびhttps://appsto.re/...URLに添付できます。iOS 10.3以降ではWrite a review自動的に開きますが、それより前のiOSリリースではアプリのApp Storeページにフォールバックします。

iOS 11のアップデート:Appleのlinkmakerを使用:linkmaker.itunes.apple.com とappend &action=write-reviewは、最も安全な方法のようです。


4

iOS 4では、「削除レート」機能が廃止されました。

当面の間、アプリケーションを評価する唯一の方法はiTunes経由です。

編集:iTunes Link Makerを介してアプリケーションへのリンクを生成できます。このサイトにはチュートリアルがあります。


感謝します。。。そして私が探しているのはiTunesのリンクです!
William Jockusch 2010年

2
iTunes Link Makerをお試しください。私の理解では、ストアを閲覧するためにiTunesのユーザーコピーが起動されます。回答を編集してリンクを配置します。
キンス

4
NSString *url = [NSString stringWithFormat:@"https://itunes.apple.com/us/app/kidsworld/id906660185?ls=1&mt=8"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

4

iOS 8とiOS 9の両方でアプリのレビューページに実際に移動するSwift 2バージョン:

let appId = "YOUR_APP_ID"
let url = "itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=\(appId)"

UIApplication.sharedApplication().openURL(NSURL(string: url)!)

3

iOS8以上の場合:(@EliBudの簡略化した回答)。

#define APP_STORE_ID 1108885113

- (void)rateApp{
    static NSString *const iOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%d";

    NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:iOSAppStoreURLFormat, APP_STORE_ID]];

    if ([[UIApplication sharedApplication] canOpenURL:appStoreURL]) {
        [[UIApplication sharedApplication] openURL:appStoreURL];
    }
}


3

SKStoreProductViewControllerを介してAppStore内の任意のアプリにリンクする

SKStoreProductViewControllerを介して、アプリストアでアプリに簡単にリンクできます。しかし、少し苦労したので、プロセス全体と必要なコードをここに表示することにしました。この手法により、常に正しいストアが使用されるようになります(ローカライズされたアプリにとって重要です)。

アプリ内のアプリストアのアプリの製品画面をアプリのいずれかで表示するには、ViewControllersは次の手順に従います。

  1. プロジェクト設定に StoreFit.frameworkを追加ます(ターゲット、ビルドフェーズ->ライブラリとバイナリをリンク)
  2. StoreControllerをViewControllerクラスにインポートする
  3. ViewControllerをこのプロトコルに準拠さ せるSKStoreProductViewControllerDelegate
  4. StoreView表示するメソッドを作成します必要な製品画面を表示する
  5. 却下 StoreViewを

しかし、最も重要なこと:これは-何らかの理由で-シミュレーターでは機能しません-インターネットに接続されている実際のデバイスにビルドしてインストールする必要があります。

  1. プロジェクトにStorKit.frameworkを追加します。 これをプロジェクト設定で見つけます

SWIFT 4:これは、先に説明されたステップによるコードです:

    // ----------------------------------------------------------------------------------------
// 2. Import StoreKit into the ViewController class
// ----------------------------------------------------------------------------------------
import StoreKit

// ...

// within your ViewController

    // ----------------------------------------------------------------------------------------
    // 4. Create the method to present the StoreView with the product screen you want
    // ----------------------------------------------------------------------------------------
    func showStore() {

        // Define parameter for product (here with ID-Number)
        let parameter : Dictionary<String, Any> = [SKStoreProductParameterITunesItemIdentifier : NSNumber(value: 742562928)]

        // Create a SKStoreProduktViewController instance
        let storeViewController : SKStoreProductViewController = SKStoreProductViewController()

        // set Delegate
        storeViewController.delegate = self

        // load product
        storeViewController.loadProduct(withParameters: parameter) { (success, error) in

            if success == true {
                // show storeController
                self.present(storeViewController, animated: true, completion: nil)
            } else {
                print("NO SUCCESS LOADING PRODUCT SCREEN")
                print("Error ? : \(error?.localizedDescription)")
            }
        }
    }

// ...

// ----------------------------------------------------------------------------------------
// 3. Make your ViewController conforming the protocol SKStoreProductViewControllerDelegate
// ----------------------------------------------------------------------------------------
extension ViewController : SKStoreProductViewControllerDelegate {

    // ----------------------------------------------------------------------------------------
    // 5. Dismiss the StoreView
    // ----------------------------------------------------------------------------------------
    func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
        print("RECEIVED a FINISH-Message from SKStoreProduktViewController")
        viewController.dismiss(animated: true, completion: nil)
    }
}

2

これが私のアプリで使用しているコードです。

-(void)rateApp {

     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[@"itms-apps://itunes.apple.com/app/" stringByAppendingString: @"id547101139"]]]; 
}

2

承認された回答で[レビュー]タブを読み込めませんでした。「詳細」タブなしで「レビュー」タブをロードする方法を以下に見つけました。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString: @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id={APP_ID}&pageNumber=0&sortOrdering=2&mt=8"]];

{APP_ID}アプリアプリストアアプリIDに置き換えます。


2

SWIFT 3

fileprivate func openAppStore() {
        let appId = "YOUR_APP_ID"
        let url_string = "itms-apps://itunes.apple.com/app/id\(appId)"
        if let url = URL(string: url_string) {
            UIApplication.shared.openURL(url)
        }
    }

2

Apple Developer Documentationからの引用

さらに、アプリの設定画面に、App Store製品ページへのディープリンクである固定リンクを引き続き含めることができます。ユーザーがApp Storeでレビューを書き込むことができるページを自動的に開くには、クエリパラメーターaction = write-reviewを製品のURLに追加します。

したがって、URLは次のようになります。

itms-apps://itunes.apple.com/app/id YOUR_APP_ID?action = write-review


2

これはiOS 9〜11で正常に動作します。

以前のバージョンではテストしていません。

[NSURL URLWithString:@"https://itunes.apple.com/app/idXXXXXXXXXX?action=write-review"];

2
let rateUrl = "itms-apps://itunes.apple.com/app/idYOUR_APP_ID?action=write-review"
if UIApplication.shared.canOpenURL(rateUrl) {
    UIApplication.shared.openURL(rateUrl)
}

0

iOS 10.3以降:

import StoreKit

func someFunction() {
 SKStoreReviewController.requestReview()
}

しかし、それは10.3でリリースされたばかりなので、上記の古いバージョンのフォールバックメソッドが必要です。


0

アプリがベータ版として承認され、公開されていない場合、アプリレビューリンクは利用できますが、レビューを残すために公開されません。

  1. にログイン iTunes Connect
  2. クリック My Apps
  3. App Iconあなたの興味のあるものをクリックしてください
  4. App Storeページを確認してください
  5. App Informationセクションに移動します(自動的に表示されます)
  6. そのページの下部にあるという青いリンクがありますView on App Store。それをクリックすると、空白のページが開きます。ページ上部のURLバーにあるものをコピーします。これがアプリレビューリンクです。アプリが公開されると公開されます。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.