레이블이 google services인 게시물을 표시합니다. 모든 게시물 표시
레이블이 google services인 게시물을 표시합니다. 모든 게시물 표시

2016년 7월 29일 금요일

더 많은 사용자를 위한 개발 - 구글 개발자 블로그

원글: http://android-developers.blogspot.kr/2016/06/building-for-billions.html

구글 개발자 코리아 블로그 글
http://googledevkr.blogspot.kr/2016/07/building-for-billions.html

좋은 이야기인 것 같습니다.
사용자들이 좋은 환경에서 잘 사용해야 좋은 앱이지요!

블로그 글의 내용은

- 느린 인터넷 및 오프라인 상태에서 올바르게 동작하기
- 정확히 상황에 들어맞는 올바른 콘텐츠 제공
모바일 하드웨어를 위한 최적화
- 배터리 소모 절감
- 데이터 사용량 절약

해당 내용은
구글 빌리온즈 (https://developers.google.com/billions/) 에서 볼 수 있습니다.

웹에 대한 내용은
https://developers.google.com/web/billions/

안드로이드에 대한 내용은
https://developer.android.com/distribute/essentials/quality/billions.html

2016년 7월 22일 금요일

Chrome 52 Released

Chrome 52: Contain Property, the PerformanceObserver API & Service Worker Stream





Chrome 52 released.

Release note

* CSS Contain Property

- Post: http://goo.gl/9hX2A2

- Spec: http://goo.gl/AmLB8z

* Performance Observer API

- Post: http://goo.gl/gteR4E

- Demo: http://goo.gl/wYwdY9

- Spec: http://goo.gl/TA9RtM

* Service Worker Streamed Responses

- Post: http://goo.gl/hrRUd0

- Spec: http://goo.gl/DgrjhH

2016년 6월 9일 목요일

Google Web PageSpeed tool

About Page: https://developers.google.com/speed/pagespeed/

Do Page: https://developers.google.com/speed/pagespeed/insights/


Enter a web page URL
In my case, i enter my blog.


Pagespeed insight shows result like this.

I will fix some issues for my blog. :)

good service of webpage

2016년 6월 2일 목요일

Google data visualize tool - Google data studio


Homepage: http://www.google.com/analytics/data-studio/

I click the "TRY IT FOR FREE".


if you click first menu, "Welcome Data Studio"


more examples in this page.

[Sample] YouTube Channel Report


Google Data Studio make data visual awesome!

2016년 3월 26일 토요일

Google Adsense error on blogger register

Google Adsense error on blogger register

