안녕하세요.

요즘 핫한 P11을 구매하여 국가코드를 변경해보겠습니다.

 

보통은 직구해서 구매하시기때문에 'CN'(중국)으로 설정되어 있을겁니다.

 

P11에는 국가코드에 엄청난 제한이있는데요.

제한에 대해 이야기를 드리면, 흔히 말하는 정발 P11은 구글 플레이스토어에서 넷플릭스 설치가 가능합니다.

 

CN(중국)은 국가 LOCK이 걸려있기때문인데요.

해당 국가코드(Country Code)를 변경하는법을 가이드 해보겠습니다.

 

국가코드를 변경하면 LTE롬으로 변경하지 않고 글로벌롬으로 써도 절대 무방해집니다. (GPS이슈, 넷플릭스 등)

국가코드 변경 후 LTE롬이신분들은 글로벌롬 플래싱하시길 추천드립니다.

(아참, 국가코드는 한번 변경하면 새롭게 롬을 플래싱한다고 변경되지 않습니다.)

 

롬 플래싱 과정은 자료가 많기 때문에 따로 포스팅하지 않겠습니다.

 

국가코드 변경하기

 

먼저 현재 자신의 국가코드 상태를 확인할수있는 명령입니다.

 

모든명령은 '설정'에 들어가셔서 상단 검색바에 입력하시면 됩니다.

 

####5993#

 

입력하시면, 위 사진과 같은 화면과 현재 롬 상태 및 국가코드를 확인 할 수 있습니다.

 

이제 가장 중요한 국가코드 변경 명령어 입니다.

 

명령은 '설정'에 들어가셔서 상단 검색바에 입력하시면 됩니다.

 

####6030#

 

국가코드 변경 설정 창이 나타납니다.

'KR' 설정해주시면 됩니다.

(레노버 관계자가 아니며, 레노버 Country Code 설정관련 리서치중 알아냈습니다.)

