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

Pastelaのアプリ内課金開発の裏側 / pixiv-app-night-202502-pa...

Atsuya Sato
February 27, 2025

Pastelaのアプリ内課金開発の裏側 / pixiv-app-night-202502-pastela-iap

2025/02/27(木) pixiv App Nightで発表した「Pastelaのアプリ内課金開発の裏側」の資料です

Atsuya Sato

February 27, 2025
Tweet

More Decks by Atsuya Sato

Other Decks in Technology

Transcript

  1. 2024೥12݄ʹPastelaʹΞϓϦ಺՝ۚػೳΛϦϦʔε͠·ͨ͠ʂ • Pastela: 2024೥4݄17೔ʹϦϦʔε • ϦϦʔε౰ॳ͔ΒWebαΠτ্ͰߪೖͰ͖Δ༗ྉͷαϒεΫϦϓγϣϯϓ ϥϯ(Pastela Plus) ͕ଘࡏͨ͠ •

    Pastela PlusΛΞϓϦ͔Β΋ߪೖͰ͖ΔΑ͏ʹ͍ͨ͠ʂ • ͓͜ͱΘΓ: ຊൃද಺ͷʮΞϓϦ಺՝ۚʯ͸ʮࣗಈߋ৽αϒεΫϦϓγϣϯʯ ͷΈΛࢦͯ͠·͢🙏 ଞͷछผͷΞϓϦ಺՝ۚ͸ొ৔͠ͳ͍Ͱ͢ɻ
  2. ϑΟδϏϦςΟௐࠪ - ΞϓϦ಺՝ۚͷSaaS • ΞϓϦ಺՝ۚΛఏڙ͢ΔͨΊͷSaaS͕͍͔ͭ͘ଘࡏ͢Δ • ݕ౼ͨ࣌͠ʹ֬ೝͨ͠఺ • ར༻ྉۚ΍ऩӹʹର͢Δख਺ྉʹ͍ͭͯ •

    SaaSར༻ʹΑͬͯͲͷ͘Β͍޻਺࡟ݮ͕ݟࠐΊΔ͔ • SaaSͷఏڙػೳ (PaywallͷΧελϚΠζ΍ΞφϦςΟΫεͳͲ) • … etc
  3. ϑΟδϏϦςΟௐࠪ - ࣗલ࣮૷ • όοΫΤϯυଆ • ΞΧ΢ϯτ͕࣋ͭ༗ྉϓϥϯঢ়ଶͷߋ৽ • App Store

    Server Noti fi cations V2ͷݕূ • ߪೖ΍ࣗಈߋ৽ɺϓϥϯมߋɺΩϟϯηϧͳͲͷΠϕϯτʹԠͨ͡ TransactionͷϖΠϩʔυௐࠪ
  4. PastelaͰ͸ࣗલ࣮૷Λબ୒ • StoreKit 2 × App Store Server Noti fi

    cations V2Λ༻͍ͯࣗલ࣮૷͢Δ͜ͱʹ • چStoreKitͱൺ΂ͯෳࡶͳߪೖॲཧϑϩʔ͕؆ུԽ͞Ε͍ͯͨΓɺαϒε ΫϦϓγϣϯΠϕϯτʹରͯ͠1:1ରԠ͢ΔΑ͏ͳ௨஌͕ૹΒΕΔΑ͏ʹ • ҎલΑΓ΋՝࣮ۚ૷͕͠΍͘͢ͳ͍ͬͯΔ • PastelaଆͷΞΧ΢ϯτͱɺApple IDଆͷ՝ۚ৘ใͷඥ෇͚ϩδοΫ΍ɺ PastelaଆͷΞΧ΢ϯτʹඥͮ͘ϓϥϯ؅ཧ͕େมͳ෦෼ • ͜Ε͸SaaS࢖ͬͯ΋ͦ͜·Ͱ޻਺࡟ݮͰ͖ͳ͍ݟࠐΈͩͬͨ
  5. αʔϏεΞΧ΢ϯτͱΞϓϦ಺՝ۚͷඥ෇͚ͷઃܭ (جຊܗ) iPad Air Free Mockups | BRIX Templates (Licensed

    under CC BY 4.0) ελϯμʔυϓϥϯߪೖ Apple Account 1 PastelaΞΧ΢ϯτA com.example.pastela.standard com.example.pastela.standard 🔗
  6. αʔϏεΞΧ΢ϯτͱΞϓϦ಺՝ۚͷඥ෇͚ͷઃܭ (جຊܗ) iPad Air Free Mockups | BRIX Templates (Licensed

    under CC BY 4.0) ܖ໿ͷඥ෇͚ com.example.pastela.standard 🔗 Apple Account 1 PastelaΞΧ΢ϯτA (Apple Account 1Ͱܖ໿) 🔗
  7. αʔϏεΞΧ΢ϯτͱΞϓϦ಺՝ۚͷඥ෇͚ͷઃܭ • جຊܗ͸γϯϓϧ • ͔͠͠ݱ࣮ʹ͸΋͏গ͠৭ʑͳέʔεΛߟ͑Δඞཁ͕͋Δ • Apple Account (Apple ID)

    Λ੾Γସ͑ͨ৔߹ • ϓϥϯܖ໿ঢ়ଶΛ͍࣋ͬͯΔαʔϏεΞΧ΢ϯτʹϩάΠϯͨ͠৔ ߹ • αʔϏεΞΧ΢ϯτ͕ϩάΞ΢τͨ͠৔߹
  8. αʔϏεΞΧ΢ϯτͱΞϓϦ಺՝ۚͷඥ෇͚ͷઃܭ (έʔε঺հ) 1: Apple Accountʹ՝ۚܖ໿͕͋Δ͕αʔϏεΞΧ΢ϯτ͕ϩάΞ΢τঢ়ଶ iPad Air Free Mockups |

    BRIX Templates (Licensed under CC BY 4.0) com.example.pastela.standard Apple Account 1 ະϩάΠϯঢ়ଶ 🔗 ະϩάΠϯͷͨΊ ඥ෇͚͸ແ͠ ×
  9. αʔϏεΞΧ΢ϯτͱΞϓϦ಺՝ۚͷඥ෇͚ͷઃܭ (έʔε঺հ) 2: Apple Accountʹ՝ۚܖ໿͕ແ͍͕αʔϏεΞΧ΢ϯτ͸՝ۚϓϥϯ͕ඥ͍͍ͮͯΔ iPad Air Free Mockups |

    BRIX Templates (Licensed under CC BY 4.0) Apple Account 2 🔗 PastelaΞΧ΢ϯτA (Apple Account 1Ͱܖ໿) Apple Account 1 com.example.pastela.standard 🔗 ܖ໿͕ແ͍ͷͰ ඥ෇͚͸ແ͠ ×
  10. αʔϏεΞΧ΢ϯτͱΞϓϦ಺՝ۚͷඥ෇͚ͷઃܭ (έʔε঺հ) 3: Apple AccountͱαʔϏεΞΧ΢ϯτͰผʑͷܖ໿͕ඥ͍͍ͮͯΔ iPad Air Free Mockups |

    BRIX Templates (Licensed under CC BY 4.0) Apple Account 2 🔗 PastelaΞΧ΢ϯτA (Apple Account 1Ͱܖ໿) Apple Account 1 com.example.pastela.standard com.example.pastela.light 🔗 🔗 ܖ໿͸͋Δ͕ طʹΞΧ΢ϯτʹ ผͷܖ໿͕ඥ͍͍ͮͯΔ ?
  11. αʔϏεΞΧ΢ϯτͱΞϓϦ಺՝ۚͷඥ෇͚ͷઃܭ (έʔε঺հ) 4: Apple Accountͷܖ໿͕ผͷαʔϏεΞΧ΢ϯτʹඥ͍͍ͮͯΔ iPad Air Free Mockups |

    BRIX Templates (Licensed under CC BY 4.0) PastelaΞΧ΢ϯτB ܖ໿͸͋Δ͕ ผͷΞΧ΢ϯτ ʹܖ໿͕ඥ͍͍ͮͯΔ ? com.example.pastela.standard Apple Account 1 🔗 🔗 PastelaΞΧ΢ϯτA (Apple Account 1Ͱܖ໿)
  12. App Store Server Noti fi cations V2Λ࢖͏ • αʔόʔ௨஌Λ༻͍ͯΞϓϦ಺՝ۚͷΠϕϯτൃੜΛݕ஌Ͱ͖Δ •

    https://developer.apple.com/documentation/ appstoreservernoti fi cations/noti fi cationtype#Handle-use-cases-for-in- app-purchase-life-cycle-events • noti fi cationType ͱ subtypeͷ૊Έ߹ΘͤͰΠϕϯτͷৄࡉ͕෼͔Δ
  13. ϦϦʔεલʹ΍ͬͨ͜ͱ • ΞϓϦ಺՝ۚͷޮՌܭଌͱूܭ • ϩάͷઃܭͱΞϓϦଆϩάͷ࢓ࠐΈ (՝ۚಋઢͷޮՌଌఆͳͲͰར༻) • Firebase AnalyticsΛ࢖ͬͯΕ͹ Analytics.logTransaction

    Λઃఆͯ͠ ͓͘ͷ΋༗ޮ • https:// fi rebase.google.com/docs/analytics/measure-in-app- purchases?hl=ja • όοΫΤϯυଆͰϨγʔτ৘ใΛอଘ͓ͯ͘͠ (՝ۚूܭͰར༻)