애드센스 위젯을 블로그에 적용하는 중에 오류가 발생했습니다.
500 Internal Server Error { "code" : 500, "errors" : [ { "debugInfo" : "com.google.api.server.core.Fault: ImmutableErrorDefinition{base=null, category=BACKEND_ERROR, cause=null, debugInfo=null, domain=global, extendedHelp=null, httpHeaders={}, httpStatus=internalServerError, internalReason=Reason{arguments={}, cause=null, code=null, createdByBackend=true, debugMessage=com.google.ads.syn.inventory.client.InventoryClientException: RESPONSE_ERROR_CHECKSUM_MISMATCH: Checksums mismatch when updating.\nOriginal:\nweb_property_id: 66527820\nad_slot_id: 298285260\nad_slot_code: \"1608395696\"\ndescription: \"pineoc_main_Blog1_300x250_as\"\nlast_edit_timestamp: 1459001685069\ncreation_timestamp: 1451826186832\nvisual_settings {\n ad_format: \"300x250_as\"\n font_size: FONT_SIZE_ACCOUNT_DEFAULT\n width: 300\n height: 250\n color {\n color_type: AD_SLOT_COLOR_BG\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_TEXT\n color_value: \"222222\"\n }\n color {\n color_type: AD_SLOT_COLOR_LINK\n color_value: \"2288bb\"\n }\n color {\n color_type: AD_SLOT_COLOR_URL\n color_value: \"666666\"\n }\n color {\n color_type: AD_SLOT_COLOR_BORDER\n color_value: \"ffffff\"\n }\n corner_style: \"rc:0\"\n ad_slot_ad_type: AD_SLOT_AD_TYPE_TEXT\n ad_slot_ad_type: AD_SLOT_AD_TYPE_IMAGE\n}\nactive: false\nchecksum: 1525395321\nstatus: ACTIVE\ncreator_customer_id: 9079886\nformat_settings {\n ad_type: TEXT\n ad_type: IMAGE\n}\nmarkup_settings {\n format: \"300x250_as\"\n}\n\nUpdate:\nweb_property_id: 66527820\nad_slot_id: 298285260\nad_slot_code: \"1608395696\"\ndescription: \"pineoc_main_Blog1_300x250_as\"\nlast_edit_timestamp: 1458998439678\ncreation_timestamp: 1451826186832\nvisual_settings {\n ad_format: \"300x250_as\"\n font_size: FONT_SIZE_ACCOUNT_DEFAULT\n width: 300\n height: 250\n color {\n color_type: AD_SLOT_COLOR_BG\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_BORDER\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_TEXT\n color_value: \"222222\"\n }\n color {\n color_type: AD_SLOT_COLOR_URL\n color_value: \"666666\"\n }\n color {\n color_type: AD_SLOT_COLOR_LINK\n color_value: \"2288bb\"\n }\n corner_style: \"rc:0\"\n ad_slot_ad_type: AD_SLOT_AD_TYPE_TEXT\n ad_slot_ad_type: AD_SLOT_AD_TYPE_IMAGE\n}\nactive: false\nchecksum: 335201633\nstatus: ACTIVE\ncreator_customer_id: 9079886\nformat_settings {\n ad_type: TEXT\n ad_type: IMAGE\n}\nmarkup_settings {\n format: \"300x250_as\"\n}\n\n\tat com.google.ads.syn.inventory.client.InventoryClient.handleRpcException(InventoryClient.java:167)\n\tat com.google.ads.syn.inventory.client.InventoryClient.updateInventory(InventoryClient.java:108)\n\tat com.google.ads.syn.adsense.api.apiary.services.inventory.InventoryUpdater.submitUpdateRequest(InventoryUpdater.java:74)\n\tat com.google.ads.syn.adsense.api.apiary.services.inventory.InventoryUpdater.updateAdSlot(InventoryUpdater.java:34)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl.saveAndConvertAdSlot(AdUnitsServiceImpl.java:441)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl.access$900(AdUnitsServiceImpl.java:73)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$4.call(AdUnitsServiceImpl.java:298)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$4.call(AdUnitsServiceImpl.java:267)\n\tat com.google.ads.syn.adsense.api.apiary.services.pebl.RosyExecutor.handleRequest(RosyExecutor.java:324)\n\tat com.google.ads.syn.adsense.api.apiary.services.pebl.RosyExecutor.invoke(RosyExecutor.java:255)\n\tat com.google.ads.syn.adsense.api.apiary.services.pebl.RosyExecutor.invoke(RosyExecutor.java:134)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl.update(AdUnitsServiceImpl.java:262)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$$EnhancerByGuice$$2bb36a5f.CGLIB$update$1()\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$$EnhancerByGuice$$2bb36a5f$$FastClassByGuice$$50d1b423.invoke()\n\tat net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)\n\tat com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)\n\tat com.google.ads.syn.adsense.api.apiary.AdSenseApiStatsInterceptor.invoke(AdSenseApiStatsInterceptor.java:94)\n\tat com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)\n\tat com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$$EnhancerByGuice$$2bb36a5f.update()\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnits$AdUnitsService$ServiceParameters$12.handleBlockingRequest(AdUnits.java:18757)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnits$AdUnitsService$ServiceParameters$12.handleBlockingRequest(AdUnits.java:18755)\n\tat com.google.net.rpc3.impl.server.RpcBlockingApplicationHandler.handleRequest(RpcBlockingApplicationHandler.java:28)\n\tat com.google.net.rpc3.impl.server.RpcServerInternalContext.runRpcInApplication(RpcServerInternalContext.java:558)\n\tat com.google.net.rpc3.impl.server.RpcServerChannel$1$1.runInContext(RpcServerChannel.java:875)\n\tat com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:446)\n\tat com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256)\n\tat com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:310)\n\tat com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:302)\n\tat com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:443)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: com.google.net.rpc3.client.RpcClientException: APPLICATION_ERROR;ads.adsense.inventory/InventoryService.InventoryUpdate;Checksums mismatch when updating.\nOriginal:\nweb_property_id: 66527820\nad_slot_id: 298285260\nad_slot_code: \"1608395696\"\ndescription: \"pineoc_main_Blog1_300x250_as\"\nlast_edit_timestamp: 1459001685069\ncreation_timestamp: 1451826186832\nvisual_settings {\n ad_format: \"300x250_as\"\n font_size: FONT_SIZE_ACCOUNT_DEFAULT\n width: 300\n height: 250\n color {\n color_type: AD_SLOT_COLOR_BG\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_TEXT\n color_value: \"222222\"\n }\n color {\n color_type: AD_SLOT_COLOR_LINK\n color_value: \"2288bb\"\n }\n color {\n color_type: AD_SLOT_COLOR_URL\n color_value: \"666666\"\n }\n color {\n color_type: AD_SLOT_COLOR_BORDER\n color_value: \"ffffff\"\n }\n corner_style: \"rc:0\"\n ad_slot_ad_type: AD_SLOT_AD_TYPE_TEXT\n ad_slot_ad_type: AD_SLOT_AD_TYPE_IMAGE\n}\nactive: false\nchecksum: 1525395321\nstatus: ACTIVE\ncreator_customer_id: 9079886\nformat_settings {\n ad_type: TEXT\n ad_type: IMAGE\n}\nmarkup_settings {\n format: \"300x250_as\"\n}\n\nUpdate:\nweb_property_id: 66527820\nad_slot_id: 298285260\nad_slot_code: \"1608395696\"\ndescription: \"pineoc_main_Blog1_300x250_as\"\nlast_edit_timestamp: 1458998439678\ncreation_timestamp: 1451826186832\nvisual_settings {\n ad_format: \"300x250_as\"\n font_size: FONT_SIZE_ACCOUNT_DEFAULT\n width: 300\n height: 250\n color {\n color_type: AD_SLOT_COLOR_BG\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_BORDER\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_TEXT\n color_value: \"222222\"\n }\n color {\n color_type: AD_SLOT_COLOR_URL\n color_value: \"666666\"\n }\n color {\n color_type: AD_SLOT_COLOR_LINK\n color_value: \"2288bb\"\n }\n corner_style: \"rc:0\"\n ad_slot_ad_type: AD_SLOT_AD_TYPE_TEXT\n ad_slot_ad_type: AD_SLOT_AD_TYPE_IMAGE\n}\nactive: false\nchecksum: 335201633\nstatus: ACTIVE\ncreator_customer_id: 9079886\nformat_settings {\n ad_type: TEXT\n ad_type: IMAGE\n}\nmarkup_settings {\n format: \"300x250_as\"\n}\n;AppErrorCode=9;StartTimeMs=1459001686384;tcp;Deadline(sec)=60.0;ResFormat=UNCOMPRESSED;Originator=blogger;Tag=\u0002blogger_job\u0003prod.blogger-dashboard\u0002blogger_servlet_path\u0003/adsense-finalize.g\u0002blogger_servlet_name\u0003com.google.blogger.b2.ui.common.servletpage.Servle:SchedulingHash=523420b7d3039f0f;ServerTimeSec=0.021169408;LogBytes=256;Non-FailFast;No-EndUserCredsRequested;EffSecLevel=none;ReqFormat=UNCOMPRESSED;ReqID=bca27971dd9138f4;GlobalID=9ec270eb6edd867d;Server=10.196.135.33:4405\n\tat com.google.net.rpc3.client.RTRUNCATED (original length 8507), errorProtoCode=null, errorProtoDomain=null, filteredMessage=null, location=null, message=null, unnamedArguments=[]}, location=null, message=null, reason=null, rpcCode=500}\n\tat com.google.api.server.core.ErrorCollector.toFault(ErrorCollector.java:43)\n\tat com.google.api.server.rest.adapter.rosy.RosyErrorConverter.toFault(RosyErrorConverter.java:62)\n\tat com.google.api.server.rest.adapter.rosy.RosyHandler$2.call(RosyHandler.java:256)\n\tat com.google.api.server.rest.adapter.rosy.RosyHandler$2.call(RosyHandler.java:237)\n\tat com.google.api.server.core.util.CallableFuture.run(CallableFuture.java:62)\n\tat com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:441)\n\tat com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:840)\n\tat com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:770)\n\tat com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:626)\n\tat com.google.api.server.core.util.CallableFuture.run(CallableFuture.java:62)\n\tat com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:441)\n\tat com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:840)\n\tat com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:770)\n\tat com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:626)\n\tat com.google.api.server.core.util.CallableFuture.run(CallableFuture.java:62)\n\tat com.google.api.server.thread.ThreadTrackers$ThreadTrackingRunnable.run(ThreadTrackers.java:126)\n\tat com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:439)\n\tat com.google.api.server.server.CommonModule$ContextCarryingExecutorService$1.runInContext(CommonModule.java:805)\n\tat com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:446)\n\tat com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256)\n\tat com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:310)\n\tat com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:302)\n\tat com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:443)\n\tat com.google.gse.internal.DispatchQueueImpl$WorkerThread.run(DispatchQueueImpl.java:387)\n" } ], "message" : null } 
수익 페이지로 이동해서 애드센스 설정을 확인해 보세요.

