2013-06-20 4 views
2

이전에 질문했지만 답변을 추적하지 못했기 때문에 다시 묻습니다.동적 DFP Javascript

Google DFP를 구현하려고합니다. 동적으로 광고를 게재하는 인라인 자바 스크립트를 만들 수 있었기 때문에 관리자 쪽을 올바르게 구성해야합니다.

우리 응용 프로그램에는 인라인 JS가 없으므로 JS로 동적으로 빌드하려고 노력하고 있습니다. 많은 행운이 없었습니다.

내 JS here을 붙여 넣었습니다. 주목할만한 점은 (/////! EVENTS 이전의) 상단 부분은 즉시로드되는 반면, 하단 부분은 범인이 될 수 있으므로 $ (document) .ready() 호출 내에로드된다는 점에 유의해야합니다.

코드의 아이디어는 각 광고 div에 광고의 url, size 및 id가있는 데이터 속성이 있다는 것입니다. 슬롯을 정의하고, 각 슬롯을 정의한 후에 모든 슬롯을 표시하고, 그런 일이 발생하면 나머지 DFP 함수를 호출합니다. 그것이 (어쨌든 나에게) 효과가있는 것처럼 들리지만, 그렇지 않다.

각 console.log() 호출이 예상대로 발생하고 마지막 호출로 기록 된 googletag 객체를 검사 할 때 디버그 로그에 다음과 같은 항목이 포함됩니다. "만든 슬롯 :/[사용자 ID]/[광고 div ID] ","Google 서비스 JS로드 됨 ","생성 된 서비스 : publisher_ads ","연결된 publisher_ads 서비스와 슬롯/[사용자 ID]/[광고 단위 ID] "; 각 레코드에 대해

각 광고 단위에서 발생하는 Google 서비스 JS 또는 생성 된 서비스 호출이 문제 또는 예상되는 동작을 일으키는 지 여부는 잘 모르겠지만 기록 된 내용을 제외하고 콘솔에 기록되는 내용은 없습니다. 내가 뭔가 잘못되었다는 것을 알았거나 광고를 게재하지 않는 것으로 보이는 것 같습니다.

내가 작업 해 온 설명서 및 버전에는 디스플레이 호출을 수행하는 인라인 스크립트가 있습니다. 나는 아마 이것이 인라인으로 처리되어야하고 어떻게 든 그것을 호출 한 스크립트 태그의 부모에 결과를 표시할지 모르겠다. 그러나 디스플레이를 인라인으로 만들 때도 더 이상 작동하지 않는다. 적은 로깅이 진행되어 defineSlot() 단계에서 무언가가 올바르게 작동하지 않는다고 생각하게되지만 googletag 객체의 디버그 로그는 슬롯이 정의되었음을 나타냅니다. 내 네트워크 창에서

, 그것은 필요한 자바 스크립트를 반환이 http://partner.googleadservices.com/gampad/google_ads_gpt.js 구글에 대한 호출과 http://www.googletagservices.com/tag/js/gpt.js이 것 같다,하지만, 그 구글이 만들어지고의 통화 만 있습니다 (광고에 관한, 거기에 다른 분석 호출입니다) 및 이 페이지에는 4 개의 광고가 있습니다. 광고가 실제로 게재되고 있다면 더 많은 전화가있을 것으로 예상됩니다.

말할 필요도없이 나는 잃어 버렸습니다. 그 답이 얼굴을 빤히 쳐다보고 있지만 DFP 또는 광고를 많이 사용하지는 않았으므로이를 추적하기 위해 어디에서보아야하는지 확신 할 수 없습니다.

어떤 방향 으로든지 미리 감사드립니다.

답변

2

나는 실제로 내가하고있는 일을 확실히하는 작업 스크립트를 가지고있다.

은, 내가 발견 한 하나의 문제는 어떤 DFP는 것이다 광고 단위의 DIV의 실제 DOM ID를 사용하지 않는 것을

https://github.com/coop182/jquery.dfp.js

당신은 그러나 당신의 codepen보고에서 my script에서 일부 포인터를 얻을 수있을 것입니다 필요한 것.어디서나 당신이 사용하는 :

$(that).attr('data-id'); 

가 있어야한다 : googletag.display

$(that).attr('id'); 

호출을 또한

googletag.pubads().enableSingleRequest(); 
googletag.enableServices(); 
+0

내가 실제로뿐만 아니라 ID로 데이터 속성이 후 올 필요 이드 자체. codepen에 DOM을 추가하는 것이 도움이되었을 것입니다. 복제가 중복 되긴하지만 데이터 속성에 첨부 된 스크립트에서 사용할 데이터를 유지하고 선택기로 id 속성을 사용하려고합니다. 디스플레이 호출 위의 호출을 이동했지만 변경된 것처럼 보이지만 여전히 렌더링되지 않습니다. 이제 google_ads_gpt에서 http://pubads.g.doubleclick.net/gampad/ads를 호출하면 오류 400이 반환됩니다. 디버그 로그에서 gpt를 가져오고 각 광고를 지연하고 gpt를 수신 한 다음 각 광고에 대해 fillslot을 호출합니다. 렌더링 된 광고가 없습니다. – BrandonThorn

+0

방금 ​​스크립트에 누락되었습니다. 스크립트 위의 주석에 MIT 텍스트를 추가했습니다. 나는 그것을 통해 브라우징을 시도하고 제가 잘못하고있는 것을 발견 할 수 있는지 알아보기 위해 노력했지만, 가장 쉬운 방법은 내 자신을 굴리기보다는 이것을 사용하는 것입니다. 나는 미래의 옵션을 우리가 활용할 수 있는지 모르며, 당신은 이미 타겟팅과 내가 고려하기 시작하지 않은 것들을 설명하는 것 같습니다. 빠른 답장과 위대한 스크립트 주셔서 감사합니다. 그 거대한 도움. – BrandonThorn

+0

멋지다 기쁘게 생각합니다 ... 포크를 자유롭게 사용하고 순간적으로 필요한 것보다 조금 더 많이한다면 기본으로 되돌려 놓으십시오. 그렇지만 타겟팅하는 물건은 매우 유용합니다! –