(잡설로 아이디어 패드 S6000은 ####6020# 이더라고요.)

 

해당 설정을 마치시면 리부팅 되며, 새롭게 설정을 진행합니다.

(초기화 됩니다)

시작 화면에 기본값으로 한국어로 잡혀있습니다.

 

넷플릭스까지 설치가 자동적으로 되어있었고, 플레이스토어 접근이 가능했습니다.

 

+ 2021.09.11 추가사항 및 질문 정리

 

Q. 중국 내수롬에 국가코드 변경하여도 되나요?

A. 제가 시도해본것은 아니지만, 중국내수롬에는 국가코드 변경 명령이 먹히지 않는다고합니다. 내수롬은 중국롬 그자체로 봐주시면 될 것 같습니다.

 

Q. 국가를 변경하면 초기화 되나요?

A. 변경 시도 즉시 초기화가 진행됩니다. 위 포스팅 내용에도 적어뒀습니다.

 

Q. P11 PRO도 가능한가요?

A. 가능합니다. 위 명령과 동일하게 진행하시면 가능합니다.

 

Q. LTE롬에서도 변경되나요?

A. LTE롬, 글로벌롬 모두다 변경가능합니다. 중국 내수롬만 불가능합니다.

 

Q. 국가코드변경 관련 제일 베스트 설정을 알려주세요.

A. 글로벌롬 구매 -> 국가코드 변경 -> 사용 (혹은 미개봉(내수롬)으로 구매하여 글로벌롬으로 플래싱한후 국가코드 변경 후 사용하세요.)

 

Q. 타 국가로 변경하여도 되나요?

A. 시도해보진 않았습니다. 타 국가 변경도 무관 할 것으로 보입니다. 해외 포럼 정보에 따르면 레노버 타 패드들도 타국가로 변경하여 많이 사용하는것 같았습니다.

 

Q. 펌웨어 OTA(자동 업데이트)가 가능한가요?

A. 펌웨어 자동업데이트가 가능하며, 기존 8월 업데이트가 안나오시던분들도 국가코드 변경 후 올라왔다고 합니다.

 

+ 2021.10.15 추가사항 및 질문 정리

 

Q. 안드로이드11에서 변경이 가능한가요?

A. 네, 가능합니다.

 

Q. 국가코드 상태 확인 명령시 'NO SET'이 나타납니다.

A. 모든 공통 적용사항은 아니지만, P11&P11 PRO모델 등 간혹 'NO SET'으로 설정되어있는 기기도 있다고 합니다. 해당 기기는 '####6020#'을 시도해주세요.

 

출처를 꼭 공유해주세요!

사진 무단 도용은 금지합니다!

 

도움이 되셨다면 아래 '공감', '하트' 버튼을 눌러주세요!

 

감사합니다.


반응형

 

자바스크립트 ES6의 Class(클래스) 입니다.

JS에서 클래스라니.. 신기하네요.

 

클래스에 대해 알아보겠습니다.

 

Class

 

먼저 자바스크립트의 클래스는 Object가 아니고, Template입니다.

(Object를 위한 Template입니다.)

 

클래스라 함은, 자바에서는 객체단위로 코드 재사용성이 매우좋아지는 장점이있습니다.

그렇다면, 자바스크립트에서의 클래스 선언은 어떻게 이루어질까요?

 

 

1
2
3
class ClassName {
  constructor() { ... }
}
cs

 

 

위와 같은 문법으로 클래스를 생성 할 수 있습니다.

 

그럼 예를들어보겠습니다.

 

1
2
3
4
5
6
class Car {
  constructor(name, year) {
    this.name = name;
    this.year = year;
  }
}
cs

 

자동차라는 클래스에 2가지의 속성을 주었습니다.

실제로 해당 클래스를 사용해보겠습니다.

 

 

1
2
let myCar1 = new Car("Ford"2014);
let myCar2 = new Car("Audi"2019);
cs

 

변수를 선언하고 클래스 객체를 선언

 

1
2
3
4
5
6
console.log(myCar1.name);
console.log(myCar1.year);
console.log(myCar2.name);
console.log(myCar2.year);
console.log(myCar1);
console.log(myCar2);
cs

 

예시 결과

객체를 로그로 찍어보았을때는 Object타입으로 바로 출력되는것을 확인할수있습니다.

 

간단한 게 ES6의 Class에 대해 알아보았습니다.

감사합니다.

 

반응형

 

자바스크립트 ES6의 For/Of에 대해 알아보겠습니다.

 

기본적으로 자바스크립트에서 for문, for/in문을 사용하였는데요.

ES6에서 새롭게 추가된 For/Of입니다.

 

ES6 For/Of

 

기본정의는 반복 가능한 객체를 반복하는 것의 For/Of의 목적입니다.

 

1
2
3
for (variable of iterable) {
  // code block to be executed
}
cs

 

variable 즉 변수, const, let, var를 선언할 수 있습니다.

아래에 샘플 코드를 몇 가지를 작성해보겠습니다.

 

For/Of 예시1

1
2
3
4
5
6
let cars = ["BMW""Volvo""Mini"];
let text = "";
 
for (let x of cars) {
  text += x + "<br>";
}
cs

 

For/Of의 1번 예시 결과

 

For/Of 예시2

1
2
3
4
5
6
let language = "JavaScript";
let text = "";
 
for (let x of language) {
  text += x + "<br>";
}
cs

 

For/Of의 2번 예시 결과

 

그렇다면, 기존의 For/In과 어떠한 차이가 있을까요?

For/In은 객체 순환, For/Of은 배열 순환의 특징을 가지고 있습니다.

 

샘플 코드로 예를 들어보겠습니다.

 

For/Of과 For/In의 차이 예시1

1
2
3
4
5
6
let cars = ["BMW""Volvo""Mini"];
let text = "";
 
for (let x in cars) {
  text += x + "<br>";
}
cs

 

For/In 1번 예시 결과

 

For/Of의 동일한 예시에 For/Of For/In으로 변경 후 실행한 결과입니다.

결괏값을 배열의 번호를 가져와 출력하는 것을 볼 수가 있습니다.

(객체의 순환이기 때문에, 배열의 순서를 출력하게 되었습니다.)

 

간단한 게 ES6의 For/Of에 대해 알아보았습니다.

감사합니다.

 

반응형

 

자바스크립트 ES6의 let, const에 대해 알아보도록 하겠습니다.

 

'let', 'const' keyword

JS ES5 이전에는 변수를 선언할 때 'var'로 통일하였습니다.

문제점도 많았죠.

 

1
2
var abc = "1234";
var abc = "12345"// O 가능
cs

 

var로 변수를 재선언시에는 해당 코드는 문제없이 허용되었습니다.

 

1
2
test = 1
var test = "1234" // O 가능
cs

 

또한, 해당 문법 또한 호이스팅(Hoisting)으로 허용되었습니다.

(함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 범위 최상단으로 끌어올리는 것)

 

(어쩌면, 문제점보단 이점으로 보았을지도 모르지만요.)

 

ES6의 let과 const는 달라졌습니다.

 

1
2
3
4
5
let a = 10;
let a = 20// X 불가능 (Identifier 'a' has already been declared)
 
let b = 10;
= 20// O 가능
cs

 

let, cosnt는 block scope로 범위 내에서 선언이 가능하며, 변수의 재선 언도 불가능합니다.

 

1
2
3
4
5
const x = 2;
const x = 3// X 불가능 (Identifier 'x' has already been declared)
 
const y = 1// const는 상수
= 2// X 불가능 (Assignment to constant variable.)
cs

 

그렇다면, let과 const의 차이점이 무엇일까요?

바로 const는 상수입니다. 한번 선언이 된 값에 대해서 변경을 할 수 없습니다.

그 외에 let과 유사합니다.

(let, const 변수 선언 시 호이스팅이 발생하지 않습니다.)

 

간단하게 ES6의 let, const에 대해 알아보았습니다.

감사합니다.

 

반응형


안녕하세요.

안드로이드 포스팅을 오래간만에 진행해보겠습니다.

 

안드로이드(JAVA) 환경에서 C혹은 C++(네이티브) 소스를 연동/연결하여 상호 호환하는 기술을 주제로 시작하겠습니다.

 

사용 환경

+ 안드로이드 스튜디오 4.1.3 (JAVA)

+ NDK 22.1.7171670

+ JDK 8_121

 

NDK & JNI

NDK는 네이티브 개발 키트 (Native Development Kit)를 의미합니다.

간단히 말해서 Android에서 C 및 C++ 코드를 사용할 수 있게 해주는 도구 모음입니다.

네이티브 소스코드를 사용함으로써 효과는 속도, 연산, 호환성 등의 SDK 보다 빠른 작업 속도를 확인할 수 있습니다.

 

JNI는 자바 네이티브 인터페이스 (Java Native Interface)를 의미합니다.

간단히 말해서 JAVA(JVM)과 C 및 C++를 연결시켜주는 인터페이스를 말합니다.

사용하고자 하는 목표에 대해 이야기하자면 자바 메서드 호출로 C 및 C++로 작성된 코드 및 함수를 실행할 수 있습니다.

 

Hello, World 예제를 시작하기 전..

상세하고 쉽게 알려드리기 위해 스크린샷과 설명을 최대한 잘하려고 노력하는 편입니다.

먼저 자료를 정리한 후에 포스팅하는 편인데 스크린샷이 상당히 많이 나와 포스팅하기 앞서 걱정이 드네요.

 

처음에는 NDK, JNI 관련 프로젝트를 진행하게 될 것 같아 여럿 찾아보다가, 자료가 너무 중구난방이라 정리하게 되었습니다.

 

1. 프로젝트 생성

 

프로젝트는 '안드로이드 스튜디오'를 이용하여 SDK는 '마쉬멜로우 (안드로이드 6.0)' 언어는 '자바'로 선택하였습니다.

그 이외에 Acitivity는 'Empty'로 보통 일반적인 앱을 작성하는 환경으로 시작하였습니다.

 

2. NDK 설정

 

NDK의 시작과 끝이라고도 할 수 있는 NDK설정을 시작해보도록 하겠습니다.

 

Tools -> SDK Manager

먼저 생성된 프로젝트에서 Tools -> SDK Manager로 들어가 주세요.

 

NDK가 설치되었다면 상관이 없지만, 설치가 되지 않으셨다면 '체크' 후 Apply -> OK 하고 설치를 완료해주세요.

 

NDK 설치과정

 

위의 설치 과정을 모두 마치셨다면, Gradle Scripts 하위의 'local.properties'에 ndk.dir를 추가해주세요.

일반적으로 설치하셨다면 C -> Users -> [사용자] -> AppData -> Local -> Android -> Sdk -> ndk -> [리비전]

해당 경로에 위치해있습니다.

 

사진이 작아서 잘 안보이 실수 있지만, build.gradle에 들어가셔서 android 하위에 'ndkVersion "22.1.7171670"'를 추가해주세요.

NDK VERSION은 사용자마다 다르실 수 있으니 참고 바랍니다.

 

File -> Project Structure

그리고, File -> Project Structure에 들어갑니다.

 

해당 경로가 잡혀있다면 프로젝트의 NDK설정이 끝이 났습니다.

해당 경로가 잡혀있지 않다면, 아까 말씀드린 일반적인 NDK설치경로를 찾아서 지정해주시면 됩니다.

(C -> Users -> [사용자] -> AppData -> Local -> Android -> Sdk -> ndk -> [리비전])

 

이렇게 NDK 설정은 마무리됩니다.

 

3. 안드로이드 앱 환경 설정

 

JNI로 CPP소스코드를 통해 'Hello_ndk'를 출력시켜보도록 하기 위해, 레이아웃을 설정하였습니다.

 

activity_main.xml

activity_main.xml에 code환경으로 진입해주세요.

 

기존 환경에 존재하는 TextView에 ID값만 부여해주었습니다.

android:id="@+id/text"

 

그리고 기본 생성된 MainActivity에 TextView값을 선언 및 사용 설정하였습니다.

 

1
2
text = (TextView) findViewById(R.id.text);
text.setText("텍스트  설정);
cs

 

4. NDK 메서드 설정

 

이제 기본적인 환경설정은 모두 끝이 났습니다.

이제 본격적으로 NDK 관련된 설정을 진행해 보도록 하겠습니다.

 

기본적으로 NDK는 자바 소스를 기반으로 자바에서 C를 읽을 수 있게 도와주는 헤더 파일을 생성합니다.

헤더 파일을 생성하려면 내가 어떠한 메서드를 사용할 것인지를 알아야 하고, 미리 작성을 해두어야 합니다.

 

저는 간단하게, CPP에 String 값을 넘겨 TextView를 찍어보는 소스코드를 작성해 보았습니다.

기본적으로 자바가 CPP 연동할 JNI헤더 파일을 만들 때 public native 함수명을 파악하고 생성을 합니다.

위 스크린샷과 아래 스크립트 코드를 참고해보시면 알 수 있습니다.

 

1
2
3
4
5
6
static {
        System.loadLibrary("helloNdk");
    }
public native String print_ndk(String text);
 
String print = print_ndk("hello_ndk");
cs

 

System.loadLivrary libName은 직접 자바에 연결할 CPP의 라이브러리 이름을 정하게 되어있습니다.

임의로 작성하셔도 상관없습니다.

 

5. JNI 헤더 생성 툴 설정

 

이제 자바와 C 및 C++를 연결해주는 헤더 파일을 생성해보겠습니다.

기본적으로 JDK를 설치하게 되면 가지고 있습니다.

javah.exe -> 해당 파일이 헤더 파일을 생성해주는 것을 도와줍니다.

 

jni 폴더 생성

먼저, 패키지 단위를 Projcet로 변경하여, main 및에 jni라는 폴더를 생성해줍니다.

 

File -> Settings

jni 폴더 생성이 끝이 났다면 File -> Settings에 들어갑니다.

 

Tools -> External Tools에 들어가셔서 '+' 버튼을 눌러서 헤더를 생성할 수 있는 외부 툴을 만들어 보겠습니다.

 

Name : javah

Program : JDK경로 하위의 bin폴더 및 javah.exe를 찾아 설정해줍니다.

Arguments : -classpath "$Classpath$" -v -jni $FileClass$

Working directory : 앱의 방금 만든 jni폴더를 지정해줍니다.

 

(직접 해당 툴을 사용할 때 말씀을 드리겠지만, 결과적으로 해당 javah 외부 툴을 생성 후 호출하게 되면 클래스 경로를 파악하여 native 메서드를 기반한 헤더 파일을 jni폴더에 생성하게 됩니다.)

 

생성이 완료되었다면, Apply -> OK 처리해주세요.

JNI연결 헤더 파일을 완성할 툴 설정을 완료하였습니다.

 

6. JNI 헤더 생성 하기

 

이제 생성한 툴을 이용하여 C/C++ 헤더 파일을 생성해보겠습니다.

MainActivity에 오른쪽 마우스 External Tools -> javah

JNI폴더에 헤더 파일이 생성이 완료됩니다.

 

[에러] 팁

간혹 한 번에 헤더 파일 생성에 안되시는 분이 있을 겁니다.

보통 위와 같은 에러를 출력합니다.

 

그렇다면, 당황하지 마시고 프로젝트 리빌드 후에 다시 시도하시면 정상적으로 생성됩니다.

 

정상적인 로그 출력과 생성된 모습을 확인할 수 있습니다.

 

7. C 및 C++ 소스 코드 작성

 

먼저 C/C++ 소스코드를 작성하기 앞서서, 헤더 파일을 잠깐 열어서 확인해보겠습니다.

파일 하단에 MainActivity.java파일에 작성된 native코드 기반으로 메서드가 생성된 것을 확인할 수 있습니다.

(해당 문법은 JNI문법입니다.)

 

이제 헤더에 생성된 메서드를 기반한 코드를 완성시켜줘야 합니다.

(Method Overriding 느낌의..)

 

먼저 jni폴더에서 New -> C/C++ Source File을 눌러 파일명은 'hello_ndk'로 생성하였습니다.

 

 

1
2
3
4
5
6
#include<com_example_hello_ndk_MainActivity.h>
 
JNIEXPORT jstring JNICALL Java_com_example_hello_1ndk_MainActivity_print_1ndk
  (JNIEnv *env, jobject thiz, jstring text) {
    return text;
}
cs

 

소스코드를 헤더 파일에 기반하여 작성하였습니다.

먼저 javah툴로 생성한 헤더 파일을 include 해주었고, 헤더 하단의 코드를 기반하여 작성하였습니다.

 

저는 바로 jstring text를 변수를 지정하여 리턴 처리하였습니다.

 

여기서 간단히 JNIEnv, jobject에 관하여 간단히 말씀을 드리겠습니다.

 

JNIEnv*와 jobject는 JNI로부터 받은 변수이므로 함수에 꼭 포함시켜서 사용하여야 합니다.

env는 JNI에 가장 중요한 구조체 포인터로 VM에 대한 인터페이스를 포함합니다.

jobject는 클래스의 정보들이 들어가 있습니다. 예를 들어 현재 소스로 판단한다면 print_ndk라는 함수를 포함하는 클래스를 참조하고 있습니다.

 

그 외 jstring은 제가 MainActivity.java를 보셔서 아시겠지만 매개변수로 지정한 값입니다.

 

이제 모든 준비는 끝이 났습니다.

마무리로 빌드 과정과 구동으로 마무리하겠습니다.

 

8. NDK빌드 툴 생성 및 Android Native Gradle 연결 후 실행하기

 

먼저, 최종 작성한 네이티브 소스를 빌드를 빌드하여야 합니다.

이 과정을 앱 빌드할 때 같이 자동 빌드 하기 위한 설정 방법을 가이드해보겠습니다.

 

위 사진과 같이 5번 목차에서 헤더 파일 생성 툴을 만들었던 메뉴인 File -> Settings -> External Tools에 들어갑니다.

그리고 똑같이 '+' 버튼을 눌러서 빌드 툴을 생성합니다.

 

이번에는 헤더 생성 툴에선 JDK를 사용했던 것과 달리 NDK를 사용합니다.

(NDK빌드니깐요.)

 

Name: 저는 ndk-build로 지정하였습니다.

Program: NDK경로 -> ndk-build.cmd를 지정해주세요.

Working directory: app소스 main으로 지정해주시면 됩니다.

 

그리고 OK를 눌러주세요.

 

이제 ndk-build를 그대로 복사해서 clean도 만들어줍니다.

 

clean은 ndk-build와 설정값은 동일하지만,

Arguments: clean 입력해주세요.

ndk-build는 네이티브 파일을 빌드하는 역할을 한다면, clean은 project clean과 비슷한 개념으로 빌드된 파일을 정리한다고 생각하시면 됩니다.

 

이렇게 외부 툴 2가지 생성을 마치셨다면, 거의 마지막 단계인 앱 빌드 Gradle과 연동을 시켜줄 준비를 하겠습니다.

 

 

먼저 연동을 위해서 Android.mk라는 파일과 해당 파일의 설정값이 필요합니다.

jni폴더 내부에 생성하겠습니다.

 

New -> File -> Android.mk

 

Android.mk 내부 파일에 위 사진과 같이 작성해주세요.

 

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := helloNdk
FILES := hello_ndk.cpp
LOCAL_SRC_FILES := $(FILES)
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)

 

여기서 빨간색으로 표시한 부분만 본인이 설정한 값과 맞게 설정하면 됩니다.

*LOCAL_MODULE은 4번 목차에 libName으로 지정한 이름을 지정하셔야 합니다.

그리고 FILES는 연동할 C/C++파일명을 입력해주세요.

 

Android.mk는 jni하위 디렉터리에 존재해야 하고, 빌드 시스템의 소스 및 공유 라이브러리를 설명합니다.

실제로 빌드할 때 한번 이상 파싱 하는 작은 GNU makefile 플래그먼트입니다.

 

더 상세한 설명 및 설정을 하실분은 아래 링크를 확인해주세요.

*developers NDK Android.mk*

 

 

Android.mk까지 생성에 마쳤다면, Gradle과 연결해줍니다.

MainActivity 우클릭 후 'Link C++ Project with Gradle'을 선택해줍니다.

 

해당 설정값이 나오게 되고,

Build System은 기존 만들었던 ndk-build 툴을 설정하시고

Project path는 Android.mk를 지정해주세요.

 

그리고, OK를 눌러주세요.

 

 

OK를 누르면 Gradle에 해당 코드가 작성이 됩니다.

그리고, 실행해줍니다.

 

저는 가상 모듈로 실행하였습니다.

 

빌드 과정 중 NativeBuild도 진행된 것을 확인할 수 있었습니다.

 

MainActivity에서 리턴했던 'hello_ndk'를 볼 수 있었습니다.

 

추가적으로, 자동화 빌드 말고 수동 빌드를 하게 되는 경우에 대해 말씀드리겠습니다.

 

수동으로 External Tools -> ndk-build를 하게 된다면, 해당 네이티브 빌드만 진행이 됩니다.

 

그리고, Working Directory로 지정했던 경로에. so파일이 생성된 것을 볼 수 있습니다.

또한, SharedLibrary에도 함께 올라간 것을 확인할 수 있습니다.

 

이상으로, 안드로이드 NDK&JNI C/C++ 사용하기를 마치겠습니다.

 

사진 무단 도용은 금지합니다!

도움이 되셨다면 아래 '공감', '하트' 버튼을 눌러주세요!

감사합니다.


반응형


어느날 갑자기 애드센스 관리화면에서 수상한 문구가 나타나게 됩니다.



'주소를 확인하지 않아 지급이 보류 중입니다.'


엥... 저게 뭐지 하고 자세히 알아보기를 눌러봅니다.


구글 애드센스(Google adsense) 주소 확인(PIN) 개요


(자세한 내용은 위의 링크를 통해 확인해주세요.)


대충 내용은 이렇습니다.


애드센스 광고료를 지급받으려면 주소지가 확인되어야 하고 주소지를 확인하는 검증절차를 필요로 합니다.


검증절차는 간단합니다!


1. 구글에서 'PIN' 번호가 담긴 우편물을 구글계정에 설정된 주소지로 발송을 합니다.

2. 'PIN'번호가 담긴 우편물을 받고 열어서 확인한 뒤 입력을하면 '끝' 입니다.




최초에 저는 2020년 5월 26일에 발송이 되었다고 안내를 받았습니다.


해당 화면은 홈 화면에서 확인 할 수 있었습니다.



현재 코로나19 사태로 인하여 배송물이 조금더 지연이 될수도있다고 계속해서 안내를 하였고, 하지만..


저는 2020년 6월 24일 현재 포스팅을 하고있는 당일 우편물이 도착하였습니다.


정확히 30일 걸렸더라구요.




네. 그 우편물이 바로 이렇게 생겼습니다.




우편물 입니다.




뒷면입니다.


만약 배달실패하면, 말레이시아 주소로? 보내라고 되어있네요.

구글 말레이시아에서 왔나봅니다.




모서리 부분을 제거하라고 하는것을 촥촥 잡아서 뜯고




핀번호가 등장합니다.


가이드에는


애드센스 홈페이지에 들어가서 '톱니바퀴'를 누르고 주소인증을 하라고 하는데..


저는 홈화면에서 간단하게 인증을 처리하였습니다.


제가 인증했던 방법을 공유해드릴게요.



먼저 홈화면에 오면 '할일'에 청구지 주소를 확인하라는 알림이 보입니다.



그냥 '확인' 버튼을 눌러주세요.


그러면 PIN번호를 입력하시면 됩니다.


('PIN다시보내기' 버튼이 있는데.. 또 누르게되면 아마 4주를 더기다려야겠죠..??)


저는 이로써 주소확인이 완료되었고, 주소확인을 하라는 경고창도 모두 사라졌습니다.

이제 광고비를 지급받기만 하면 되겠네요.


이상으로 애드센스 '지급보류경고' 해결편을 마치겠습니다.


좋은 참고가 되셨으면 좋겠네요.


사진 무단 도용은 금지합니다!


도움이 되셨다면 아래 '공감', '하트' 버튼을 눌러주세요!


감사합니다.


반응형


아마도 특별한 일이 없는 한 애드고시 관련 마지막 글이 될꺼같아요!


지난번 승인을 받고 자동광고 설정 관련하여 포스팅을 하였는데, 자동광고를 설정후 몇일 있어보아도 광고가 그렇게 많이 삽입되지 않는것 같았습니다.


구글 자동 관련 알고리즘에 따른거겠지만요.


그래서 오늘은 수동으로 포스팅한 글에 광고를 게재 해보도록 하겠습니다.


이전 포스팅에 대한 내용은 아래 링크를 참고해주세요.


티스토리 블로그 광고 수익 창출! - 애드센스 가입하기(Google AdSense) - ①


티스토리 블로그 광고 수익 창출! - 애드센스 승인 거절(Google AdSense) - ②


 티스토리 블로그 광고 수익 창출! - 애드고시 승인! 자동광고 설정(Google AdSense) - ③



구글 애드센스(Google AdSense) 수동광고/광고단위기준 게재 하기!


먼저 애드센스에 접속을 합니다.


구글 애드센스 이동하기



로그인 후, 개요에 광고 단위 기준 메뉴를 선택해주시고

디스플레이 광고를 눌러주세요!


디스플레이 광고는 보통 게시글에 많이 들어가는 광고 모양입니다.

아래 자세하게 살펴보겠습니다.



디스플레이 광고를 눌러서 생성을 시작하게되면


우측에 반응형, 고정 두가지 옵션을 설정할수있습니다.

반응형은 웹사이트 크기가 변할때마다 광고모양도 자동으로 변경해주는것이고

고정은 자기가 원하는 광고 크기만큼 고정으로 모양이 잡히게됩니다.


반응형은 크게 사각형, 수평형, 수직형으로 웹사이트 크기에 따라 자동으로 모양이 바뀌게 됩니다.


반응형으로 설정하고 만들기를 눌렀습니다.



만들기를 누르게되면 HTML 태그로 코드를 스크립트로 만들어 주게 됩니다.

해당 코드는 매번 애드센스에서 확인할수있으며, 복사해서 게시물에 붙여넣기만 하시면 됩니다.



티스토리에서 임의의 제 게시물을 수정으로 들어왔습니다.

우측 상단에 'HTML'전환 버튼 혹은 체크박스가 있을겁니다.


눌러주세요.



누르게되면, 기존 작성했던 게시물이 HTML코드화가 되고

저는 제일 하단에 붙여보도록 하겠습니다.

제일 하단으로 내려서 아랫공간을 만들어주세요.


하단에 코드를 붙였습니다.


자 이제 게시물을 수정 완료하고, 게시물에 들어가보면 하단에 광고가 생긴것을 확인 하실수있습니다.


광고가 안보이시더라도 몇분 후 혹은 새로고침 몇번하게되면 광고가 게재되게 됩니다.


그럼 이상으로 수동으로 광고를 게재하는법을 마치겠습니다.


이제 게시글을 수동으로 광고 부착하러 가야겠네요.


즐거운 하루 되세요.

감사합니다.



반응형


어제 블로그 글을 몇개 포스팅 한 뒤에 애드센스 재 신청을 하였습니다.


그 다음날 바로 승인 되었다고 메일이 왔네요.

왜.. 한번 거절한거지? 의문이 드네요.


제가 포스팅한건 2건밖에 되질않는데.. 2개가 모자랐던것인가??..

여러분들도 계속해서 도전해보시길 바랍니다.



이전 포스팅에 대한 내용은 아래 링크를 참고해주세요.


티스토리 블로그 광고 수익 창출! - 애드센스 가입하기(Google AdSense) - ①


티스토리 블로그 광고 수익 창출! - 애드센스 승인 거절(Google AdSense) - ②




구글 애드센스(Google AdSense) 자동 광고 게재 하기!


이제 승인을 받았으니 게재를 해봐야겠죠.

승인 메일 하단에 '시작하기' 버튼이 있습니다.

시작을 해보도록 하겠습니다.



시작하기 버튼을 누르니

애드센스로 넘어와서, 계정이 활성화되었다는 환영문구가 보이네요.

바로 광고 설정버튼을 눌러보았습니다.



광고를 삽입하는 기준이

'자동' / '단위' 로 나뉘는것 같았습니다.

즉, 광고를 자동으로 구글에서 게시물에 삽입시켜주는것을 쓰느냐

혹은 수동으로 원하는 위치에 광고를 삽입할껀지를 선택하는것 이였습니다.


저는 아직 아무것도 모르는 초보이기 때문에.. 자동으로 일정 설정을 해놓고 두고 볼 생각 입니다.



광고 개요 페이지를 보시면 내가 등록한 URL과 함께 우측에 연필모양 '수정' 버튼이 있습니다.

해당 버튼을 누르면 자동광고를 바로 삽입 설정을 간단히 할 수 있습니다.



수정 버튼을 눌러서 들어온 화면 입니다.

여기 우측을 보면, 자동광고 활성화 여부 토글버튼이 있고 자동광고를 설정 할 수 있게 되어있습니다.



크게 이렇게 설정 할수있습니다.

자동광고를 사용 할 것인가?

사용을 한다면 광고 형식은 어떻게 처리 할 것인가?

광고량은 얼마나 설정 할 것 인가?

광고를 제외할 페이지는 어디인가?


분석 결과 이렇게 크게 4가지로 분류 되어있습니다.

이제 하나하나 자세히 보도록 하겠습니다.



광고 형식 입니다.

광고 형식은 인페이지 광고, 일치하는 콘텐츠, 앵커 효과, 모바일 전면 광고 4가지로 구분 됩니다.


저는 인페이지 광고, 앵커 효과, 모바일 전면 광고 3가지를 설정하였습니다.

일치하는 콘텐츠는 특정 조건이 성립되어야지 설정 할 수 있는것 같았습니다.


좌측 미리 보기 화면으로 원하는 광고를 설정하게되면 어디에 삽입 되는지 예를 보여줍니다.

저도 스크린샷으로 가져와봤습니다.



이것이 인페이지 광고와 앵커 광고 입니다.

앵커 광고는 모바일에서만 부착이 되는것 같은데 계속해서 따라다니는 광고 입니다.


인페이지는 게시물 내 삽입되는 광고입니다.



이것은 모바일 전면 광고 입니다.

게시물을 이동할때 전면으로 보여주는 광고 입니다.



이제 광고들을 확인하고 설정을 대충 마무리했다면, 광고 로드 항목에 들어가서 확인을 해보았습니다.

광고 로드는 광고량을 설정하는것 같았는데


저는 기본값으로 두기로 하였습니다.

너무많거나 적거나도.. 이상하니 기본이 맞겠다 싶어 가만히 뒀습니다.


그리고 '사이트에 적용' 버튼을 눌러 설정을 마쳤습니다.


사이트에 적용버튼을 누르니 '빨간색 박스'로 표시해둔 부분이 '설정'으로 변경이 되었습니다.

(광고 삽입시 까지 1시간정도 소요될수도 있다고 합니다.)

(실제로 기다려보니 24시간-48시간 정도 되는것 같습니다.)

그리고 개요 밑 제가 '파란색 박스'로 표시해둔부분이 '사이트기준'이 자동광고, '광고 단위 기준'이 수동광고 설정 파트로 나뉘어있는것 같았습니다.


조금 더 애드센스에 익숙해진다면, 광고 단위 기준으로 설정하는 방법도 소개드리도록 하겠습니다.

감사합니다.


티스토리 블로그 광고 수익 창출! - 수동광고 설정/광고단위 설정(Google AdSense)(完) - ④





반응형

+ Recent posts