Upgrade to Pro — share decks privately, control downloads, hide ads and more …

リーダーアプリに外部課金リンクを設置する

Go Takagi
December 22, 2022

 リーダーアプリに外部課金リンクを設置する

potatotips #80

Go Takagi

December 22, 2022
Tweet

More Decks by Go Takagi

Other Decks in Technology

Transcript

  1. リーダーアプリに


    外部課⾦リンクを設置する
    Go Takagi
    20
    22
    /
    12
    /
    22
    potatotips #
    80
    iOS / Android 開発 Tips 共有会

    View Slide

  2. Me ( Go Takagi )
    ‣ID ( GitHub / Twitter )


    • shimastripe / shimastriper


    ‣Work


    • 株式会社 ⽇本経済新聞社


    ‣ iOS 紙⾯ビューアーアプリ の開発を担当


    ‣Like


    • Swift / ⾃動化 / 柴⽝
    2
    電⼦版広報⽝デンシバ

    View Slide

  3. 登壇履歴、こちらもお願いします
    3

    View Slide

  4. リーダーアプリ?

    View Slide

  5. 5
    https://developer.apple.com/jp/support/reader-apps


    https://www.nikkei.com/article/DGXZQOGN
    310
    GQ
    0
    R
    3
    0
    C
    22
    A
    3 0
    0 00 0
    0

    View Slide

  6. リーダーアプリ: 動画や電⼦書籍などのアプリ
    ‣外部サイトへのリンクを設置できるようになった


    • アカウントの開設


    • コンテンツの購⼊


    • サブスクリプション


    ‣⾃社サイトでの開設‧購⼊‧契約はブラウザ経由のみ


    • アプリで完結させる場合、通常 In App Purchaseを要求される
    6

    View Slide

  7. これまでの紙⾯ビューアー: InAppPurchase 無し
    ‣事前に⽇経IDの有料会員になっていないと使えないアプリ
    7

    View Slide

  8. アプリから外部課⾦動線に⾶ばせるように対応!
    8
    シールド表⽰

    View Slide

  9. ちなみにシールド以外にも様々な制約が......
    ‣In App Purchase と共存不可


    ‣外部リンク (URL) はアプリ内で1つのみ


    • ボタンにわかりやすく明⽰する


    ‣リダイレクト‧クエリパラメータ使⽤禁⽌


    • トラッキング‧コンバージョンのテストはできない


    ‣サービス内容(商品)や価格の表⽰禁⽌


    • 外部サイトへの遷移明⽰しかできない


    ‣ルールが更新された場合30⽇以内にアプリ側は対応必須


    ‣etc...
    9

    View Slide

  10. 仕様はアップデートされるので


    最新を必ずチェックしてください

    View Slide

  11. ⼀連の流れを紹介!

    View Slide

  12. 外部リンクアカウントエンタイトルメントの申請
    ‣フォームから申請


    • この URL は Account Holder からしか開けないのに注意


    ‣チェック項⽬に回答 (2022年7⽉27⽇時点の例を残しておきます)


    • Is the primary functionality of your app to o
    ff
    er one or more of the following: magazines, newspapers, books, audio, music, or video?


    • Does your app allow people to sign in to an account?


    • Can people access content or services purchased outside of your app (e.g., on your website) by signing in to your app?


    • Are your appʼs content and services digital only?


    • Do the content and services accessed in your app facilitate real-time, person-to- person services (e.g., providing tutoring services, medical consultations,
    real estate tours, or
    fi
    tness training)?


    • Does your app o
    ff
    er in-app purchases?


    • Have you submitted your app for review?


    ‣App Info を記載


    • Bundle Id と AppStore or Test
    fl
    ight URL


    • これは未公開アプリの限定公開 Test
    fl
    ight URL で申請しても有効
    1
    2
    https://developer.apple.com/contact/request/external-link-account

    View Slide

  13. エンタイトルメントの有効化
    ‣Additional Capabilities の項⽬が申請が通ると出現


    • ここも Account Holder のみ確認できる
    1
    3

    View Slide

  14. App 側で有効化 (entitlements / Info.plist)
    1
    4
    https://developer.apple.com/jp/support/reader-apps
    entitlements
    Info.plist
    ‣ボタンの設置


    • ⽀払い権限がある場合のみ有効化

    View Slide

  15. 仕様通りのシールドを作る 😇 (deprecated)
    ‣Font / Padding / Size / SystemColor が全て指定


    • iPhone / iPad の仕様差もある...... (SplitView は指定されてない)
    1
    5
    https://developer.apple.com/support/downloads/Reader_App_Modal_Speci
    fi
    cations.zip

    View Slide

  16. 完成!審査に提出!!
    ‣が、20⽇ちょっとレビューが進まない......


    ‣そのままiOS
    16
    がリリースしてしまう


    • すると......?
    1
    6

    View Slide

  17. iOS
    1
    6
    から API が追加 + 変更
    ‣ExternalLink API が登場


    • これまでは StoreKit の既存の API で実現していた


    • iOS
    1
    6
    からはこれを使ってね ^ ^ メールが来る


    • https://developer.apple.com/documentation/storekit/
    external_link_account


    • シールドも SDK が⽤意してくれるように!!


    • ただ async function なので Concurrency に対応する必要あり
    1
    7

    View Slide

  18. 追加対応して再提出
    ‣通った!!


    • アップデートを通して、現状リジェクトされてない


    • デメリットとなるような体験は踏んでいない


    • 審査ペースも1⽇程度
    1
    8

    View Slide

  19. 五⽉⾬ Tips
    ‣外部リンクの更新はできる?


    • 1バージョン毎に変えれる


    • 動的な変更はできない、リダイレクトも不可


    • ボタンに表⽰するため、シンプルなURLを⽤意したほうが美しい


    ‣シールドのイベント計測は...?


    • iOS
    1
    6
    未満は⾃前実装だからできるけど、16 からはSDKが⽤意するから不可


    ‣Entitlementsが増えるため、Devに影響


    • Test
    fl
    ight に別 BundleId であげるユースケースがある場合

    そちらにも Entitlements が必要になる
    1
    9

    View Slide

  20. まとめ
    ‣リーダーアプリ外部サイトリンクがつけられるようになった


    • iOS
    1
    6
    からはとても楽


    • ⼀度対応してから、後に In App Purchase に変えることもできそう


    ‣事前予想以上の購読者を獲得。今後も継続して設置予定


    • シールド経由 + トラッキングできないため、劇的な期待はできない


    • 貢献している数字は取れている、チューニングは難しい
    2
    0

    View Slide