This error occurred from earnings.
Register Adsense, i want fix this problem. but i can't.
please help google!

2016년 3월 21일 월요일

Device Art Generator - Google developers


http://developer.android.com/intl/ko/distribute/tools/promote/device-art.html

I find the solutions for making publishing app image.
use app screenshot, you can make app screenshot image with devices.
I can use to google play store.

you can drag to device image.
and change image to device image

source image



result image


It is good for me to publish app!


2016년 1월 25일 월요일

2016년 1월 20일 수요일

구글 플라이트(Google Flights)

https://www.google.com/flights/


구글에서 항공기 검색이 가능합니다!

메인 페이지 입니다



밑으로 조금내려보면 밑에 유럽, 그리스 등등이 있네요.
유럽을 눌러볼까요?





위와 같이 유럽을 눌렀는데요.
가격이 왕복인데도 런던이 600불, 파리가 567불 가격이 굉장히 낮은것을 알 수 있습니다.

런던을 눌러보겠습니다.



동방항공, 영국항공, 에어차이나 등의 항공편을 볼 수 있습니다.
옆에 추가적으로 호텔도 가격도 볼 수 있네요.

그외에 날짜에 따라 가격을 비교해볼수 있습니다.


위의 '3일 전후 기간 내에 최저 요금이 있습니다' 라는 팁도 볼 수 있구요.
유동적인 날짜보기를 누르면


유동적인 날짜로 봤을때 5월 11일에 출발하는 것이 제일 싸군요.
가격그래프도 한번 볼까요?


가격의 흐름도 볼 수 있었습니다.

구글 플라이트 괜찮은거 같습니다.
다음에 여행갈 때 사용해봐야겠어요 ㅎㅎ


JIRA Plugin - ScriptRunner 소개 #2

관련 글 소개 #1:  https://pineoc.blogspot.com/2019/03/scriptrunner-1.html ScriptRunner 소개 #2 지난 글에서는 Behaviours를 보았고 다음 내용인 콘솔, 리스너 등을 ...