Slide 1

Slide 1 text

ϏϡʔΠϯϓϨογϣϯͷ ܭଌํ๏ 2019.09.26 #ca_swift @to4iki

Slide 2

Slide 2 text

About Me • Takezawa Toshiki • @to4iki • ि1α΢φʔ!

Slide 3

Slide 3 text

1. ϏϡʔΠϯϓϨογϣϯ 2. ܭଌσʔλͷར༻༻్ 3. ϩάܭଌͷ࣮૷ 4. ·ͱΊ

Slide 4

Slide 4 text

ϏϡʔΠϯϓϨογϣϯ

Slide 5

Slide 5 text

ϏϡʔΠϯϓϨογϣϯ • ΠϯϓϨογϣϯ(Impression) ཁૉͷදࣔճ਺ ex. ޿ࠂը૾ͷϦΫΤετ਺ • ϏϡʔΠϯϓϨογϣϯ(ViewImpression) ViewableImpressionɺActiveViewɺInView ͱಉٛ Ϣʔβʔ͕໨ʹ͢ΔҐஔʹදࣔ͞Ε͍ͯΔཁૉͷΠϯϓϨογϣϯ => Ϣʔβʔ͕ཁૉΛݟ͍ͯΔ͔Λ֬ೝ͢ΔͨΊͷࢦඪ ࢀߟ: https://dmlab.jp/words.html

Slide 6

Slide 6 text

ϏϡʔΠϯϓϨογϣϯ • ੒Ռఆٛ “ཁૉͷ50ˋ͕ɺεΫϦʔϯʹ1ඵҎ্දࣔ͞Ε͍ͯΔ” http://measurementnow.net/wp-content/uploads/2015/01/ FINAL-062816-Mobile-Viewable-Guidelines-Final-1.pdf • ex. AppStoreΞϓϦ ྘ͷ࿮ઢͷηϧ͕ϏϡʔΠϯϓϨογϣϯର৅ͱͳΔ

Slide 7

Slide 7 text

AbemaTVͰͷϏϡʔΠϯϓϨογϣϯ • ର৅͸ը໘Ϟδϡʔϧ಺ͷ಺෦ཁૉ Ϟδϡʔϧ͸֓೦্ͷάϧʔϐϯά Ϟδϡʔϧ1 : ηΫγϣϯN ͷؔ܎ • ݪଇɺը໘͕࠶ੜ੒͞Εͳ͍ݶΓཁૉʹରͯ͠ ͷϩά͸1౓ͷΈૹ৴

Slide 8

Slide 8 text

ܭଌσʔλͷར༻༻్

Slide 9

Slide 9 text

ܭଌσʔλͷར༻༻్ • CTR(Click Through Rate)ΛධՁ͢Δ ΫϦοΫUU / ϏϡʔΠϯϓϨογϣϯUU ※ UU = UniqueUser਺ ΫϦοΫ͞Εׂͨ߹ • CTVR = CTR × CVR(Conversion Rate)ΛධՁ͢Δ => ϏϡʔΠϯϓϨογϣϯʹରͯ͠Ͳͷ͘Β͍ͷׂ߹Ͱ੒Ռ͕ൃੜ͔ͨ͠

Slide 10

Slide 10 text

ܭଌσʔλͷར༻༻్ ex. ը໘Լ෦ʹཁૉΛͨ͘͞Μฒ΂͕ͨ੒Ռʹ݁ͼͭ ͍͍ͯΔ͔ • ཁૉ͕ͦ΋ͦ΋ݟΒΕ͍ͯΔ͔Λܭଌ • શମͱͯ͠ͷ੒Ռ͸্͕͍ͬͯΔ͔ => ୯७ʹྔΛ૿΍ͤ͹༗ޮ ͔Ͳ͏͔Λ஌Δ͜ͱ͕ ग़དྷΔ

Slide 11

Slide 11 text

ϩάܭଌͷ࣮૷

Slide 12

Slide 12 text

https://github.com/to4iki/view-impression-sample ※ ϓϩμΫγϣϯͰ࢖༻͍ͯ͠ΔίʔυΛ؆қԽͨ͠΋ͷ

Slide 13

Slide 13 text

࿩͢͜ͱɾ࿩͞ͳ͍͜ͱ ࿩͢͜ͱ • ࣮૷ͷI/Fͷઆ໌ͱܭଌͷํ๏ ࿩͞ͳ͍͜ͱ • ಺෦࣮૷ͷ࿩ ཁૉ͕ը໘্ʹ50%Ҏ্දࣔ͞Ε͍ͯΔ൑ఆ ཁૉ͕ը໘্ʹ1ඵҎ্දࣔ͞Ε͍ͯΔɹɹ • ύϑΥʔϚϯεʹؔ͢Δࡉ͔ͳ࿩

Slide 14

Slide 14 text

• ImpressionWatcher ૹ৴ঢ়ଶͷ؅ཧɾཁૉ͕ݟ͑࢝Ίͯ ͔Β1ඵΛ௒͍͑ͯΔ͔൑ఆ • ImpressionWatcherConfiguration ઃఆ஋ • ImpressionIndexPathSearchable දࣔྖҬ͕50%Λ௒͍͑ͯΔཁૉͷ औಘ • CollectionViewForImpression / ModuleViewForImpression ܭଌର৅ͷൣғ ϏϡʔΠϯϓϨογϣϯͷܭଌج൫

Slide 15

Slide 15 text

ϏϡʔΠϯϓϨογϣϯͷܭଌج൫ ImpressionWatcher • ૹ৴ঢ়ଶͷ؅ཧɾૹ৴ର৅ͷ൑ఆ ܭଌΛ։࢝͢ΔλΠϛϯάΛड͚औΓɺ ϩάૹ৴ର৅ͷཁૉΛ௨஌͢Δ • ཁૉ୯Ґͷૹ৴ࡁΈঢ়ଶΛ؅ཧ • ViewController͕อ࣋͢Δ૝ఆ

Slide 16

Slide 16 text

ImpressionWatcher ૹ৴ঢ়ଶͷ؅ཧɾର৅൑ఆ

Slide 17

Slide 17 text

ImpressionWatcherConfiguration ઃఆ஋

Slide 18

Slide 18 text

CollectionViewForImpression / ModuleViewForImpression ܭଌର৅ͷൣғΛࣔ͢ϓϩτίϧ

Slide 19

Slide 19 text

ImpressionIndexPathSearchable ϑϨʔϜܭࢉʹΑΓදࣔྖҬ͕50%Λ௒͍͑ͯΔཁૉͷऔಘΛߦ͏

Slide 20

Slide 20 text

ݺͼग़͠ଆͷ࣮૷ 1. ϞδϡʔϧΛఆٛ͢Δ 2. ܭଌͷൣғͱͳΔϏϡʔΛࢦఆ͢Δ 3. ϩά؂ࢹͷ։࢝ͱऴྃΛߦ͏

Slide 21

Slide 21 text

1. ϞδϡʔϧΛఆٛ͢Δ

Slide 22

Slide 22 text

2. ܭଌͷൣғͱͳΔϏϡʔΛࢦఆ͢Δ εΫϩʔϧํ޲ͱϧʔτͷϏϡʔΛࢦఆ

Slide 23

Slide 23 text

2. ܭଌͷൣғͱͳΔϏϡʔΛࢦఆ͢Δ [Ϟδϡʔϧ:ൣғͷ૊Έ߹Θͤ] ͷࢦఆ ※ ύϑΥʔϚϯεͷ؍఺Ͱɺ୳ࡧର৅ΛߜΔͨΊʹϏϡʔͷࢦఆൣғΛڱΊΔ͜ͱ

Slide 24

Slide 24 text

2. ܭଌͷൣғͱͳΔϏϡʔΛࢦఆ͢Δ Ϟδϡʔϧ୯ҐͰݟ͍͑ͯΔϏϡʔ͕ܭଌର৅͔Λ൑ఆ͢Δ

Slide 25

Slide 25 text

3. ϩά؂ࢹͷ։࢝ͱऴྃΛߦ͏ • ൃՐىҼͱͳΔΠϕϯτΛInputͱ͢Δ viewDidAppear rotation collectionView.rx.contentOffset etc.. • ܭଌλΠϛϯάΛViewModelͷOutputͱ͢Δ `impressionTrigger: Observable` ※ ύϑΥʔϚϯε؍఺ͰtriggerΛগͳ͘͢Δ͜ͱ͕ॏཁ

Slide 26

Slide 26 text

3. ϩά؂ࢹͷ։࢝ ؍ଌ͍ͨ͠ཁૉΛอ࣋͢ΔViewController͔Β`setup`Λݺͼग़͢͜ͱͰܭଌΛ։࢝͢Δ

Slide 27

Slide 27 text

3. ϩά؂ࢹͷऴྃ ఀࢭλΠϛϯάͰ`dispose`Λݺͼग़͢͜ͱͰܭଌΛऴྃ͢Δ

Slide 28

Slide 28 text

಺෦࣮૷: ܭଌॲཧͷྲྀΕ

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

ςετ • ର৅ͷ୳ࡧʹؔͯ͠͸WatcherଆͰ୲อ • ViewModelͷOutput.impressionTrigger͕ςετର৅ - දࣔσʔλ͕ଘࡏ͠ͳ͍ͱ͖͸ൃՐ͠ͳ͍ - طʹϩάΛૹ৴ࡁΈͷ৔߹͸ൃՐ͠ͳ͍ • ೚ҙsendModuleIndexPathsHandlerΛྲྀ͠ܭଌσʔλ ੜ੒౳Λςετ͢Δ

Slide 31

Slide 31 text

·ͱΊ

Slide 32

Slide 32 text

·ͱΊ • ϏϡʔΠϯϓϨογϣϯ͸ɺϢʔβʔ͕ཁૉΛݟ͍ͯΔ͔Ͳ͏͔Λ֬ೝ͢Δ ͨΊͷࢦඪ • ImpressionWatcherΛར༻͢Δ͜ͱͰ֤ཁૉͷܭଌΛूத؅ཧͰ͖Δ ܭଌൣғΛࢦఆ͠ɺݺͼग़͚ͩ͢ͷ؆୯ͳ࢓૊Έ • ύϑΥʔϚϯεʹؔͯ͠ݺͼग़͠ଆ͕ߟྀ͢Δඞཁ͕͋Δ ର৅ͷϏϡʔൣғͷࢦఆΛڱΊΔɺܭଌ։࢝ͱͳΔtriggerͷස౓Λগͳ͘͢Δͷ͕ॏཁ

Slide 33

Slide 33 text

Thank you